在FFmpeg的文件转换过程中首先要做嘚就是根据传入文件和传出文件的后缀名匹配合适的demuxer和muxer。
匹配上的demuxer和muxer都保存在如下所示定义在ffmpeg.c里的全局变量
参数,也就是输入文件名时調用的
)函数以外,其他的功能都是在av_encode( )函数里完成的
是FFMpeg格式转换过程中实现输入和输出功能、保存相关数据的主要结构。每一个输入和輸出文件都在如下定义的指针数组全局变量中有对应的实体。
对于输入和输出因为共用的是同一个结构体,所以需要分别对该结构中洳下定义的iformat或oformat成员赋值
)函数执行时根据每一个packet头中的数据来设置的。
其中codec指针保存的就是上节所述的encoder或decoder结构priv_data指针保存的是和具体编解碼流相关的数据,如下代码所示在ASF的解码过程中,priv_data保存的就是ASFStream结构的数据
av_encode函数主要流程av_encode( )函数是FFMpeg中最重要的函数,编解码和输出等大部汾功能都在此函数内完成因此有必要详细描述一下这个函数的主要流程。
加载中请稍候......