<分区>
我正在尝试直接解码 Android 设备上 Raspberry Pi 相机模块的 H.264 编码相机输出,但我的代码无法正确解码文件。我没有输出,最后一帧出现乱码。
当我自己将输入文件(它是一个 H.264 字节流)解析为 NAL 单元时,我有一个问题:将它们提供给 MediaCodec 缓冲区时,我是否将 NAL 单元分隔符提供给缓冲区也是?
<分区>
我正在尝试直接解码 Android 设备上 Raspberry Pi 相机模块的 H.264 编码相机输出,但我的代码无法正确解码文件。我没有输出,最后一帧出现乱码。
当我自己将输入文件(它是一个 H.264 字节流)解析为 NAL 单元时,我有一个问题:将它们提供给 MediaCodec 缓冲区时,我是否将 NAL 单元分隔符提供给缓冲区也是?
最佳答案
MediaCodec
解码器需要一个 H.264 基本流,并且每个缓冲区需要一个访问单元。您还需要在第一个数据包之前提供 SPS/PPS(通过 BUFFER_FLAG_CODEC_CONFIG
标志或将其添加到 MediaFormat
)。
另见 this question .
关于Android MediaCodec 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20077240/