Making jumping text watermark

2019-07-29 12:48发布

I want to make something like these : http://www.youtube.com/watch?v=AtM-f20XV4E you can see there a watermark which change position every two second...

But I need it for drawtext filter.

So, I am already realize how to change a text position every few seconds.. but have no idea - how to keep new position :) there is a code which I have right now..

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

it move my text to new position every 1 second. but then immediately change position back of course.

So, I stuck about that.. how to keep new position ? may be I should using ld() and st() ?

1条回答
戒情不戒烟
2楼-- · 2019-07-29 13:21

Ok. It was easier than I thought..

There is an answer:

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

That's a primary part:

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

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

In this example Text_Watermark will change position to random one in every 18'nth frame.

查看更多
登录 后发表回答