我有一个120MB的视频。我需要将其大小减小到20 MB而不改变其质量。是否有任何直接的ffmpeg命令可以运行?
我知道在特定时间间隔和分辨率之间缩小视频大小的命令。有没有什么办法可以减小MB的大小?
答案 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。还假设一点容器开销。 [/编辑]