ffmepg的extradata指针和has_codec_parameters函数

来源:互联网 发布:单片机应用场合 编辑:程序博客网 时间:2024/06/05 20:40

            ffmepg的extradata和has_codec_parameters函数

在ffmpeg中,有一个重要的元素,就是extradata和extradata_size,这些是存储着参赛信息的地方,比如对于视频H264而言,包含了H264的SPS和PPS,如果是AAC,则包含了音频的重要信息。比如profile,这些信息对于音频来说是重要的。

另一个重要的元素,就是有些特征是要单独在结构体中呈现,比如try_decode_frame中的has_codec_parameters函数中的涉及到的那些参数,那些参数或许也在extradata中通过解析得到,但两者用途不一样。

在有些项目中,也许单独使用libavcode模块,而对format部分进行重写,这个时候,涉及到参数传递的问题。到底要传多少参数到codeccontext环节呢,其实就是包含两个部分,一个是extradata和对应的extradata_size,一个是has_codec_parameters的那些重要信息,但是如果不怕麻烦或者因为项目需要,也可以只传extradata,has_codec_parameters的信息通过decode一帧得到,但是程序在逻辑上的安排就得注意了。否则会出现意想不到的错误。