简介
FFmpeg既是一款音视频编解码工具,也是音视频编解码开发套件,为开发者提供了丰富的音视频处理的调用接口。
FFmpeg提供多种媒体格式的封装和解封装,包括多种音视频编码、多种协议的流媒体、多种色彩格式转换、多种采样率转换、多种码率转换等;FFmpeg框架提供多种丰富的插件模块,包含封装与解封装的插件、编码与解码的插件等。
基本组成
FFmpeg框架的基本组成包含 AVFormat、 AVCodec、 AVFilter、AVDevice、 AVUtil等模块库。
-
AVFormt
AVFormat中实现了目前多媒体领域中的绝大多数媒体封装格式,包括封装和解封装,如MP4、FV、KV、TS等文件封装格式,RTMP、RTSP、MMS、HLS等网络协议封装格式。
FFmpeg是否支持某种媒体封装格式,取决于编译时是否包含了该格式的封装库。根据实际需求,可进行媒体封装格式的扩展,增加自己定制的封装格式,即在 Format中增加自己的封装处理模块。 -
AVCodec
AVCodec中实现了目前多媒体领域绝大多数常用的编解码格式,既支持编码也支持解码。 AVCodec除了支持MPEG4、AAC、 MJPEG等自带的媒体编解码格式之外,还支持第三方的编解码器,如H.264(AVC)编码,需要使用x264编码器;H.