85

我目前正在使用这些命令:

Top left corner
ffmpeg –i inputvideo.avi -vf "movie=watermarklogo.png [watermark]; [in][watermark] overlay=10:10 [out]" outputvideo.flv

Top right corner
ffmpeg –i inputvideo.avi -vf "movie=watermarklogo.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:10 [out]" outputvideo.flv

Bottom left corner
ffmpeg –i inputvideo.avi -vf "movie=watermarklogo.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]" outputvideo.flv

Bottom right corner
ffmpeg –i inputvideo.avi -vf "movie=watermarklogo.png [watermark]; [in][watermark] overlay=(main_w-overlay_w-10)/2:(main_h-overlay_h-10)/2 [out]" outputvideo.flv

如何放置视频的水印中心?

4

1 回答 1

210

使用叠加过滤器在视频上添加水印/徽标图像的示例。

居中

在此处输入图像描述

ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" -codec:a copy output.mp4

或使用缩短的覆盖选项:

overlay=(W-w)/2:(H-h)/2

左上方

这是最简单的,因为如果您没有提供叠加选项,默认设置是将图像放在左上角。

此示例添加 5 个像素的填充,因此图像不会接触边缘:

overlay=5:5

右上

使用 5 像素的填充:

overlay=main_w-overlay_w-5:5

或使用缩短的选项:

overlay=W-w-5:5

右下角

使用 5 像素的填充:

overlay=main_w-overlay_w-5:main_h-overlay_h-5

或使用缩短的选项:

overlay=W-w-5:H-h-5

左下方

使用 5 像素的填充:

overlay=5:main_h-overlay_h

或使用缩短的选项:

overlay=5:H-h-5

透明度/不透明度/阿尔法

使用formatcolorchannelmixer过滤器使水印 50% 透明的示例:

ffmpeg -i input.mp4 -i watermark.jpg -filter_complex "[1]format=rgba,colorchannelmixer=aa=0.5[logo];[0][logo]overlay=(W-w)/2:(H-h)/2:format=auto,format=yuv420p" -c:a copy output.mp4

提高质量

使用覆盖format=auto过滤器中的选项可以使 PNG 水印看起来更好:

ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=5:H-h-5:format=auto,format=yuv420p" -c:a copy output.mp4

请注意添加格式过滤器(是的,与选项同名,但独立过滤器)将其重置为 MP4 输出所需的 YUV 4:2:0。,format=yuv420p如果您不输出 MP4,请删除。

相对于主视频缩放水印

使用scale2ref过滤器:

使徽标成为主视频大小的 10% (1/10) 的示例:

ffmpeg -i input.mp4 -i watermark.png -filter_complex "[1][0]scale2ref=w=oh*mdar:h=ih*0.1[logo][video];[video][logo]overlay=5:H-h-5" -c:a copy output.mp4
于 2012-06-06T19:29:56.400 回答