1

试图让我的头脑围绕 ffmpeg 创建一个幻灯片,其中每个图像显示约 5 秒钟并带有一些音频。到目前为止,创建了一个 bat 文件来运行以下内容:

ffmpeg -f image2 -i image-%%03d.jpg -i music.mp3 output.mpg

它会在视频的第一秒快速获取图像并显示它们,然后在显示最后一张图像时播放其余的音频。

我想让图像停留更长时间(大约 5 秒),并在最后一帧之后停止视频(不播放歌曲的其余部分),这些都可能吗?我可以通过拥有数百张相同的图像来破解我猜想的帧率问题,以使其保持更长时间,但这远非理想!

谢谢

4

2 回答 2

5

mpg 输出的默认编码器 ,mpeg1video对允许的帧速率非常严格,因此需要输入和输出-r

ffmpeg -r 1/5 -i image-%03d.jpg -i music.mp3 -r 25 -qscale:v 2 -shortest -codec:a copy output.mpg

输入图像的帧速率为每 5 秒 1 帧,输出将复制帧以达到每秒 25 帧。

  • -f image2一般不需要。
  • -qscale:v可以控制输出质量。合理的范围是 2-5。
  • -shortest将使输出持续时间与最短输入持续时间相同。
  • -codec:a copy复制您的 MP3 音频而不是重新编码。

MPEG-1 视频有更现代的选择。有关详细信息,请参阅FFmpeg 和 x264 编码指南

另请参阅:
* FFmpeg 常见问题解答:如何将单张图片编码为电影?
* FFmpeg Wiki:从图像创建视频幻灯片

于 2013-06-14T19:17:39.287 回答
0

您可以使用过滤器 fps 而不是输出帧率

ffmpeg -r 1/5 -i img%03d.png -i musicfile -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4

然而,这奇怪地为我跳过了最后一张图片。

于 2013-12-19T14:40:33.537 回答