如何使用ffmpeg减少MB的视频大小?

时间:2016-04-30 10:08:29

标签: ffmpeg

我有一个120MB的视频。我需要将其大小减小到20 MB而不改变其质量。是否有任何直接的ffmpeg命令可以运行?

我知道在特定时间间隔和分辨率之间缩小视频大小的命令。有没有什么办法可以减小MB的大小?

1 个答案:

答案 0 :(得分:6)

  

我需要在不改变质量的情况下缩小尺寸[..]。

这通常是不可能的。

  

我有一个120MB的视频。我需要将其大小减小到20 MB

欢迎使用视频编码(和音频编码)。告诉我们一些关于输入文件的信息。运行:

ffprobe input

这将告诉我们文件当前是如何编码的。然后,让我们重新编码它。首先,我假设您不想更改分辨率/帧速率,因此我们将保持相同。其次,让我们选择视频编解码器/编码器。根据ffmpeg二进制文件中内置的选项,典型选项包括H.264(x264),VP9(libvpx)或HEVC(x265)。

有各种方式对视频进行编码(CRF 2-pass,VBR 2-pass),您选择哪种方式?由于您需要特定大小的视频,因此您需要VBR(CRF就是您希望它具有特定质量并且不关心大小)。你如何计算比特率? ffprobe告诉您视频的持续时间(以秒为单位),目标比特率计算为:

target_rate_bits_per_second = target_size_bytes * 8 / duration_seconds

然后在我刚刚链接的每个变量比特率命令中使用此比特率作为-b:v选项的值。

[edit]假设您也有音频,分配视频和音频流之间的可用位,以便总比特率为20MB。还假设一点容器开销。 [/编辑]