Создание прыгающего текстового водяного знака

Я хочу сделать что-то вроде этого: http://www.youtube.com/watch?v=AtM-f20XV4E там виден водяной знак, который меняет положение каждые две секунды...

Но мне это нужно для фильтра drawtext.

Итак, я уже понимаю, как менять позицию текста каждые несколько секунд.. но понятия не имею, как сохранить новую позицию :) есть код, который у меня есть прямо сейчас..

ffmpeg.exe -i myVideo.mov -c:v libx264 -preset veryfast -crf 25 -tune zerolatency -vendor ap10 -pix_fmt yuv420p -filter:v drawtext=fontfile=arial.ttf:text=MY_WATERMARK_TEXT:fontcolor=white:alpha=0.5:fontsize=74:box=1:boxcolor=red:x=if(eq(mod(t\,1)\,0)\,1000\,10):y=(h-text_h-line_h)/2 -c:a copy outVideo.mp4

он перемещает мой текст в новую позицию каждую 1 секунду. но потом сразу меняем положение обратно конечно.

Итак, я застрял на этом ... как сохранить новую позицию? может быть, мне следует использовать ld() и st()?


person robocop robocop    schedule 17.05.2015    source источник


Ответы (1)


Ok. Это было проще, чем я думал..

Есть ответ:

ffmpeg.exe -i myVideo.mov -c:v libx264 -preset veryfast -crf 25 -tune zerolatency -vendor ap10 -pix_fmt yuv420p -filter:v drawtext=fontfile=arial.ttf:text=MY_WATERMARK_TEXT:fontcolor=white:alpha=0.5:fontsize=74:box=1:boxcolor=red:x=if(eq(mod(n\,18)\,0)\,sin(random(1))*w\,x):y=if(eq(mod(n\,18)\,0)\,sin(random(1))*h\,y) -c:a copy outVideo.mp4

Это основная часть:

x=if(eq(mod(n\,18)\,0)\,sin(random(1))*w\,x):

y=if(eq(mod(n\,18)\,0)\,sin(random(1))*h\,y)

В этом примере Text_Watermark будет менять позицию на случайную в каждом 18-м кадре.

person robocop robocop    schedule 18.05.2015