如何用ffmpeg在视频中心添加透明水印?

时间:2012-06-06 17:12:15

标签: ffmpeg

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

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

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

1 个答案:

答案 0 :(得分:133)

在视频上叠加/水印图像的示例:

居中

enter image description here

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

备注

  • 在此示例中,音频只是stream copied(重新加载)-codec:a copy而不是重新编码。您可能需要根据输出容器格式重新编码。

  • 有关详细信息和示例,请参阅overlay视频过滤器上的文档。

  • 有关获得高质量输出的详情,请参阅FFmpeg H.264 Video Encoding Guide

  • 如果覆盖的图像是RGB色彩空间(例如大多数PNG图像),如果将format=rbg添加到叠加层,则可能会看到视觉上的改善。请注意,如果您执行此操作,如果您正在输出H.264,那么您将必须添加format=yuv420p(这是另一个文件管理器 - 它与之类似命名的选项不同叠加滤镜)。所以它可能看起来像这样:

    overlay=5:H-h-5:format=rgb,format=yuv420p