使用 FFmpeg 将两个视频和 PNG 水印合成,添加过渡效果并保留音频
可以使用以下命令实现:
ffmpeg -i input1.mp4 -i input2.mp4 \
-i watermark.png \
-filter_complex '[0:v]scale=1280:720[v0]; \
[1:v]scale=1280:720[v1]; \
[v0][2:v]overlay=10:10,format=yuv420p[vo]; \
[v1][2:v]overlay=10:10,format=yuv420p[vo1]; \
[vo][vo1]xfade=transition=fade:duration=1:offset=5[outv]' \
-map '[outv]' -map 0:a -map 1:a \
-c:v libx264 -preset ultrafast -c:a copy \
output.mp4
解释一下命令:
-i input1.mp4 -i input2.mp4 -i watermark.png分别表示输入的两个视频和水印图片。[0:v]scale=1280:720[v0]表示对第一个视频进行尺寸缩放,输出为 v0。[1:v]scale=1280:720[v1]表示对第二个视频进行尺寸缩放,输出为 v1。[v0][2:v]overlay=10:10,format=yuv420p[vo]表示将 v0 和水印图片进行叠加,输出为 vo。[v1][2:v]overlay=10:10,format=yuv420p[vo1]表示将 v1 和水印图片进行叠加,输出为 vo1。[vo][vo1]xfade=transition=fade:duration=1:offset=5[outv]表示将 vo 和 vo1 进行过渡效果叠加,输出为 outv。transition表示过渡效果类型,这里是淡入淡出;duration表示过渡效果持续时间,这里是 1 秒;offset表示第二个视频开始过渡的时间点,这里是 5 秒。-map '[outv]' -map 0:a -map 1:a表示选择输出视频流和两个输入视频的音频流。-c:v libx264 -preset ultrafast -c:a copy表示视频编码为 H.264,使用 ultrafast 编码速度最快,音频流不需要重新编码,直接复制原始流。output.mp4表示输出的视频文件名为 output.mp4。
原文地址: https://www.cveoy.top/t/topic/mXNs 著作权归作者所有。请勿转载和采集!