FFmpeg: 使用filter_complex合并两个视频并添加水印
本文介绍如何使用 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。
原文地址: https://www.cveoy.top/t/topic/mXgA 著作权归作者所有。请勿转载和采集!