FFmpeg 模块介绍

786 阅读2分钟

FFmpeg 是一款音视频编解码套件,提供了丰富的音视频处理调用接口。支持多种多媒体格式的封装与解封装,多种音视频编解码、多种协议的流媒体、多种色彩格式转换、多种采样率转换、多种码率转换等。

下载 FFmpeg

FFmpeg 下载地址

FFmpeg 框架基本组成包含 libavformat、libavcodec、libswscale、libswresample、libfilter、libavdevice、libavutil。

  1. libavformat 封装模块

libavformat 中实现了目前多媒体领域的绝大多数媒体格式,包括封装与解封装,例如 FLV、MP4、WAV 等文件格式,可以使用如下命令查看支持的封装格式:

ffmpeg -muxers

以及支持 RTMP、HLS 等等,同样你可以使用如下命令查看支持的网络协议封装格式

ffmpeg -protocols
  1. libavcodec 编解码模块

libavcodec 实现了目前多媒体领域大多数常用的编解码格式,libavcodec 除了支持 MPEG4、AAC、MJPEG 等自带的媒体编解码格式之外,还支持第三方编解码器,例如:H.264 (AVC) 编码,需要使用 x264 编码器;H.265 (HEVC) 编码,需要使用 x265 编码器;MP3(mp3lame) 编码,需要使用 libmp3lame 编码器。使用如下命令查看支持的编解码格式:

ffmpeg -encoders(编码器格式)/-decoders(解码器格式)
  1. libavfilter 提供了一个通用的音频、视频、字幕等滤镜处理框架。
  2. libswscale 模块提供了高级别图像转换 API, 例如它允许图像缩放和像素格式转换,比如将图像从 1080p 转成 720p,或者将图像数据从 yuv420p 转成 YUYV, 或者 YUV 转成 RGB 等图像格式。
  3. libswresample 模块提供了高级别的音频重采样 API,允许音频采样、音频通道布局转换。