+
100
-

回答

要将视频压缩到指定的大小(比如 5MB),可以通过指定目标文件大小来控制视频比特率(Bitrate)。

有两种办法:

一、使用第三方软件,例如格式工厂,格式工厂视频输出限制有种大小限制,设置好即可。

800_auto

二、使用FFmpeg 

FFmpeg 没有直接的选项让你指定目标文件大小,但你可以通过以下步骤来实现。

压缩视频到指定大小的步骤1. 计算目标比特率

文件大小(以比特为单位)由以下公式决定:

文件大小 = 视频比特率 * 时长 + 音频比特率 * 时长

假设你想将视频压缩到 5MB(5000KB * 1024 = 5120000 bytes)。你需要先确定视频的时长,并使用以下公式计算目标比特率:

目标比特率 = (文件大小 - 音频比特率 * 时长) / 时长
2. 获取视频时长

使用 FFmpeg 来获取视频的时长:

ffmpeg -i input.mp4

FFmpeg 会输出类似如下的信息:

Duration: 00:02:30.12, start: 0.000000, bitrate: 3200 kb/s

这里的视频时长是 2 分 30 秒,也就是 150 秒。

3. 选择音频比特率

通常音频比特率在 128kbps 或 192kbps 是比较常见的。如果你要压缩视频,可以将音频比特率设为 128kbps。

4. 计算视频比特率

假设目标文件大小为 5MB(5000KB * 1024 = 5120000 bytes),时长为 150 秒,音频比特率为 128kbps,计算出视频比特率如下:

目标文件大小(字节) = 5120000 bytes
音频比特率 = 128 kbps = 128000 bps
时长 = 150 秒

视频比特率 = (5120000 * 8 - 128000 * 150) / 150
           = (40960000 - 19200000) / 150
           = 144000 bps ≈ 960 kbps
5. 使用 FFmpeg 设置比特率并压缩视频

现在,我们知道视频比特率大约是 960kbps。你可以使用以下命令压缩视频:

ffmpeg -i input.mp4 -b:v 960k -b:a 128k output.mp4
解释:-b:v 960k:设置视频比特率为 960kbps。-b:a 128k:设置音频比特率为 128kbps。input.mp4:输入视频文件。output.mp4:压缩后的输出视频文件。6. 尝试不同的比特率

如果输出视频文件仍然大于 5MB,尝试稍微降低视频比特率(例如 -b:v 900k 或 -b:v 850k),直到达到目标大小。你也可以通过降低帧率(-r)或分辨率(-vf scale)来进一步减少文件大小。

总结

要将视频压缩到指定大小(如 5MB),你需要:

获取视频时长。根据时长、目标文件大小和音频比特率计算视频比特率。使用 FFmpeg 压缩视频时,指定合适的音频和视频比特率。

网友回复

我知道答案,我要回答