如何在 FFmpeg 中将透明 PNG 叠加到视频上并缩放到视频大小

如何在 FFmpeg 中将透明 PNG 叠加到视频上并缩放到视频大小

现在我将透明 PNG 叠加在视频上,首先将它们转换为相同大小,但希望在同一命令中缩放。这是现在的命令:

ffmpeg -y -i video.mp4 -i overlay.png -filter_complex 'overlay[out],amix=inputs=1,pan=stereo:c0=c0:c1=c1' -map '[out]' output.mp4

最好的命令还应该允许没有音轨的视频并且仍然覆盖 PNG。

答案1

使用

ffmpeg -y -i video.mp4 -i overlay.png
 -filter_complex "[1][0]scale2ref[i][m];[m][i]overlay[v]"
 -map "[v]" -map 0:a? -ac 2 output.mp4

scale2ref第一个输入(到过滤器)缩放到第二个输入的大小。输入 pad 索引0,并1引用 FFmpeg 的第一个和第二个输入,因为该计数从零开始。

-map 0:a?-?告诉 FFmpeg 以偶然方式映射音频,即如果存在。我已删除,amix因为 a) 过滤器复合体中的过滤器不能是偶然的,并且 b) 只有一个输入,因此没有什么可“混合”的。

相关内容