一、FFmpeg 的安装
1、Linux
安装 FFmpeg
# 下载
wget https://ffmpeg.org/releases/ffmpeg-4.2.tar.bz2
# 解压
tar -zxvf ffmpeg-4.2.tar.bz2
# 编译安装
./configure --enable-shared --prefix=/usr/local/ffmpeg
make
make install
echo "/usr/local/ffmpeg/lib" >> /etc/ld.so.conf
ldconfig
完成上面的操作后,进行检查:
ffmpeg -version
正确安装的话会显示版本号。
2、Mac OS
安装 FFmpeg
1、安装 XCode
和 Homebrew
Xcode
可以在App Store
中安装更新。
Homebrew
的安装参见官方网址:https://brew.sh/
2、使用 Homebrew
安装 FFmpeg
brew install ffmpeg
二、相关术语
容器(Container
):容器就是一种文件格式,比如flv
,mkv
等。包含下面5种流以及文件头信息。
流(Stream
)
- 是一种视频数据信息的传输方式,5种流:音频,视频,字幕,附件,数据。
帧(Frame
)
- 帧代表一幅静止的图像,分为I帧,P帧,B帧。
编解码器(Codec
)
- 是对视频进行压缩或者解压缩,
CODEC =Code
(编码)+Decode
(解码)
复用/解复用(mux/demux
)
- 复用(
mux
):把不同的流按照某种容器的规则放入容器 - 解复用(
demux
):把不同的流从某种容器中解析出来
三、组成
1、按功能模块分
libavformat
:用于各种音视频封装格式的生成和解析,包含demuxer
和muxer
库;libavcodec
:用于各种类型声音/图像编解码;libavfilter
:提供了一个通用的音频、视频、字幕等滤镜处理框架;libavdevice
:各个端设备的管理;libavutil
:包含一些公共的工具函数;- **
libavresample
:**提供了高级的音频重采样; - **
libswscale
:**用于视频场景比例缩放、色彩映射转换 - **
libpostproc
:**用于后期效果处理;
2、按工具类分
ffmpeg
:是一个命令行工具,用来对视频文件转换格式,也支持对电视卡实时编码;ffsever
:是一个HTTP多媒体实时广播流服务器,支持时光平移;ffplay
:是一个简单的播放器,使用ffmpeg 库解析和解码,通过SDL显示;ffprobe
:获取媒体流信息
四、FFmpeg
帮助选项
可用的bit流 : ffmpeg –bsfs
可用的编解码器: ffmpeg –codecs
可用的解码器: ffmpeg –decoders
可用的编码器: ffmpeg –encoders
可用的过滤器: ffmpeg –filters
可用的视频格式: ffmpeg –formats
可用的声道布局: ffmpeg –layouts
可用的license: ffmpeg –L
可用的像素格式: ffmpeg –pix_fmts
可用的协议: ffmpeg -protocals