ffmpeg 查看滤镜选项参数,编解码器参数

在学习一下ffmpeg滤镜的使用,无奈滤镜种类繁多,并且每一个滤镜其命令行支持的参数也是各种各样,当然网上也可以找到很多关于常用滤镜的参数的解释,既然支持这些参数,那么源码中肯定是有对这些参数进行唯一的解析的,我想肯定有一个官方的解释的,那么怎么查看这些滤镜的参数说明呢?

命令行如下:
#ffmpeg  -h filter=XXX  列出xxx滤镜的help说明
比如: 下面对所有支持的选项,都有解释说明。
(使用之前,可以使用 ffmpeg -filters 列出所有支持的滤镜,这个-filters 选项,同样可以追溯到 ffmpeg --help中看到 关于ffmpeg -filters的解释。只是想说明,这些参数用法解释等等都有原始的出处,并且更加全面)

#ffmpeg -h filter=drawtext
ffmpeg version 4.1 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.3.0-27ubuntu1~18.04)
  configuration: --enable-libfreetype
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
Filter drawtext
  Draw text on top of video frames using libfreetype library.
    Inputs:
       #0: default (video)
    Outputs:
       #0: default (video)
drawtext AVOptions:
  fontfile          <string>     ..FV..... set font file
  text              <string>     ..FV..... set text
  textfile          <string>     ..FV..... set text file
  fontcolor         <color>      ..FV..... set foreground color (default "black")
  fontcolor_expr    <string>     ..FV..... set foreground color expression (default "")
  boxcolor          <color>      ..FV..... set box color (default "white")
  bordercolor       <color>      ..FV..... set border color (default "black")
  shadowcolor       <color>      ..FV..... set shadow color (default "black")
  box               <boolean>    ..FV..... set box (default false)
  boxborderw        <int>        ..FV..... set box border width (from INT_MIN to INT_MAX)  
。。。。。篇幅所限,就不全部粘贴了,还有一大串参数

常用:
-formats            show available formats
-muxers             show available muxers
-demuxers           show available demuxers
-devices            show available devices
-codecs             show available codecs
-decoders           show available decoders
-encoders           show available encoders
显示一个 解码器的参数说明: #ffmpeg -h decoder=h264
显示一个 编码器的参数说明: #ffmpeg -h encoder=libx264 (前提是要enable了x264哦)
显示一个 解复用器参数说明: #ffmpeg -h demuxer=mp4
显示一个 复用器的参数说明: #ffmpeg -h muxer=mp4
=============================一个简单的分割线=======================================
下面开始从源码层面解释,可以在ffmpeg源码中(我这里是4.1版本)看到:

libavfiler目录下面都是 vf_** 和av_** 顾名思义就是 video filter 和 audio filter,其中还有一个文件 filter_list.c, 此文件在 cofigure的时候,根据具体配置生成, 其内容就是一个全局数组,保存所有的滤镜AVFilter。 
每一个 AVFilter,都有它的 description 和内部的 AVOption, 就是对应源码中就有对这些参数的解释:

这个options在ffmpeg 的命令解释到-h时会调用,输出具体的help信息:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章