如何使用来定位固定文件大小ffmpeg?

如何使用来定位固定文件大小ffmpeg?

我有一个视频文件,长度为 15 秒,大小为 465,195 KB。我想将其缩小到 46,000 KB 左右。有没有简单的方法可以做到这一点。我尝试了允许的最大比特率

ffmpeg -i input -q:v 0 -b:v 900000k output

我仍然得到一个只有 3,500 KB 的文件

提前致谢

答案1

如何使用来定位固定文件大小ffmpeg

如果你愿意使用转码x264,你可以按照编码指南它给出了如何定位特定文件大小的示例。

target bitrate = target filesize / duration

ie     bitrate = 46000           / 15

ie     bitrate = 3067 (kbit / s)

你可能需要一些音频;指南使用 128k 作为粗略默认值,因此你的目标比特率是2939千比特/秒。然后您可以使用双程编码规范:

ffmpeg -y -i input -c:v libx264 -preset medium -b:v 2939k -pass 1 -c:a libfdk_aac -b:a 128k -f mp4 /dev/null && \
ffmpeg -i input -c:v libx264 -preset medium -b:v 2939k -pass 2 -c:a libfdk_aac -b:a 128k output.mp4

如果您针对特定的输出文件大小并且帧与帧之间的输出质量不太重要,则通常使用此方法。

当然,您可以根据音频编码等方面的需要对其进行调整,但最终您会得到一个 46000kB 的文件。

相关内容