我使用了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从始发地点开始回来?
答案 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)'