4

我正在使用 ffmpeg 将一组带有音轨的图像 (bmps) 转换为 Web 就绪视频。目标格式是 h.264 mp4、webm 和 flv。这是在使用预构建的 zeranoe 静态构建 ( http://ffmpeg.zeranoe.com/builds/ )的 Windows Azure 超大型实例 (8 proc) 上。

假设我愿意为原始速度牺牲质量和尺寸。每种格式的哪些选项会产生最快的结果?

我的“基线”命令看起来像这样(交换其他格式的扩展名):

ffmpeg -y -i frames%5d.bmp -i audio.mp3 -r 23.97 out.mp4

如果需要,我可以将输入更改为其他格式(jpg 图像、aac 音频等)。

4

2 回答 2

5

您更改任何格式的质量/编码速度平衡的主要“旋钮”是比特率。在刚刚的测试中,使用默认设置(比特率~900k)进行编码需要 97 秒的视频,在比特率降至 100k 的情况下耗时不到一半。输出视频要小得多,质量明显更差。

在您的情况下,来自图像,您可能可以通过关闭FFmpeg 编码技巧中提到的运动估计来获得主要的加速:

如果您的计算机速度不够快,您可以以牺牲压缩比为代价来加快压缩速度。您可以使用“-me zero”加速运动估计,使用“-g 0”完全禁用运动估计(您只有 I 帧,这意味着它与 JPEG 压缩差不多)。[请注意,最新版本的 FFmpeg 使用-me_method. -me]

在测试中,97 秒的编码在20秒内完成, -g 0. 压缩率要低得多,为原始大小的 63%,而默认设置为 25%,但与低比特率编码不同,质量仍然很好。

这是我快速测试的完整结果,时间是实时用于编码的:
基线,27M MOV 到 mp4,比特率 ~900k :97s
with -me_method zero: 84s
with -flags2 fast: 84s
with -b 500k: 75s
with -b 100k: 43s
with -g 0: 20s

with -flags2 fastand -b 100kand -g 0: 12s (输出看起来很糟糕)

可能还有其他特定于格式的调整,但与上面列出的方法相比,我不希望这些调整有显着的加速..

于 2012-07-20T22:19:13.017 回答
1

这些图像的分辨率是多少?使用尽可能低的分辨率将为您提供更好的性能。还可以使用 ffmpeg 中的 -threads 选项来优化使用 8 个内核。

于 2012-07-20T13:25:15.490 回答