毕业到现在,一直在使用ffmpeg,并对其进行修改,以适应工程项目需求,在使用的过程中,有几点体会:
1.ffmpeg一直在更新中,根据version change,确定适合工程要求的版本,最新不一定就是最好的,可以对其进行适当的裁剪,降低库的大小。若为后期方便调试与维护,可以改到vc下。或其他de下,如codeproject,如果能够使用cmake进行重写就好了,便于跨平台维护。
2.ffmpeg中无论是解码端,还是编码端,对于输入与输出的图像格式,一定要搞清楚,否则,就会出现各种问题,具体的编码端与解码端支持的图像格式,可以去查阅各个小模块,很容易了解到这些信息。
3.ffmpeg中的时间系统;对于外界与其内部的90000时间系统不同,或外部输入无pts/dts的,或选择ffmpeg内部时间系统的,需要在输出后,或输入前,进行时间系统的转换;否则可能会出现音视频不同步;
4.由于ffmpeg里面才有文件格式上下文,编解码上下文等概念,需要对其各个与时间相关的东西理解清楚,不同层次的相关参数,可能计量单位不同;
5.ffmpeg某些合成器只支持单帧,需要在编码器出来后,进行拆帧处理,特别是某些h264的编码,因而拆帧也是特别注意的,否则也容易引起音视频不同步;
今天就想到这里了,以后遇到在这里在加吧。