【发布时间】:2023-03-05 17:55:01
【问题描述】:
我想使用 ffprobe 找出视频文件的确切格式/容器,但我无法找到其中的“确切”部分。
当我运行这个示例命令时:ffprobe -hide_banner -loglevel fatal -show_error -show_format -print_format json INPUT
我收到这个输出:
{
"format": {
"filename": "INPUT",
"nb_streams": 2,
"nb_programs": 0,
"format_name": "matroska,webm",
"format_long_name": "Matroska / WebM",
"start_time": "0.000000",
"duration": "2.969000",
"size": "2376430",
"bit_rate": "6403314",
"probe_score": 100,
"tags": {
"COM.ANDROID.VERSION": "9",
"MAJOR_BRAND": "mp42",
"MINOR_VERSION": "0",
"COMPATIBLE_BRANDS": "isommp42",
"COM.ANDROID.CAPTURE.FPS": "30.000000",
"ENCODER": "Lavf57.83.100"
}
}
}
您可能已经理解,ffprobe 在format_name 值内提供了格式列表。这适用于 mp4、mkv、webm 等多种视频格式。
然而,mediainfo 能够找出格式的确切类型,即它输出单个 Format,如下所示:
命令:mediainfo INPUT
输出:
General
Unique ID : 41836023869371892704046005573890259380 (0x1F79533A912A2117C3D4CEB704EAB9B4)
Complete name : intermediate.mkv
Format : Matroska
Format version : Version 4 / Version 2
File size : 2.27 MiB
Duration : 2 s 969 ms
Overall bit rate mode : Variable
Overall bit rate : 6 403 kb/s
Writing application : Lavf57.83.100
Writing library : Lavf57.83.100
ErrorDetectionType : Per level 1
COM.ANDROID.CAPTURE.FPS : 30.000000
COM.ANDROID.VERSION : 9
*为整理信息而截断的输出
谁能指导我如何使用 ffprobe 本身来实现这一点?
【问题讨论】:
-
不可能。特定模式由解复用器识别,但不是标准导出字段。
-
是的,我还没有找到任何输出这个的命令组合,但是 ffprobe 应该能够像
mediainfo那样做这个,并且像python-magic这样的任何 mime_type 推断器都能够