我正在尝试以可靠的方式从 ffmpeg 获取版本号,希望不会解析字符串。
我可以解析 的输出ffmpeg -version,但是我不能保证字符串在不久的将来不会改变。
$ ffmpeg -version
ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
[...]
Run Code Online (Sandbox Code Playgroud)
我对获取版本号的稍微更编程的方式感兴趣,比如可能告诉 ffmpeg 输出 JSON 或者只是输出版本号,而我不必从文本正文中提取它。
如果你有配套ffprobe工具,你可以运行
ffprobe -v 0 -of default=nw=1:nk=1 -show_program_version | head -1
Run Code Online (Sandbox Code Playgroud)
这将只打印版本字符串。
例如,
N-100221-g18befac5da
Run Code Online (Sandbox Code Playgroud)
您还可以发出 JSON。
ffprobe -v 0 -of json
Run Code Online (Sandbox Code Playgroud)
给
{
"program_version": {
"version": "N-100221-g18befac5da",
...
}
}
Run Code Online (Sandbox Code Playgroud)
该ffmpeg二进制文件本身并不提供这些输出。
请注意,版本字符串格式和组成可能会有所不同 - 它不是标准化的,并且可以由构建器添加自定义字符串。但一般来说,一个 git 构建会有一个提交哈希(有或没有g前缀),而一个发布构建会有一个x.y.z. 有关其他形式的几个示例,请参阅我的 Windows 版本 - 我还包括提交日期。
在N上面我举的例子计数是从二进制建时提交的主分支的数量。
| 归档时间: |
|
| 查看次数: |
530 次 |
| 最近记录: |