ffmpeg缩短计算的视频运行时间

ffmpeg缩短计算的视频运行时间

我有一个由 5,664 个 .tga 图像组成的图像序列,以 24fps 的速度播放(即 236 秒),还有一个音频 ac3 文件,我将其编辑为正好 236 秒(正负 0.01 秒)的长度。

我使用以下 ffmpeg 命令将它们混合成 .mpg 文件:

ffmpeg -i music.ac3 -i o%04d.tga -r 24 -sameq a.mpg

音频播放了整整 236 秒;然而视频只播放了 226 秒,并将最后一帧保留在音频的最后 10 秒内。

为什么 ffmpeg 将我的图像序列播放缩短 10 秒,我怎样才能让它全程运行?

答案1

控制台输出(您应始终包含此输出)可能显示输入以 25 fps 的速度读取。这是默认行为,除非您另行指定。您的-r 24正在应用于输出,我猜这可能是导致您出现问题的原因。移动-r 24作为输入选项,因此它位于之前-i o%04d.tga。然后输出将继承此帧速率。另一个要考虑的选项是-shortest并将在最短的输入(音频或视频)内完成编码。

此外,-sameq不是推荐选项。它并不意味着“相同质量”。请使用-qscale。完整范围是 1-31,但请尝试 2​​-5 之间的值。通常,您会使用对您来说仍然不错的最高值。请参阅此FFmpeg 教程了解更多信息和示例。

相关内容