The FFmpeg docs give a full listing of the variables that you have to work with when using the drawtext filter, but for mobile text there are a few of particular interest:
‘n’
the number of input frame, starting from 0
‘t’
timestamp expressed in seconds, NAN if the input timestamp is unknown
With these, you can set the text position in relation to how many frames have already been seen. That's what the y=h-20*t
expression in your example is doing. As t
increases, the text moves closer to the top of the video as h-20*t
decreases.
To make your example "thing falls", you'd want a term like 20*t
instead. Because the y
position starts from 0 at the top of the video, as t
increases, it will move down the screen.
For text that stops in the middle of the screen, you could probably do some fancy math, or just use FFmpeg's rich set of logical functions. Something like y=t*20*lte(t*20,h/2) + h/2*gt(t*20,h/2)
which moves the text while t*20
is less than half the height, then keeps the y
position at h/2
once t*20
is greater than half the height.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…