FFmpeg是一款自由软件,它可以运行数字音频和视频多种格式的录影、转换和流功能。其中的FF是指FastForward,而mpeg是指动态图像专家组。由于软件自由灵活且功能强大,打破惹不同环境和平台间间对视音频档案的各种处理方法的限制,不仅可以开箱即用还可以拿来二次开发,所以被广泛使用。
FFmpeg的基本组成;
FFFmpeg框架由AVFormat、AVCodec、AVFilter、AVDevice、AVUtil等模块库组成。
(1)AVFormat库实现了目前多媒体领域中的绝大多数媒体封装格式的封装和解封装,同时还支持增加自己定制的封装格式。
(2)AVCodec库实现了目前多媒体领域中的绝大多数常用的编解码格式的编码与解码,同时还支持第三方编解码器的外挂。
(3)AVFilter库提供了一个通用的音、视、字幕等滤镜的处理框架,滤镜框架可以有多个输入输出。它是通过切割视频流的方式将需要滤镜的部分扔给滤镜,然后再将滤镜后的流交给图层再合并压制出新的视频。
(4)其中的swscale模块是负责图像转换计算的,提供了高级别的图像转换API。例如1080p转720p,YUV转RGB等。
(5)其中swresample模块是负责音频重采样功能的,它允许操作音频采样、音频通道布局转换与布局调整。
FFmpeg基本功能介绍;
编解码;
1
|
|
FFmpeg主要是通过下面六个流程来执行封装格式转换的:
1 2 3 4 5 6 7 8 9 10 11 |
|
播放;
1
|
|
ffplay的基本流程是有avformat与avcode进行媒体档案的解封装与解码,再将解码后的数据输出给SDL库进行播放。ffplay提供了音视频显示和播放相关的图像信息、音频的波形信息等。
档案分析;
1
|
|
ffprobe是一个多媒体分析工具(类似MediaInfo),可以从媒体档案或者媒体流中获得一些信息,如视音频参数、媒体容器参数信息等。
FFmpeg的档案支持;
编码器支持:
1
|
|
解码器支持:
1
|
|
封装支持:
1
|
|
解封装支持:
1
|
|
通信协议支持:
1
|
|
FFmpeg常用命令;
1 2 3 4 5 6 7 8 |
|
1 2 3 4 5 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
1 2 3 4 5 6 7 8 9 |
|
1 2 3 |
|
@本地磁盘姬
ohayou.aimo.moe
微博:@本地磁盘姬碟酱
Twitter:本地磁盘姬
2019年08月11日