Linux 上的水印视频

sha*_*eel 5 linux ffmpeg flv ubuntu

我想在我的 FLV 视频中添加水印。以前我曾经使用 FFmpeg 的vhook选项来做到这一点,但由于一些问题,我不得不将其升级到最新的 SVN 版本。此版本的 FFmpeg 不再受vhook支持。

我尝试过使用 mencoder,bmovl但 mencoder 似乎很难使用。

有没有其他可行的水印视频选择?

evi*_*oup 4

使用最近的 ffmpeg 执行此操作的正确方法是使用覆盖过滤器。以下命令将放置watermark.png在 的顶部input.flv,水印的左上角距主视频的左上角向右十五个像素,向下十个像素:

ffmpeg -i input.flv -i watermark.png -filter_complex \
'[0:v][1:v]overlay=15:10[outv]' -map [outv] -map 0:a \
-c:a copy -c:v libx264 -crf 22 -preset veryfast output.mp4
Run Code Online (Sandbox Code Playgroud)

显然,将 15 或 10 更改为您想要的任何值。

如果您要在具有不同分辨率的多个视频上添加水印,那么您可能还会发现一些有用的常量:

  • W 和 H 是主视频的宽度和高度 ( input.flv)
  • w 和 h 是叠加视频的宽度和高度 ( watermark.png)

这些可以多次派上用场。例如,要将水印放置在视频的中心,您可以使用:

'[0:v][1:v]overlay=(W-w)/2:(H-h)/2[outv]'
Run Code Online (Sandbox Code Playgroud)

同样,要将水印置于视频左上角的六分之一中央:

'[0:v][1:v]overlay=(W-w)/6:(H-h)/6[outv]'
Run Code Online (Sandbox Code Playgroud)

对于视频的左下六分之一:

'[0:v][1:v]overlay=(W-w)/6:(H-h)/(6/5)[outv]'
Run Code Online (Sandbox Code Playgroud)

您几乎可以做任何您需要做的事情。

有关更多信息,请参阅覆盖过滤器文档。