ffmpeg库-为什么比特率参数在编码时会更改,以及如何强制保留它?

ffmpeg库-为什么比特率参数在编码时会更改,以及如何强制保留它?,ffmpeg,libav,ffprobe,bitrate,Ffmpeg,Libav,Ffprobe,Bitrate,论坛和社区的所有成员大家好 我有一个关于ffmpeg库的问题,为什么在编码后不保留比特率参数,即使我明确指定了所需的速率 输入文件ffprobe: Duration: 00:00:10.01, start: 0.000000, bitrate: 534719 kb/s Stream #0:0(eng): Video: qtrle (rle / 0x20656C72), argb(progressive), 1920x1080, 533881 kb/s, SAR 1:1 DAR 16

论坛和社区的所有成员大家好

我有一个关于ffmpeg库的问题,为什么在编码后不保留比特率参数,即使我明确指定了所需的速率

输入文件ffprobe:

  Duration: 00:00:10.01, start: 0.000000, bitrate: 534719 kb/s
    Stream #0:0(eng): Video: qtrle (rle  / 0x20656C72), argb(progressive), 1920x1080, 533881 kb/s, SAR 1:1 DAR 16:9, 29.97 fps, 29.97 tbr, 30k tbn, 30k tbc (default)
    Metadata:
      creation_time   : 2021-04-13T16:35:16.000000Z
      handler_name    : Apple Video Media Handler
      encoder         : Animation
      timecode        : 00:00:00;00
  Metadata:
    major_brand     : qt  
    minor_version   : 512
    compatible_brands: qt  
    creation_time   : 2021-04-13T16:35:16.000000Z
  Duration: 00:00:10.01, start: 0.000000, bitrate: 100126 kb/s
    Stream #0:0: Video: qtrle (rle  / 0x20656C72), argb(progressive), 1920x1080, 100133 kb/s, SAR 1:1 DAR 16:9, 29.97 fps, 29.97 tbr, 11988 tbn, 11988 tbc (default)
    Metadata:
      creation_time   : 2021-04-13T16:35:16.000000Z
      handler_name    : VideoHandler
      encoder         : Lavf58.58.100
      timecode        : 00:00:00;00
下面是我运行的命令:

ffmpeg -i input.mov -map 0:a? -map 0:s? -pix_fmt argb -b:v 533881667 -maxrate 533881667 -minrate 533881667 -r 29.97 -top 1 -color_range 1 -colorspace 1 -color_primaries 1 -color_trc bt709 -map_metadata 0 -c:a copy -timecode 00:00:00.00 -c:v qtrle -c:s copy output.mov
输出文件ffprobe:

  Duration: 00:00:10.01, start: 0.000000, bitrate: 534719 kb/s
    Stream #0:0(eng): Video: qtrle (rle  / 0x20656C72), argb(progressive), 1920x1080, 533881 kb/s, SAR 1:1 DAR 16:9, 29.97 fps, 29.97 tbr, 30k tbn, 30k tbc (default)
    Metadata:
      creation_time   : 2021-04-13T16:35:16.000000Z
      handler_name    : Apple Video Media Handler
      encoder         : Animation
      timecode        : 00:00:00;00
  Metadata:
    major_brand     : qt  
    minor_version   : 512
    compatible_brands: qt  
    creation_time   : 2021-04-13T16:35:16.000000Z
  Duration: 00:00:10.01, start: 0.000000, bitrate: 100126 kb/s
    Stream #0:0: Video: qtrle (rle  / 0x20656C72), argb(progressive), 1920x1080, 100133 kb/s, SAR 1:1 DAR 16:9, 29.97 fps, 29.97 tbr, 11988 tbn, 11988 tbc (default)
    Metadata:
      creation_time   : 2021-04-13T16:35:16.000000Z
      handler_name    : VideoHandler
      encoder         : Lavf58.58.100
      timecode        : 00:00:00;00
从上面的ffprobe可以看到,我从:

输入的文件比特率:534719kb/s
要输出比特率:100126kb/s

QT-RLE是一种无损编解码器,因此ffmpeg编码器可能具有更好的优化。