我正在使用此命令在视频上滚动文本
"drawbox=y=ih-108:[email protected]:\
width=iw:height=48:t=fill, \
drawtext=textfile=file.txt: \
fontfile=OpenSans-Regular.ttf: \
y=h-line_h-65:\
x=w-mod(max(t-1.5\,0)*(w+tw)/18.5\, (w+tw)): \
fontcolor=white:fontsize=36" \
此滚动以有间隙的方式循环运行。当视频上的所有文本都滚动完后 [存在间隙],它会重新开始滚动。
我希望滚动能够连续运行而没有任何间隙,就像在这个视频中一样 - https://www.youtube.com/watch?v=Z0ZpLAgpghk
是否有其他过滤器可以实现这一点,或者我如何修改表达式x=
以获得所需的输出?
答案1
您可以通过链接两个 drawtext 过滤器来实现这一点
"drawbox=y=ih-108:[email protected]:\
width=iw:height=48:t=fill, \
drawtext=textfile=file.txt: \
fontfile=OpenSans-Regular.ttf: \
y=h-line_h-65:\
x=w-mod(max(t-START_TIME_OFFSET\,0)*(SPEED)\, 2*(tw+MARGIN)): \
fontcolor=white:fontsize=36, \
drawtext=textfile=file.txt: \
fontfile=OpenSans-Regular.ttf: \
y=h-line_h-65:\
x=w-mod(max(t-(tw+MARGIN)/(SPEED)-START_TIME_OFFSET\,0)*(SPEED)\, 2*(tw+MARGIN)): \
fontcolor=white:fontsize=36"
START_TIME_OFFSET
是文本出现的初始时间,例如1.5
秒。
SPEED
是每秒一个字符的滚动距离,例如100
像素或宽度的 1/10,。w/10
是
MARGIN
一次滚动的结束与下一次滚动的开始之间的距离,例如100
像素或比例距离w/5
。
对于此方法,文本必须等于或宽于框架宽度。