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

mir*_*rza 66 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
Run Code Online (Sandbox Code Playgroud)

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

llo*_*gan 145

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

中心

在此输入图像描述

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
Run Code Online (Sandbox Code Playgroud)

或者使用缩短的叠加选项:

overlay=(W-w)/2:(H-h)/2
Run Code Online (Sandbox Code Playgroud)

左上方

这很简单,因为默认情况下,如果您不提供叠加选项,则将图像放在左上角.

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

overlay=5:5
Run Code Online (Sandbox Code Playgroud)

右上

使用5个像素的填充:

overlay=main_w-overlay_w-5:5
Run Code Online (Sandbox Code Playgroud)

或缩短选项:

overlay=W-w-5:5
Run Code Online (Sandbox Code Playgroud)

右下角

使用5个像素的填充:

overlay=main_w-overlay_w-5:main_h-overlay_h-5
Run Code Online (Sandbox Code Playgroud)

或缩短选项:

overlay=W-w-5:H-h-5
Run Code Online (Sandbox Code Playgroud)

左下方

使用5个像素的填充:

overlay=5:main_h-overlay_h
Run Code Online (Sandbox Code Playgroud)

或缩短选项:

overlay=5:H-h-5
Run Code Online (Sandbox Code Playgroud)

笔记

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

  • 有关overlay更多信息和示例,请参阅视频过滤器上的文档.

  • 有关获得高质量输出的更多信息,请参阅FFmpeg H.264视频编码指南.

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

    overlay=5:H-h-5:format=rgb,format=yuv420p
    
    Run Code Online (Sandbox Code Playgroud)

  • @LordNeckbeard驴图片发生了什么:D (3认同)
  • 我们如何将水印缩放为视频宽度的2/3,并保持水印的比例可以帮助您 (2认同)
  • 我尝试使用 FFMPEG 版本 n2.4.2 在 Android 上运行此程序,但收到错误消息:没有这样的过滤器:“覆盖”,有什么想法吗? (2认同)
  • @HashimAziz ffmpeg 尝试保留颜色数据,因此它将尝试使用所选编码器支持的最“高级”像素格式进行色度子采样。MP4 的默认编码器通常是 libx264。libx264 支持多种像素格式(请参阅“ffmpeg -h编码器=libx264”)。不过大多数播放器只能支持最低级别的YUV 4:2:0。因此,在答案中添加了格式过滤器,以确保 YUV 4:2:0 色度子采样的兼容性。 (2认同)