本文介绍如何使用 FFmpeg 命令将两个视频合并成一个视频,并添加 PNG 水印。同时保留两个视频的音频内容,并使用 filter_complex 调整视频分辨率。

以下是一个使用 FFmpeg 命令实现输入两个视频、添加水印、修改分辨率、拼接视频并保留两个视频音频的示例:

ffmpeg -i input1.mp4 -i input2.mp4 -i watermark.png \
-filter_complex "[0:v]scale=1280x720[v0]; \
[1:v]scale=1280x720[v1]; \
[v0][2:v]overlay=10:10[v0_wm]; \
[v1][2:v]overlay=10:10[v1_wm]; \
[v0_wm][v1_wm]concat=n=2:v=1:a=0[outv]" \
-map "[outv]" -map 0:a -map 1:a -c:v libx264 -crf 18 -preset slow output.mp4

解释:

  • -i input1.mp4-i input2.mp4 分别指定两个输入视频。
  • -i watermark.png 指定水印文件。
  • -filter_complex 指定使用复杂滤镜,包含以下步骤:
    • [0:v]scale=1280x720[v0] 将第一个输入视频的分辨率修改为1280x720,并将输出命名为v0。
    • [1:v]scale=1280x720[v1] 将第二个输入视频的分辨率修改为1280x720,并将输出命名为v1。
    • [v0][2:v]overlay=10:10[v0_wm] 将水印文件overlay到第一个视频的左上角,并将输出命名为v0_wm。
    • [v1][2:v]overlay=10:10[v1_wm] 将水印文件overlay到第二个视频的左上角,并将输出命名为v1_wm。
    • [v0_wm][v1_wm]concat=n=2:v=1:a=0[outv] 将添加水印后的两个视频拼接为一个,并将输出命名为outv。
  • -map "[outv]" 指定输出视频流为拼接好的视频。
  • -map 0:a -map 1:a 指定同时保留第一个和第二个输入视频的音频。
  • -c:v libx264 指定使用H.264编码器。
  • -crf 18 指定视频质量,数值越小质量越高。
  • -preset slow 指定编码速度,slow为慢速。
  • output.mp4 指定输出文件名为output.mp4。
FFmpeg: 使用filter_complex合并两个视频并添加水印

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

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