Android MediaCodec获取H264码流分辨率

目前项目中通过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")
            }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容