FFmpeg是一套用来记录,转换数字音视频,并可以转换成流的开源程序,可以轻易地实现多种视频格式之间的转换。
基础概念
- 容器/文件(container/file):特定格式的多媒体文件,如mp4,flv等。
- 媒体流(stream):时间轴上的一段连续数据,如一段音频数据,一段视频数据或者一段字幕数据。可以非压缩的,也可以是压缩的(压缩需要关联特定的编解码器)。
- 数据帧/数据包(Frame/Packet):一个媒体流有大量的数据帧组成,对于压缩数据,帧是编解码器最小的处理单元。
- Frame对应压缩前的数据
- Packet对应压缩后的数据
- 编解码器(codec):以帧为单位实现压缩数据和原始数据之间的相互转换。
- 复用(mux):把不同的流按照某种容器的规则放入容器中。
- 解复用(mux):从某容器中把不同的流解析出来。