ffprobe查看媒体文件信息

ffprobe 是 FFmpeg 工具集中的一个非常有用的命令行工具,它可以用来查看媒体文件的详细信息,比如音视频编码格式、时长、分辨率、帧率、码率、音频采样率、轨道信息等等。

基本用法

要查看一个媒体文件的基本信息,可以使用以下命令:

ffprobe input.mp4

这将输出该媒体文件的各种信息,包括音视频流、格式、时长、大小、比特率等。

1. 查看所有详细信息

如果你想查看所有详细的元数据(包括视频流、音频流、字幕流等),可以使用以下命令:

ffprobe -v verbose input.mp4
  • -v verbose:设置详细输出,会显示更多调试信息。
  • input.mp4:指定要分析的媒体文件路径。

2. 只显示媒体流的简要信息

如果你只对媒体文件的基本信息(如视频流和音频流的编码格式、时长等)感兴趣,可以使用以下命令:

ffprobe -v error -show_format -show_streams input.mp4
  • -v error:只输出错误信息,忽略其他冗余信息。
  • -show_format:显示文件的基本格式信息(比如时长、文件大小等)。
  • -show_streams:显示所有媒体流的详细信息(视频、音频、字幕等)。

3. 查看格式信息

如果你只想查看文件的格式信息(如时长、文件大小、比特率等),可以使用以下命令:

ffprobe -v error -show_format input.mp4

输出内容示例:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
  Duration: 00:02:45.13, start: 0.000000, bitrate: 2133 kb/s
    Stream #0:0(und): Video: h264 (High), yuv420p(tv), 1280x720, 23.98 fps, 23.98 tbr, 12288 tbn, 47.95 tbc (default)
    Stream #0:1(und): Audio: aac (LC), 44100 Hz, stereo, fltp, 192 kb/s (default)

4. 查看流信息

如果你想查看文件中各个流的详细信息(如视频流、音频流的编码格式、帧率、分辨率等),可以使用以下命令:

ffprobe -v error -show_streams input.mp4

输出内容示例:

Stream #0:0(und): Video: h264 (High), yuv420p(tv), 1280x720, 23.98 fps, 23.98 tbr, 12288 tbn, 47.95 tbc (default)
Stream #0:1(und): Audio: aac (LC), 44100 Hz, stereo, fltp, 192 kb/s (default)

5. 查看特定流的信息

如果你只想查看某个特定流的信息,可以加上 -select_streams 参数指定流的编号。例如,查看视频流的信息:

ffprobe -v error -select_streams v:0 -show_streams input.mp4

如果要查看音频流的信息:

ffprobe -v error -select_streams a:0 -show_streams input.mp4
  • v:0:指定第一个视频流。
  • a:0:指定第一个音频流。

6. 查看包信息

如果你要查看媒体文件中的数据包信息,可以使用以下命令:

ffprobe -v error -show_packets input.mp4

输出内容类似如下

[PACKET]
pkt_pts=0
pkt_dts=0
pkt_duration=1001
pkt_size=50000
stream_index=0
codec_type=video
key_frame=1
flags=K
[/PACKET]

[PACKET]
pkt_pts=1001
pkt_dts=1001
pkt_duration=1001
pkt_size=45000
stream_index=1
codec_type=audio
key_frame=0
flags=
[/PACKET]

[PACKET]
pkt_pts=2002
pkt_dts=2002
pkt_duration=1001
pkt_size=46000
stream_index=0
codec_type=video
key_frame=0
flags=
[/PACKET]

7. 查看文件的元数据

如果你需要查看文件的元数据(例如标题、艺术家、版权信息等),可以使用 -show_entries 参数:

ffprobe -v error -show_entries format_tags input.mp4

输出内容可能会类似于:

artist=Artist Name
title=Sample Video
copyright=Some Copyright Info

8. 查看文件的大小和时长

如果你只想查看文件的时长和大小等基本格式信息,可以使用以下命令:

ffprobe -v error -show_format input.mp4

输出内容示例:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
  Duration: 00:02:45.13, start: 0.000000, bitrate: 2133 kb/s
  File size: 4510737 bytes

9. JSON 输出格式

如果你需要将输出内容处理成 JSON 格式,方便机器读取,可以使用 -print_format json 参数:

ffprobe -v error -show_format -show_streams -print_format json input.mp4

这会将结果以 JSON 格式输出,方便程序进行解析。其它的格式还包括csv,xml等。

输出示例:

{
    "streams": [
        {
            "index": 0,
            "codec_name": "h264",
            "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
            "codec_type": "video",
            "codec_time_base": "1/1000",
            "codec_tag_string": "avc1",
            "codec_tag": "0x31637661",
            "width": 1280,
            "height": 720,
            "r_frame_rate": "24000/1001",
            "avg_frame_rate": "24000/1001",
            "time_base": "1/90000",
            "start_time": "0.000000",
            "duration": "164.138667",
            "bit_rate": "1500000",
            "tags": {
                "language": "und"
            }
        },
        {
            "index": 1,
            "codec_name": "aac",
            "codec_long_name": "AAC (Advanced Audio Codec)",
            "codec_type": "audio",
            "codec_time_base": "1/44100",
            "codec_tag_string": "mp4a",
            "codec_tag": "0x6134706d",
            "sample_rate": 44100,
            "channels": 2,
            "channel_layout": "stereo",
            "time_base": "1/90000",
            "start_time": "0.000000",
            "duration": "164.138667",
            "bit_rate": "192000",
            "tags": {
                "language": "und"
            }
        }
    ],
    "format": {
        "filename": "input.mp4",
        "nb_streams": 2,
        "nb_programs": 0,
        "format_name": "mov,mp4,m4a,3gp,3g2,mj2",
        "format_long_name": "QuickTime / MOV",
        "start_time": "0.000000",
        "duration": "164.138667",
        "size": "4510737",
        "bit_rate": "2133000",
        "tags": {
            "artist": "Artist Name",
            "title": "Sample Video",
            "copyright": "Some Copyright Info"
        }
    }
}

常用参数总结

  • -v error:只输出错误信息,避免多余的调试信息。
  • -show_format:显示文件格式的详细信息。
  • -show_streams:显示所有流(视频、音频、字幕等)的信息。
  • -select_streams v:0:选择特定的视频流(第一个视频流)。
  • -select_streams a:0:选择特定的音频流(第一个音频流)。
  • -select_packets:显示每一个数据包的信息。
  • -show_entries format_tags:查看文件的元数据标签(如艺术家、标题等)。
  • -print_format json:输出结果为 JSON 格式,便于机器解析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值