通过ffmpeg为视频添加动态定位的水印

时间:2012-09-13 06:47:00

标签: ffmpeg watermark segments

我正在尝试使用ffmpeg为视频添加水印。

但是有一个要求让我很难理解如何制作它,我搜索了cource的网页。

所以,我需要水印每隔20秒随机改变它的位置4个角落。

我的想法是将视频拆分为一组文件,将水印随机应用于每个文件,并将结果合并到一个输出文件中。但我认为这是不好的方式。

有人可以帮我吗?

谢谢, 塞吉

1 个答案:

答案 0 :(得分:0)

我会创建一个1分钟的水印标记视频,每隔20秒移动一次水印,然后使用覆盖滤镜将该视频覆盖到原始视频上。

这是图像循环: http://ffmpeg.org/trac/ffmpeg/wiki/Create%20a%20video%20slideshow%20from%20images

和水印: http://www.idude.net/index.php/how-to-watermark-a-video-using-ffmpeg/

您甚至可以重复水印视频的处理,直到它与原始视频的长度相同。我没有测试过我的理论,但如果有效,你可以告诉我们。

编辑,我回家测试了我的理论,这是一个Windows批处理文件:

setlocal

rem create blank movie
rem I created 4 transparent PNG the same size as my final movie using FotografixPortable
rem after many failures with MSPaint... I should have known...

rem add water mark to blank movie (bottom right)
ffmpeg -loop 1 -i wm1.png -t 20 -vcodec png -pix_fmt rgba out-wm1.mov

rem add water mark to blank movie (top right)
ffmpeg -loop 1 -i wm2.png -t 20 -vcodec png -pix_fmt rgba out-wm2.mov

rem add water mark to blank movie (bottom left)
ffmpeg -loop 1 -i wm3.png -t 20 -vcodec png -pix_fmt rgba out-wm3.mov

rem add water mark to blank movie (top left)
ffmpeg -loop 1 -i wm4.png -t 20 -vcodec png -pix_fmt rgba out-wm4.mov

rem put (concat) them all together into one video
rem I use filter_complex because we need to maintain the transparency in the video
ffmpeg -i out-wm1.mov -i out-wm2.mov -i out-wm3.mov -i out-wm4.mov -filter_complex "[0:0] [1:0] [2:0] [3:0] concat=n=4:v=1:a=0 [v]" -map "[v]" -y -vcodec png -pix_fmt rgba -q 0 all-wm.mov

rem finally overlay the 1:20 watermark video onto the original movie
ffmpeg -i "Ted (2012) Unrated.mkv" -i all-wm.mov -filter_complex overlay -shortest -y -q 0 ted.avi

当然,它不是“随机”的,但你可以使你的叠加电影有任意长度的模式和个别时间戳,使它在最终输出中显得随机。