2.1 ffmpeg常用命令
ffmpeg
在做音视频编解码时非常方便,所以在很多场景下转码使用的是ffmpeg
,通过ffmpeg --help
可以看到ffmpeg
常见的命令大概分为6个部分,具体如下。
ffmpeg
信息查询部分- 公共操作参数部分
- 文件主要操作参数部分
- 视频操作参数部分
- 音频操作参数部分
- 字幕操作参数部分
ffmpeg
信息查询部分的主要参数具体如下:
通过ffmpeg --help
查看到的help
信息是ffmpeg
命令的基础信息,如果想获得高级参数部分,那么可以通过使用ffmpeg --help long
参数来查看,如果希望获得全部的帮助信息,那么可以通过使用ffmpeg --help full
参数来获得。
-L参数
通过-L
参数,可以看到ffmpeg
目前所支持的license
协议;
-version参数
通过-version
参数,可以查看ffmpeg
的版本,包括子模块的详细版本信息,如libavformat
、libavcodec
、libavutil
、libavfilter
、libswscale
、libswresample
的版本:
-formats参数
使用ffmpeg
转码,有时候可能会遇到无法解析的视频文件或者无法生成视频文件,报错提示不支持生成对应的视频文件,这时候就需要查看当前使用的ffmpeg
是否支持对应的视频文件格式,需要使用ffmpeg -formats
参数来查看:
根据上面输出的信息可以看到,输出的内容分为3个部分,具体如下。
- 第一列是多媒体文件封装格式的
Demuxing
支持与Muxing
支持 - 第二列是多媒体文件格式
- 第三列是文件格式的详细说明
查看是否支持某种编码或解码格式
使用ffmpeg
命令时,可能会出现ffmpeg
不支持某种编码格式或者某种解码格式的错误提示信息,这种错误常见于并未将该编码器或者解码器集成到ffmpeg
中,若想查看ffmpeg
是否支持H.264
编码或者解码,
- 可以通过
ffmpeg -codecs
查看全部信息, - 也可以通过
ffmpeg -encoders
查看ffmpeg
是否支持H.264
编码器, - 或者通过
ffmpeg -decoders
查看ffmpeg
是否支持H.264
解码器。
ffmpeg-decoders
命令行执行后,输出如下:
输出信息中包含了三部分内容,具体如下。
- 第一列包含6个字段,第一个字段用来表示此编码器为音频、视频还是字幕,第二个字段表示帧级别的多线程支持,第三个字段表示分片级别的多线程,第四个字段表示该编码为试验版本,第五个字段表示
draw horiz band
模式支持,第六个字段表示直接渲染模式支持 - 第二列是编码格式
- 第三列是编码格式的详细说明
ffmpeg-encoders
命令执行后,输出如下:
输出信息中同样包含了三部分内容,具体如下。
- 第一列包含6个字段,第一个字段用来表示此编码器为音频、视频还是字幕,第二个字段表示帧级别的多线程支持,第三个字段表示分片级别的多线程,第四个字段表示该编码为试验版本,第五个字段表示
draw horiz band
模式支持,第六个字段表示直接渲染模式支持 - 第二列是编码格式
- 第三列是编码格式的详细说明
查看支持的滤镜
除了查看ffmpeg
支持的封装(Muxer)
格式与解封装(Demuxer)
格式、编码(Encoder)
类型与解码(Decoder)
类型,还可以通过ffmpeg -filters
查看ffmpeg
支持哪些滤镜:
原文链接: 2.1 ffmpeg常用命令