赞
踩
ffprobe
是 FFmpeg 套件中的一个工具,用于分析多媒体内容,如视频、音频和图像。它能够显示各种信息,包括格式、流详情、标签、包信息等。当 ffprobe
输出 JSON 格式时,它会以 JSON 对象的形式提供结构化的数据,这使得数据易于解析和处理。
要让 ffprobe
输出 JSON 格式的数据,你可以使用 -print_format
选项,然后指定 json
作为输出格式。以下是一个基本的 ffprobe
命令示例,它输出 JSON 格式的媒体信息:
ffprobe -v error -show_format -show_streams -print_format json=compact=1 input_video.mp4
在这个命令中:
-v error
:设置日志级别为错误,以避免输出无关的信息。-show_format
:显示多媒体内容的格式信息。-show_streams
:显示所有的流信息。-print_format json=compact=1
:设置输出格式为 JSON,并且使用紧凑格式(没有多余的空格和缩进)。input_video.mp4
:指定要分析的输入文件。输出的 JSON 对象可能看起来像这样:
{ "format": { "filename": "input_video.mp4", "nb_streams": 2, "format_name": "mov,mp4,m4a,3gp,3g2,mj2", "format_long_name": "QuickTime / MOV", "start_time": "0.000000", "duration": "28.769000", "size": "31457336", "bit_rate": "884437", "probe_score": 100, "tags": { "major_brand": "mp42", "minor_version": "0", "compatible_brands": "mp42avc1", "creation_time": "2021-09-01T00:00:00.000000Z" }, "format_tags": { "major_brand": "mp42", "minor_version": "0", "compatible_brands": "mp42avc1" } }, "streams": [ { "index": 0, "codec_name": "avc1", "codec_long_name": "AAC (Advanced Audio Coding)", "profile": "LC (Low Complexity)", "codec_type": "audio", "codec_time_base": "1/44100", "codec_tag_string": "[0][0][0][0]", "codec_tag": "0x[0][0][0][0]", "sample_fmt": "fltp", "sample_rate": "44100", "channels": 2, "channel_layout": "stereo", "bits_per_sample": 0, "r_frame_rate": "25/1", "avg_frame_rate": "25/1", "time_base": "1/44100", "start_pts": 0, "start_time": "0.000000", "duration_ts": 1264800, "duration": "28.700000", "bit_rate": "93696", "max_bit_rate": "93696", "buf_size": "6144", "nb_frames": 1168, "disposition": { "default": 0, "dub": 0, "original": 0, "comment": 0 }, "tags": { "language": "eng", "title": "Soundtrack" } }, { "index": 1, "codec_name": "avc1", "codec_long_name": "AVC (H.264, MPEG-4 AVC, MPEG-4 part 10)", "profile": "High", "codec_type": "video", "codec_time_base": "1/50", "codec_tag_string": "[0][0][0][0]", "codec_tag": "0x[0][0][0][0]", "width": 1920, "height": 1080, "has_b_frames": 2, "sample_fmt": "yuv420p", "pix_fmt": "yuv420p", "time_base": "1/50", "start_pts": 4, "start_time": "0.080000", "duration_ts": 631800, "duration": "14.200000", "bit_rate": "826336", "max_bit_rate": "826336", "buf_size": "4096", "nb_frames": 2256, "disposition": { "default": 1, "dub": 0, "original": 0, "comment": 0 }, "tags": { "language": "eng", "title": "Video" } } ] }
这个 JSON 对象包含了输入视频文件的格式信息和流信息。format
部分包含了文件级别的信息,如文件名、格式名称、时长、大小等。streams
数组包含了每个流的详细信息,如编解码器名称、分辨率、帧率、比特率等。
你可以根据需要调整 ffprobe
命令的选项来获取不同的信息。例如,如果你只对视频流感兴趣,可以使用 -show_streams
选项,并且可能不需要 -show_format
选项。
JSON 输出的格式是紧凑的,没有多余的空格和缩进,这使得它更容易被程序读取和解析。如果你更喜欢易读的格式,可以省略 compact=1
选项,ffprobe
将会输出带有缩进的 JSON 数据。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。