Добавление динамически позиционируемого водяного знака к видео через ffmpeg

Я пытаюсь добавить водяной знак к видео с помощью ffmpeg.

Но есть одно требование, из-за которого мне очень трудно понять, как это сделать, я искал в Интернете курс.

Итак, мне нужно, чтобы водяной знак менял свое положение каждые 20 секунд случайным образом на 4 угла.

Моя идея состоит в том, чтобы разделить видео на набор файлов, случайным образом применить водяные знаки к каждому файлу и объединить результат в один выходной файл. Но я думаю, что это плохой способ.

Может ли кто-нибудь помочь мне, пожалуйста?

Спасибо, Сергей


person Lena Borieva    schedule 13.09.2012    source источник
comment
Удалось ли вам найти решение этой проблемы? Я сейчас стою перед точно таким же вопросом.   -  person Bruno Siqueira    schedule 17.02.2016


Ответы (1)


Я бы создал 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

Конечно, это не «случайно», но вы можете сделать наложенный фильм любой длины шаблонов и отдельных временных меток, чтобы в конечном итоге он выглядел случайным.

person Isaac    schedule 15.01.2013