FFmpeg 叠加过滤器更改源 FPS

FFmpeg Overlay Filter Changes Source FPS

我想将一个视频叠加在另一个慢动作视频之上。 令人惊讶的是,叠加层也变得慢动作。

我正在应用以下命令:

ffmpeg
  -to 00:00:01.000 -i camera1.mp4                       // original video
  -ss 00:00:02.000 -to 00:00:09.000 -i confeti.mov      // overlay video
  -filter_complex '[0]setpts=3.333*PTS[s0]; [s0][1]overlay'  // change FPS of original video and overlay
  -r 24 out.mp4

输出可以在这里看到:out.mp4

如您所见,“五彩纸屑”叠加在原始视频播放时速度较慢,并在原始视频结束后恢复正常速度。

知道为什么会发生这种情况以及如何解决它吗?

叠加滤镜在第一个输入提供的帧之上绘制叠加视频。如果您使用 setpts space 输出第一个输入的帧,'density' 将会减少并且没有足够的中间帧来绘制来自叠加输入的所有帧。

在 setpts 后添加 fps 过滤器以提供更多基础帧。

[0]setpts=3.333*PTS,fps=24[s0]