Android MediaCodec获取H264码流分辨率

2023-12-20  本文已影响0人  BENSON_fff5

目前项目中通过UDP接收到h264视频流,采用MediaCodec对h264进行解码并播放,那如何得知h264视频流的分辨率呢,查MediaCodec源码可知,通过判断dequeueOutputBuffer方法的返回值是否等于MediaCodec.INFO_OUTPUT_FORMAT_CHANGED,如果相等就调用getOutputFormat获取MediaFormat,再从中获取视频的宽高值即可。如下所示:

            var outputBufferIndex: Int = mMediaCodec.dequeueOutputBuffer(bufferInfo, 100)
            if (outputBufferIndex == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
                var outputFormat = mMediaCodec.getOutputFormat()
                var w = outputFormat.getInteger(MediaFormat.KEY_WIDTH)
                var h = outputFormat.getInteger(MediaFormat.KEY_HEIGHT)
                Log.i(TAG," w = $w ; h = $h")
            }
上一篇 下一篇

猜你喜欢

热点阅读