MLT框架:如何为所有轨道添加缩放动画?
使用Melt的affine滤镜添加缩放动画
先明确你的轨道结构:
track0: [---------------------black-----------------------] track1: [-------------------in.mp4------------------------] track2: [-----][1.jpg][----------][1.jpg]
你的需求是给合成后的整体画面添加放大/缩小的动画,选affine滤镜来实现完全没问题——它能灵活控制画面的缩放、旋转等几何变换。
你尝试的命令没写完,我直接给你完整的可运行方案,分两种常见场景:
一、给合成后的全局画面加缩放动画
如果要让所有轨道的内容一起做缩放动画,可以在所有轨道定义完成后,全局添加affine滤镜,通过关键帧控制缩放比例:
melt.exe color:black out=00:00:20.000 \ -track in.mp4 \ -track -blank out=00:00:2.000 1.jpg in=00:00:00.000 out=00:00:4.000 -blank out=00:00:6.000 1.jpg in=00:00:10.000 out=00:00:14.000 \ -filter affine scale=1.0:1.0 at=0 scale=1.5:1.5 at=10 scale=1.0:1.0 at=20
命令说明:
scale=1.0:1.0 at=0:0秒时画面保持原始大小scale=1.5:1.5 at=10:10秒时画面放大到1.5倍scale=1.0:1.0 at=20:20秒时回到原始大小
这样就实现了一段“先放大再还原”的平滑动画。
二、给单个轨道(比如track2的图片)单独加缩放动画
如果只想让track2里的两张图片各自有缩放效果,全局画面保持不变,可以在对应片段后单独挂载affine滤镜:
melt.exe color:black out=00:00:20.000 \ -track in.mp4 \ -track -blank out=00:00:2.000 1.jpg in=00:00:00.000 out=00:00:4.000 -filter affine scale=1.0 at=0 scale=1.2 at=2 scale=1.0 at=4 -blank out=00:00:6.000 1.jpg in=00:00:10.000 out=00:00:14.000 -filter affine scale=0.8 at=10 scale=1.0 at=12 scale=0.8 at=14
命令说明:
- 第一张
1.jpg:0秒时原始大小,2秒时放大到1.2倍,4秒时还原 - 第二张
1.jpg:10秒时缩小到0.8倍,12秒时还原,14秒时再次缩小
你可以根据需求自由调整关键帧的时间点和缩放比例,scale的两个值分别对应X轴和Y轴的缩放,保持一致就是等比例缩放。
内容的提问来源于stack exchange,提问作者bigZack
相关产品推荐
相关产品推荐

