You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让FFmpeg crop滤镜参数随时间变化实现分屏边界滑动动画

报错原因

FFmpeg 的 crop 滤镜的宽度、高度参数为静态配置项,仅在滤镜链初始化阶段计算一次,不支持运行时随时间变量 t 动态修改。你在宽度表达式中加入时间参数后,滤镜初始化校验无法通过,因此抛出参数无效错误。

可行实现方案

放弃 crop + hstack 的组合逻辑,通过动态蒙版+overlay的方案实现分割线浮动效果,涉及的滤镜参数均支持每帧动态计算,完美匹配需求:

# 示例为分割线10秒内从最左移动到最右的效果,可自行调整速度、摆动逻辑
ffmpeg -i out/i1.mp4 -i out/i2.mp4 -filter_complex \
"color=c=white:s=hd1080,format=gray,lutyuv=y='gte(X, t*192)'[mask];\
[0:v][mask]alphamerge[i1_alpha];\
[1:v][i1_alpha]overlay=x=0:y=0" \
out/generated.mp4

参数说明

  • s=hd1080 要修改为你的输入视频的实际分辨率,比如1920x1080就写hd1080,也可以直接写1280x720这类具体值
  • 示例中的192是速度参数,由1080P宽度1920除以10秒得到,代表每秒分割线向右移动192像素,10秒走完全程,你可以修改该数值调整移动速度
  • 如果要实现分割线左右浮动效果,把lutyuv的表达式改为y='gte(X, 960 + 300*sin(t))',即可实现以中心为原点、幅度300像素的周期摆动效果
  • 表达式中的X代表当前计算的像素点的横坐标,t代表当前帧的时间(单位为秒),你可以基于这两个变量自定义任意分割线运动规则

内容的提问来源于stack exchange,提问作者VlFedotov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 10:36:05