FFmpeg是否支持解析或解码AVCC格式的码流数据包?
FFmpeg 内置的 H.264 码流解析器原生支持 AVCC 格式处理,av_parser_parse2 接口本身就兼容 AnnexB 和 AVCC 两种封装格式,只是使用前置条件和 AnnexB 有差异:
- 解析 AVCC 格式前,需要先将 AVCC 头中的 extradata 数据(包含 SPS、PPS 等全局编码参数)赋值给
AVCodecContext的extradata字段,同时正确设置extradata_size参数。 - 完成上下文配置后,直接将带长度前缀的 AVCC 格式码流送入
av_parser_parse2即可正常解析出完整 NALU 单元,后续解码流程和 AnnexB 格式完全一致。
注意:解码场景下不要混淆接口,解析得到的 AVPacket 需要送入
avcodec_send_packet处理,avcodec_send_frame是编码场景下向编码器送入原始帧的接口。
如果有 AnnexB 和 AVCC 格式互转的需求,FFmpeg 也内置了专用工具函数,无需手动处理前缀/起始码的替换逻辑。
内容的提问来源于stack exchange,提问作者Poperton
相关产品推荐
相关产品推荐

