如何使用ffmpeg以MB为单位缩小视频大小?

问题描述:

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

我知道命令,以减少特定时间间隔内的视频大小和resolution.Is有什么办法ffmpeg可以减少MB的大小?

+1

'我需要在不改变其质量的情况下将其大小缩小至20 MB。当你发现如何做到这一点,一定要申请专利,你将成为一个百万富翁:) –

+0

这是非常标签,而不是真的在这里的主题。请在将来更多关注标签。谢谢! –

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

这通常是不可能的。

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

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

ffprobe input 

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

编码视频有多种方式(CRF 2遍,VBR 2遍),那么您选择哪一种?既然你想要一个特定大小的视频,你想要VBR(如果你想让它具有特定的质量而不关心大小,那么它就是CRF)。你如何计算比特率? ffprobe告诉你的视频(以秒为单位)的持续时间和目标比特率的计算公式为:

target_rate_bits_per_second = target_size_bytes * 8/duration_seconds 

然后使用这个比特率,因为在我刚刚链接到每个可变比特率命令-b:v期权价值。

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