ffmpeg基本模块

ffmpeg基本模块

基本组成 #

  1. 封装模块AVFormat

AVFormat中实现了目前多媒体领域中的绝大多数媒体封装格式,包括封装和解封装,如MP4、FLV、KV、TS等文件封装格式,RTMP、RTSP、MMS、HLS等网络协议封装格式。

  1. 编解码模块AVCodec

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

  1. 滤镜模块AVFilter

AVFilter库提供了一个通用的音频、视频、字幕等滤镜处理框架。在AVFilter中,滤镜框架可以有多个输入和多个输出。

  1. 视频图像转换计算模块swscale

swscale模块提供了高级别的图像转换API,例如它允许进行图像缩放和像素格式转换,常见于将图像从1080p转换成720p或者480p等的缩放,或者将图像数据从 YUV420P转换成YUYV,或者YUV转RGB等图像格式转换。

  1. 音频转换计算模块swresample

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

主要参数 #

AVFormat模块 #

ffmpeg通过libavformat库进行Mux和Demux操作,多媒体文件的格式有很多种,这些格式中的很多参数在Mux与Demux的操作参数中是公用的。

ffmpeg --help full # AVFormatContext

AVCodec模块 #

ffmpeg编解码部分的功能主要是通过模块AVCodec来完成的,通过libavcodec库进行Encode与Decode操作。多媒体编码格式的种类有很多,但是还是有很多通用的基本操作参数设置。

ffmpeg --help full # AVCodecContext

From #