我们正在处理短视频。其中大多数是640x480,由手机录制。他们中的许多人左右都有黑框。 我想为视频加水印,目前正在使用此命令。
ffmpeg -i IN.mp4 -i WATERMARK.png -filter_complex "overlay=main_w-overlay_w-10:main_h-overlay_h-10" OUT.mp4
问题在于,如果有一个帧,部分水印就会出现在帧上,只有一部分出现在实际内容上。想要将水印放在实际内容的右下角。
这些是否可能或其他任何想法?
a,动态检测黑框并相应调整水印位置。
b,裁剪黑框并在同一步骤中正确加水印内容。
非常感谢你的帮助!
修改
我发现一步到位是不可能的。
1,我可以获得裁剪尺寸
ffmpeg -i INPUT.mp4 -t 2 -vf cropdetect -f null - 2>&1 | awk '/crop/ { print $NF }' | tail -1
2,然后裁剪视频
ffmpeg -i INPUT.mp4 -filter:v "crop=352:480:144:0" -c:a copy OUTPUT.mp4
3,然后给它添加水印
ffmpeg -i INPUT VIDEO.mp4 -i INPUT IMAGE.png -filter_complex "overlay=main_w-overlay_w-10:main_h-overlay_h-10" OUTPUT VIDEO.mp4
有没有办法将2和3合并为一个步骤?
答案 0 :(得分:0)
有没有办法将2和3合并为一个步骤?
您可以使用分号加入单个过滤链:
ffmpeg -i video.mp4 -i image.png -filter_complex "[0]crop=352:480:144:0[bg];[bg][1]overlay=main_w-overlay_w-10:main_h-overlay_h-10[v]" -map "[v]" -map 0:a -c:a copy output.mp4
有关其他信息,请参阅FFmpeg filter documentation。