如何考虑网络视频的比特率,-最大和-大小


13

我正在使用ffmpeg对视频进行编码,以将其上传到网络上。我看到这个帖子有关使用ffmpeg的,但并没有获得关于如何考虑的值。

假设我有一个大小为70 MB的视频,持续时间为4分钟。我怎么会考虑这些标志值:-b:v-maxrate-bufsize该命令?

ffmpeg -i input -codec:v libx264 -profile:v main -preset slow -b:v ? -maxrate ? -bufsize ? -vf "scale=720:trunc(ow/a/2)*2" -threads 0 -codec:a libfdk_aac -movflags +faststart output

还是有正常值,例如crf19-24?非常感谢您的帮助和指导。


视频编码是一门艺术,需要掌握数百个参数。请注意,在大多数情况下,与通过比特率播放相比,两次通过编码将提供(更好)的质量和压缩效果。通常,最终大小和视频比特率主要取决于视频输出大小。如果告诉ffmpeg保持相同的视频质量,它通常足够聪明,可以选择maxrate和bitrate。还请注意,在大多数情况下,创建480px宽度的视频就足够了,并且可以节省更多的带宽(与使用比特率播放相比)。
Earizon 2015年

1
@earizon我同意,视频编码是一门艺术,通常480就足够了。但是,我也喜欢具有更高的分辨率,因为我不再使用640x480的CRT。与摆弄比特率相比,这绝对是减小大小的更好方法,但是我还是喜欢选择。
Wyatt8740

Answers:


21

这实际上取决于您的上传速度。

bufsize将确定ffmpeg保持比特率恒定的方式。如果您将其设置bufsize为64k(根据FFmpeg Wiki:限制输出比特率),它将每64 KB计算其当前比特率并进行相应调整。较小的尺寸bufsize可能对质量有害,因为它们在两次x264检查之间没有足够的空间进行突然更改-您会变得块状。

如果您的速度maxrate为640kbps,而您的bufsize为64k,则每十分之一秒的x264都会检查一次。这不是最佳选择-FFmpeg Wiki:流媒体编码建议每1到2秒运行一次。如果这没有意义,则将其视为maxrate/ bufsize=检查频率。根据经验,此频率应保持在1到2秒之间。

如果同时设置maxratebufsize,则应该:

  • 设置maxrate为您可能的最低最低上传速度(在ffmpeg Wiki示例中,这是总上传速度的80%,但里程可能会有所不同)。
  • 设置bufsize为介于您maxrate(一秒钟)和两倍maxrate(2秒)之间的某个位置。如果仍然不够低,请降低您的位置maxrate,然后进行bufsize相应的重置。

然后,您将不得不玩一些,但由于必须从某个地方开始,所以我的maxrate起步价大约为600k,通常在我用完crf所有东西之前,这对我来说已经足够了。

如果愿意,您可以尝试使用较低的值bufsize,例如每三或四秒钟,以查看该值如何改变输出的外观。然后,您可以确定应该为自己的视频担心多少。

确实没有正常值-要做的crf是基于它认为是最佳缓冲器大小来优化输出,以维持设定的速率。它会尝试在保持某些质量的同时将文件大小保持在较小的水平,但要以偶尔出现的峰值为代价。


1
不应“将bufsize设置为与最大速率(一秒)至一半最大速率(2秒)之间的某个地方”,而应“将bufsize设置为与最大速率(一秒)至两倍(最大)相同的某个位置之间(2秒)秒)”?
2015年

@Ely我认为你是对的。我的会每半秒做一次。我会解决的!
Wyatt8740

@ Wyatt8740对不起,我很忙。不过只是一个问题。如果我使用crf,然后我不需要指定bitratebuffsizemaxrate?如果是这样,哪个更有效(使用crfbitratebuffsize以及maxrate)?
罗宾(Robin)

@Robin您可以将bufsize和maxrate与crf一起使用。请记住,crf会即时调整比特率以匹配特定的质量,并且如果视频的某些部分非常复杂,则比特率会拍得很高,而您可能不希望这样做,因此最好使用bufsize“锁定”和MAXRATE(!但不是太严格,或者你的视频将看起来像废话:))
伊利

@Robin正确,您不需要与其他人一起使用crf。但是,如果您想限制它,则可以。crf尝试保持恒定的质量-您可以使用bufsize和强制其保持一定的质量maxrate。不过,您不需要bitrate。正如Ely所说,这将使其更好地用于流媒体。
Wyatt8740 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.