使用 ffmpeg 确定视频比特率

use*_*012 21 video metadata ffmpeg bitrate

我正在尝试使用 ffmpeg 命令确定视频比特率(用于转码),我尝试了以下命令。

ffmpeg -i 28572615.wmv
Run Code Online (Sandbox Code Playgroud)

它产生以下输出

    Input #0, asf, from '28572615.wmv':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isomavc1
    encoder         : Lavf57.36.100
  Duration: 00:02:50.92, start: 0.000000, bitrate: 1982 kb/s
    Stream #0:0: Video: wmv2 (WMV2 / 0x32564D57), yuv420p, 640x360, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 1k tbn, 1k tbc
    Stream #0:1: Audio: wmav2 (a[1][0][0] / 0x0161), 44100 Hz, 2 channels, fltp, 128 kb/s
At least one output file must be specified
Run Code Online (Sandbox Code Playgroud)

如果我使用另一个视频

ffmpeg -i with_out_sound.mp4
Run Code Online (Sandbox Code Playgroud)

然后我得到以下输出

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'with_out_sound.mp4':
  Metadata:
    major_brand     : dash
    minor_version   : 0
    compatible_brands: iso6avc1mp41
    creation_time   : 2015-04-21 05:14:57
  Duration: 00:00:27.86, start: 0.000000, bitrate: 500 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 622x480 [SAR 1:1 DAR 311:240], 100 kb/s, 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc (default)
    Metadata:
      creation_time   : 2015-04-21 05:14:57
      handler_name    : VideoHandler
At least one output file must be specified
Run Code Online (Sandbox Code Playgroud)

我感到困惑的一点是,我应该在 Duration 元数据行或 Video Stream metadata line(Stream #0:0) 中查看视频比特率吗?

Gya*_*yan 21

视频比特率显示在视频流信息中。格式信息包含所有流的比特率加上复用开销。

如果视频比特率丢失,则获得该值的一种肮脏方法是从总比特率中减去所有其他流的比特率。

如果这不可行,一个繁琐的方法是运行 ffprobe 来显示数据包大小和流持续时间,然后通过对最后一行之外的所有行求和并除以最后一行中的值来计算比特率。

ffprobe -select_streams v -show_entries packet=size:stream=duration -of compact=p=0:nk=1 video.mp4
Run Code Online (Sandbox Code Playgroud)

输出:

4199      
2627      
1792      
3921      
2993      
...  
2301      
3076
2879
1543.00000
Run Code Online (Sandbox Code Playgroud)

当然,这是最后的解决方案,并且仅适用于视频流信息不支持比特率并且通过折扣所有其他流的速率来估计比特率也是不可能的。


rli*_*les 7

编辑:如果您有MKV 视频,请参阅下面 Cliff 的注释而不是 MP4,请参阅下面 Cliff 的注释。

获取正确格式的视频比特率的最简单方法是使用 FFMPEG 实用程序ffprobe

$ ffprobe -v quiet -select_streams v:0 -show_entries stream=bit_rate -of default=noprint_wrappers=1:nokey=1 inputvideo.mp4
Run Code Online (Sandbox Code Playgroud)

这会单独打印原始比特率值,以便您可以轻松地在某种脚本中使用它。

摘自这里:https ://write.corbpie.com/getting-video-bitrate-with-ffprobe/

  • 结果 N/A 。 (2认同)