FFmpeg: 使用滤镜合并视频,添加水印并保留音频
使用FFmpeg将两个视频合并,添加PNG水印,并保留两个视频各自的音频。使用filter_complex先修改视频分辨率再添加水印,最后将两个视频拼接在一起。
ffmpeg -i input1.mp4 -i input2.mp4 -i watermark.png -filter_complex "[0:v]scale=1280x720,setsar=1[v0]; [1:v]scale=1280x720,setsar=1[v1]; [v0][2:v]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2,format=yuv420p[ov0]; [v1][2:v]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2,format=yuv420p[ov1]; [0:a][1:a]amerge=inputs=2[a]" -map "[ov0]" -map "[a]" -c:v libx264 -preset medium -crf 23 -c:a aac -b:a 192k -ac 2 -shortest output.mp4
命令解析:
-i input1.mp4: 输入第一个视频文件。-i input2.mp4: 输入第二个视频文件。-i watermark.png: 输入水印图片文件。-filter_complex:使用滤镜链。[0:v]scale=1280x720,setsar=1[v0]: 将第一个视频缩放到1280x720分辨率,并设置宽高比。[1:v]scale=1280x720,setsar=1[v1]: 将第二个视频缩放到1280x720分辨率,并设置宽高比。[v0][2:v]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2,format=yuv420p[ov0]: 将水印叠加到第一个视频的中心,并设置输出格式为yuv420p。[v1][2:v]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2,format=yuv420p[ov1]: 将水印叠加到第二个视频的中心,并设置输出格式为yuv420p。[0:a][1:a]amerge=inputs=2[a]: 合并两个视频的音频。-map "[ov0]": 选择叠加水印后的第一个视频作为输出视频。-map "[a]": 选择合并后的音频作为输出音频。-c:v libx264: 使用libx264编码视频。-preset medium: 使用中等质量的编码预设。-crf 23: 设置视频质量,值越低质量越高。-c:a aac: 使用AAC编码音频。-b:a 192k: 设置音频比特率。-ac 2: 设置音频通道数量。-shortest: 输出视频的长度与最短的输入视频相同。output.mp4: 输出文件名称。
注意:
- 输入视频和水印图片的尺寸可能会影响最终的输出视频尺寸。
overlay滤镜的参数可以调整水印的位置和大小。- 可以根据需要修改其他参数。
原文地址: https://www.cveoy.top/t/topic/mXnj 著作权归作者所有。请勿转载和采集!