可以使用以下命令实现:

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。
使用 FFmpeg 将两个视频和 PNG 水印合成,添加过渡效果并保留音频

原文地址: https://www.cveoy.top/t/topic/mXNs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录