ffmpeg 移动文字 drawtext

BOB*_*BOB 1 ffmpeg drawtext

我正在使用 ffmpeg 库在特定时间在视频上绘制文本,我成功做到了现在我需要将文本从一个位置移动到另一个位置,但我不能这样做,所以任何人都可以建议我如何做到这一点

我正在使用此命令从上到下移动文本,但我无法确定从 x,y 移动到特定 x,y 的 x 和 Y

ffmpeg -i VideoInput.mp4 -vf "drawtext=enable='between(t,12,14)':fontfile=myfont.otf:text='Test test':x=(w-text_w)/2:y=w/50\*mod(t\,2):fontsize=65" -acodec copy outputVideo.mp4
Run Code Online (Sandbox Code Playgroud)

Gya*_*yan 5

ffmpeg -i VideoInput.mp4 \
       -vf "drawtext=enable='between(t,12,14)':fontfile=myfont.otf:text='Test test': \
           x='x1+(x2-x1)*(t-t1)/(t2-t1)':y='y1+(y2-y1)*(t-t1)/(t2-t1)':fontsize=65" \
       -acodec copy outputVideo.mp4
Run Code Online (Sandbox Code Playgroud)

在哪里

x1y1是初始坐标; x2y2是最终坐标; t1t2是开始和结束时间; 在您给定的命令中,12并且14.

以上这些需要在命令中替换为它们的值。


要在最后停留 1 秒,

ffmpeg -i VideoInput.mp4 \
       -vf "drawtext=enable='between(t,12,15)':fontfile=myfont.otf:text='Test test': \
           x='if(lt(t-t2+1\,0)\,x1+(x2-x1)*(t-t1)/(t2-t1-1)\,x)': \
           y='if(lt(t-t2+1\,0)\,y1+(y2-y1)*(t-t1)/(t2-t1-1)\,y)':fontsize=65" \
       -acodec copy outputVideo.mp4
Run Code Online (Sandbox Code Playgroud)

这里t2包括停留,所以运动从 12 到 14 + 1 秒保持。将t2在允许被改变了。