如何检查ffmpeg中的编解码器版本?

use*_*764 10 ffmpeg

所以,我知道显而易见的事情

ffmpeg -version
Run Code Online (Sandbox Code Playgroud)

但它没有提供诸如我当前的 ffmpeg 版本中包含哪个版本的 libx265 之类的信息。除了使用我想要检查的编解码器转换一个小虚拟文件然后读取文件的元数据之外,是否有一种简单的方法来检查它?

我调查了

ffmpeg -h
Run Code Online (Sandbox Code Playgroud)

但我没有找到任何似乎相关的东西。例如,我发现了这些:

ffmpeg -encoders
ffmpeg -codecs
Run Code Online (Sandbox Code Playgroud)

他们确实列出了编码器或编解码器,但没有其版本:/

slh*_*hck 6

不幸的是,这是不可能的。

找出答案的唯一方法是运行实际的编码:

ffmpeg -f lavfi -i nullsrc -frames:v 1 test.mp4
Run Code Online (Sandbox Code Playgroud)

然后检查输出文件的元数据。请注意,并非所有编码器都会写入此类元数据。

一些编码器在运行 ffmpeg 时也会显示其版本-loglevel debug

不要依赖系统上现有的二进制文件或库,因为您的 ffmpeg 版本可能已针对不同的库进行静态编译(例如ffmpeg.org提供的静态构建的情况)。


小智 -2

列出所有可用的解码器

ffmpeg -decoders
Run Code Online (Sandbox Code Playgroud)

列出所有可用的编码器

ffmpeg -encoders
Run Code Online (Sandbox Code Playgroud)

H.265 等外部编码器必须单独安装,并在编译期间使用“--enable-library”(例如--enable-libx265)启用。在这种情况下,您可以在命令行上使用 libx265 检查版本。

在我的系统上:

$ ./bin/x265 -V
x265 [info]: HEVC encoder version 2.8+40-0106f9f2f867
Run Code Online (Sandbox Code Playgroud)

希望有帮助。干杯。

  • 这是不正确的——该要求仅在您构建二进制文件时适用。FFmpeg 不需要安装 x265。例如,您可以访问 https://johnvansickle.com/ffmpeg/ 并下载二进制文件,该二进制文件将自行运行。 (2认同)