ffmpeg 旋转源视频并应用覆盖图像

ffmpeg 旋转源视频并应用覆盖图像

我遇到了一些问题,我有一个倒置录制的源视频。我需要旋转此视频并在其上叠加几个透明的 PNG 文件。我使用以下命令:

ffmpeg -i Upside_Down.mov -r 1 -i overlays_%d.png -c:v libx264 -r 30 -pix_fmt yuv420p -filter_complex "overlay=0:0" output.mkv

上述命令运行完美,但显然会使源视频倒置,我知道可以通过 -vf vflip:hflip 实现旋转,但这似乎不起作用。有没有办法实现这个目标,或者唯一的选择是翻转源视频并在第二次运行中应用叠加,即首先执行然后ffmpeg -i Upside_Down.mov -vf vflip:hflip在完成后运行上面的代码?

答案1

你只需要创建一个过滤链包括您的附加过滤器:

ffmpeg -i Upside_Down.mov -r 1 -i overlays_%d.png -c:v libx264 -c:a copy -filter_complex "[0:v][1:v]overlay,vflip,hflip,format=yuv420p[out]" -map "[out]" -map 0:a output.mkv
  • 我喜欢明确标记过滤器输入和输出链接标签,以便您确切知道发生了什么,而不是依赖可能未知的默认值。[0:v]指的是第一个输入的视频流(Upside_Down.mov),[1:v]指的是第二个输入的视频流(overlays_%d.png)。

  • 我补充-c:a copy流复制音频而不是重新编码,但我不确定是否Upside_Down.mov包含音频。这就是为什么您应该始终ffmpeg在命令中包含完整的控制台输出的原因之一。

  • 由于可以通过过滤来更改像素格式,因此我将其从更改-pix_fmtformat视频滤镜因此任何潜在的转换都可以在你想要的时候发生。我-rfps视频滤镜(但我不确定你为什么可能会改变帧速率:控制台输出会很有用)。

  • 另请参阅:如何使用 FFmpeg 将视频翻转 180°(垂直/颠倒)?

相关内容