滑动效果的叠加过渡位置计算


0

我已经连接了9张图片,这些图片的尺寸完全相同,每张320x562。它们放在一个水平行中,这会产生一个2880x562的文件。

现在我想制作一个320x562的空白屏幕作为背景,并将这个大平面文件从右向左移动作为叠加以产生滑动效果。

这是我经过一些实验后使用的命令:

ffmpeg -loop 1 -i result.jpg -filter_complex "nullsrc=size=320x562 [background];[0:v] setpts=PTS-STARTPTS [catalog]; [background][catalog] overlay=shortest=1:x='if(gte(t,4)*lte(x, 2880), -(t-4)*165)'" -t 24 -y out.mp4

它将叠加图像与背景相同的位置作为起始点。

虽然它看起来正在做我想做的事情,但我无法理解用于计算叠加X值的表达式。

  • 我想使覆盖开始浮动,其中t>4x<=2560,所以即使t增加,幻灯片应停止在覆盖的右上方位置与背景的右上方位置满足。时机似乎有效但位置限制没有。我怎样才能参考当前的X

  • 关于-(t-4)*144表达式的一部分有错误。总持续时间为24.叠加在第4秒后开始滑动。因此,视频应该9 * 320在20秒内显示像素(2880)的滑动。但是由于2880/20的结果是给出144,使得叠加在大约22秒后耗尽,并且在此之后出现一些垃圾像素。在结束时,使叠加完全结束的最佳方法是什么?

Answers:


0

由于您是从右向左滑动目录图像并希望在第9个图像与背景重合时停止,因此您需要将叠加层x设为-8*320= -2560。但是,当你在发生这种情况时停止叠加时,你只需要计算速度,即2560/20 = 128。

所以,

ffmpeg -loop 1 -t 24 -i result.jpg
       -filter_complex
        "nullsrc=size=320x562[background];
        [background][0:v]overlay=shortest=1:x='min(0,-(t-4)*128))'"
       -y out.mp4
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.