gpt4 book ai didi

video - 在多个时间点将视频叠加到另一个视频上

转载 作者:行者123 更新时间:2023-12-04 22:55:32 25 4
gpt4 key购买 nike

我有一个案例,我想要一个背景视频并使用第二个视频覆盖第一个但在多个时间点。第二个视频较短。

例如,主视频为一分钟,第二个视频为 10 秒。我想在 15 秒时覆盖第二个视频,然后在 35 秒时再次覆盖,然后在 55 秒时再次覆盖(在主视频时终止)。

我能够使用叠加过滤器和选项之间成功叠加第二个视频,但它只适用于第一个叠加。第二个叠加层似乎显示了视频的最后一帧或第一帧(??),但在我设置的时间段内。我猜它需要倒带并以某种方式播放。

例如:

ffmpeg  -i background.mp4 -i overlay.mov -filter_complex "[0][1]overlay=0:0:enable='between(t,0,2)'[out];[out][1]overlay=-200:200:enable='between(t,4,8)'[out]" -map "[out]" -t 00:00:10 -y output.mp4

我还尝试将叠加层指定为输入两次,例如:
ffmpeg  -i background.mp4 -i overlay.mov -i overlay.mov -filter_complex "[0][1]overlay=0:0:enable='between(t,0,2)'[out];[out][2]overlay=-200:200:enable='between(t,4,8)'[out]" -map "[out]" -t 00:00:10 -y output.mp4

同样的事情也会发生。

我确信答案很简单,可能与我使用输入的方式有关,但我无法理解如何让覆盖视频在不同时间在原始视频之上播放两次。

我也尝试过使用 setpts 过滤器来倒回覆盖,但结果还是完全一样的。

例如:
ffmpeg  -i background.mp4 -i overlay.mov -filter_complex "[0][1]overlay=0:0:enable='between(t,0,2)'[out];[1]setpts=PTS-STARTPTS,[out]overlay=-200:200:enable='between(t,4,8)'[out]" -map "[out]" -t 00:00:10 -y output.mp4

有很多类似的问题涉及覆盖多个视频,但我找不到任何关于在多个时间点重用同一视频的信息。

最佳答案

我将回答我自己的问题,因为这经常会发生。

发布这个问题帮助我客观地思考它。我希望这个答案对 future 的人们有所帮助。

enable 是一个红鲱鱼,不要使用它。它实际上用于模糊过滤器等。您需要做的只是从您想要它的点开始使用 setpts 并在视频文件结束时使用 eof_action 结束它。

例子:

ffmpeg  -i background.mp4 -i overlay.mov -filter_complex "[1]setpts=PTS+2/TB[ts],[0][ts]overlay=0:0:eof_action=pass[out];[1]setpts=PTS+4/TB[b],[out][b]overlay=-200:200:eof_action=pass[out]" -map "[out]" -t 00:00:10 -y output.mp4

在此示例中 PT 是输出剪辑的开始,+2 表示开始 2 秒,+4 表示 4 秒。 eof_action=通过允许输出结束,而不是显示其余输出视频的剪辑结束帧。

关于video - 在多个时间点将视频叠加到另一个视频上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49688475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com