为视频的每一帧叠加不同的 png

为视频的每一帧叠加不同的 png

我有一段视频和一组图像(每幅图像占一个视频帧)。我想将图像叠加在视频上,每幅图像占一个帧。图像和视频大小相同。我先通过获取元数据来了解视频帧的数量。

这是我正在运行的命令。

ffmpeg -y -i "video-file.mp4" -i "%05d.png" -filter_complex "[0:v][1:v]overlay" "output-video-file.mp4"

问题是生成的视频比初始视频长,因为它还没有叠加所有提供的图像。看起来每幅图像都叠加了好几帧,所以到视频结束时,仍然有帧剩余,它将它们全部叠加在初始视频的最后一帧上。

此命令缺少什么?

答案1

我需要添加 -framerate 选项,指定视频的帧速率。它必须位于传递图像序列之前。

ffmpeg -y -i "video-file.mp4" -framerate 30 -i "%05d.png" -filter_complex "[0:v][1:v]overlay" "output-video-file.mp4"

相关内容