整体结构
模块
- AVUtil:核心工具库,该模块是最基础的模块,许多其他的模块都会依赖该库做一些基本的音视频处理。
- AVFormat:文件格式和协议库,该模块是最重要的模块之一,封装了Protocol层和Demuxer,Muxer层,使得协议和格式对于开发者来说是透明的。
- AVCodec:编解码库,最重要的模块之一,封装了Codec层。但是有些Codec是具备自己license的,FFmpeg不会默认添加libx264,FDK-AAC,lame等库,但是FFmpeg就像一个平台,可以将其他的第三方库的codec以插件的形式添加进来,然后为开发者提供统一的接口。
- AVFilter:音视频滤镜库,该模块提供来包括音频特效和视频特效的处理。
- AVDevice:输入输出设备库,该设备模块播放声音和播放视频使用的是libSDL库。
- SwrResample:音频重采样库,提供对数字音频进行声道数,数据格式,采样率等多种基本信息的转换。
- SWScale:图像格式转换库,该模块提供图像格式转换,比例缩放等功能,比如YUV与RGB的数据转换。
- PostProc:后期效果处理,使用AVFilter的时候需要打开该模块的开关,因为Filter中会使用到该模块的一些基础函数。