2.1 ffmpeg常用命令

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的版本,包括子模块的详细版本信息,如libavformatlibavcodeclibavutillibavfilterlibswscalelibswresample的版本:

-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支持哪些滤镜: