FFmpeg支持大量的音视频压缩格式和编解码格式,通常大家所说的视频格式(format)就可以理解为压缩格式(container)或者混流格式(Muxing),例如avi
、mp4
、mkv
等,它们相当于是一个容器,可以将视频与音频数据包装在一起,并让它们能够按照指定的同步方式输出。
编、解码格式(codec)也就是所谓的视频祼流格式(raw bitstream),视频编码格式也很多,现在使用最多的就是H.264
,当然H.265
要逐渐引领潮流了。其他的编码格式还有很多,例如MPEG-2
、MEPG-4 Part 2
、MPEG-4 Part 10
等
PS:有人的场合切勿尝试百度搜索什么是视频祼流,万恶的百度,可以google
下面查看你编译的FFMPEG所支持的Formats和codecs
Format(muxer和demuxer)相关的命令
列出所有format
1 | ffmpeg -formats |
输出的格式很多,在格式的前面会标有E
、D
和DE
字样,并且最前面的2行内容为:
1 | File formats: |
表示ffmpeg所支持的相应解析格式的编码还是解码,注意这里所说的编码和解码分别是指混流和解析混流。因为视频中可以包含多种流(steam)类型,例如视频、音频、字幕等。
查看指定format的混流格式的详细信息
1 | ffmpeg -h muxer=mp4 |
查看指定format的解混流格式的详细信息
1 | ffmpeg -h demuxer=mov |
Codec(encoder和decoder)相关命令
列出所有支持的编解码格式
1 | ffmpeg -codecs |
同样所有格式前面都会有相应的字母来表示它的作用,如下:
1 | Codecs: |
列出所有支持编码格式
1 | ffmpeg -encoders |
列出所有支持解码格式
1 | ffmpeg -decoders |
显示指定编码格式的详细信息
1 | ffmpeg -h encoder=mpeg4 |
显示指定解码格式的详细信息
1 | ffmpeg -h decoder=aac |
参考:
1.What is a Codec (e.g. DivX?), and how does it differ from a File Format (e.g. MPG)?
2.What are all codecs supported by FFmpeg?