1. FFmpeg介绍

FFmpeg介绍

什么是FFmpeg?

FFmpeg既是一款音视频编解码工具,同时也是一组音视频编解码开发套件,提供了丰富的命令行工具,以及音视频处理的调用接口。
FFmpeg提供了多种媒体格式的封装和解封装,包括多种音视频编码,多种协议的流媒体,多种色彩格式转换,多种采样率转换,多种码率转换等。

FFmpeg历史

FFmpeg是法国天才程序员在2000年开发出初版,后面发展到2004年,由另外一人接手。
2011年,FFmpeg项目中一些提交者对FFmpeg的项目管理方式不满,因而创建另一个项目Libav。但是Libav并没有FFmpeg那么流行,相反,FFmpeg维护者从Libav中移植了大量代码和功能到FFmpeg。
可以说二者就是兄弟。

FFmpeg的基本组成

FFmpeg框架的基本组成包含AVFormat,AVCodec,AVFilter,AVDevice,AVUtil等模块库。
结构如图所示:image

  • AVFormat:FFmpeg的解封装模块
    AVFormat中实现了目前多媒体领域的绝大多数媒体解封装格式,如:MP4,FLV,KV,TS等文件封装格式,RTMP,RTSP,MMS,HLS等网络协议封装格式。
    FFmpeg是否支持某种媒体封装格式,取决于编译时是否包含该格式的封装库。可以根据需要扩展。

  • AVCodec:编解码模块
    AVCodec中实现了目前多媒体领域绝大多数常用的编解码格式。除了支持MPEG4,AAC,MJPEG等自带的媒体编解码格式之外,还支持第三方的编解码器,如H.264(AVC)编码,需要使用x264编码器,H.265(HEVC)编码等等。

  • AVFilter:滤镜模块
    AVFilter提供了一个通用的音频,视频字幕等滤镜处理框架。

  • swscale:视频图像转换计算模块
    swscale模块提供了高级别的图像转换API,例如它允许进行图像缩放和像素格式转换。

  • swresample:音频转换计算模块
    swresample模块提供了高级别的音频重采样API。例如它允许操作音频采样,音频通道布局转换与布局调整。

posted on 2024-04-26 23:07  那小子真帅a  阅读(100)  评论(0)    收藏  举报

导航