FFMPEG裁剪边界动画

FFMPEG crop boundaries animation

我正在寻找一种使裁剪过滤器参数取决于当前时间的方法。

现在我有 2 个视频 - 一个分割输出视频中有白色和浅绿色方块,这段代码工作正常:

ffmpeg -i out/i1.mp4 -i out/i2.mp4 -filter_complex "[0:v]crop=iw/2:ih:0:0[left];[1:v]crop=iw/2:ih:ow:0[right];[left][right]hstack" out/generated.mp4

我的问题是 - 如何使两个视频之间的边界浮动、动画化?例如从输出视频的左侧到右侧?

我已经尝试使用 t 参数,例如像这样:

ffmpeg -i out/i1.mp4 -i out/i2.mp4 -filter_complex "[0:v]crop=iw/2+t:ih:0:0[left];[1:v]crop=iw/2-t:ih:ow:0[right];[left][right]hstack" out/generated.mp4

但是它抛出一个错误:

[Parsed_crop_0 @ 0x7fa46060eec0] Error when evaluating the expression 'iw/2+t'

[Parsed_crop_0 @ 0x7fa46060eec0] Failed to configure input pad on Parsed_crop_0

Error reinitializing filters!

Failed to inject frame into filter network: Invalid argument

Error while processing the decoded data for stream #1:0

谁能帮我解决这个问题?或者解释 - 为什么不可能?

对于裁剪滤镜 wh 不能设置动画:只有 xy 可以。

使用 xfade 过滤器获得简单的解决方案:

ffmpeg -i input0.mp4 -i input1.mp4 -filter_complex "[0][1]xfade=transition=wiperight:duration=2:offset=5" output.mp4