FFMpeg - 将叠加点从a点移动到b到c到d

时间:2017-08-24 19:54:14

标签: ffmpeg

我使用了LordNeckbeard发布的其他人的代码:FFmpeg move overlay from one pixel coordinate to another

我对此进行了一些修改:

    ffmpeg -i 4632.mpg -i 4632.bmp -filter_complex "[0]scale=320:240[over];
    [1][over]overlay=enable='between=(t,0,50)':x=20+t*30:y=20+t*20" -s 
    1280:720 -c:a copy -y output.mpg

我希望能够限制移动,使叠加层不会偏离屏幕。 如何在四个方向上移动缩放的剪辑叠加,X& Y从始发地点开始回来?

1 个答案:

答案 0 :(得分:1)

这种逐步运动必须使用条件表达式的并集来构造。每个单元的基本语法是

(origin + (destination - origin)*(t - start time)/duration) * between(t,start time,end time)

然后将所有单位添加到一起,如下例所示。

假设您要将剪辑从(ax,ay)移至(bx,by)(cx,cy)并返回(ax,ay)。让我们保持每条腿10秒钟。

语法为overlay=x='(ax+(bx-ax)*(t-0)/10)*between(t,0,10)+(bx+(cx-bx)*(t-10)/10)*between(t,10,20)+(cx+(ax-cx)*(t-20)/10)*between(t,20,30)':y='(ay+(by-ay)*(t-0)/10)*between(t,0,10)+(by+(cy-by)*(t-10)/10)*between(t,10,20)+(cy+(ay-cy)*(t-20)/10)*between(t,20,30)'