FFmpeg 在视频上叠加图像并带有淡入淡出效果

FFmpeg 在视频上叠加图像并带有淡入淡出效果

对以下 ffmpeg 命令有几点疑问 -
ffmpeg -f concat -i input.txt -loop 1 -t 8 -i inputImg.jpg -filter_complex "[1]format=rgba,fade=alpha=1:st=0:d=8,setpts=PTS+10/TB[v1];[0][v1]overlay=x=70:y=100:enable='between(t,2,10)'" -crf 22 -threads 2 -preset ultrafast output.mp4

1- 如果我不提供-t 8而只是shortest=1在叠加过滤器中使用,循环对性能的影响 - 是否会创建无限时长的视频,并且只在叠加时选择最短的视频?

2- 做什么setpts? - 我提到-t 8- 所以它循环了 8 秒。如果我执行“setpts=PTS+10/TB”,它是否会将循环视频的持续时间增加到 18 秒,其中淡入效果从 10 秒到 18 秒?循环视频中从 0 到 10 秒有什么?

3- 2 个视频如何叠加 - 两个视频都是从第 0 秒开始合并的吗?

4- 如果我想在将在第 100 秒叠加在我的视频上的图像上应用淡入淡出效果,那么我必须创建一个 100 秒的循环视频? - 这将如何影响性能?

5- main_video[0] 的 frame_no 可以在 looped_video[1] 中使用吗?

6- 是否有任何性能高效的方法/替代方法可以在图像上应用淡入淡出效果,基于 frame_sequence 比如从第 30 到第 35 帧的 fade_in?

答案1

为了,

1- 如果我不提供 -t 8 而只是在覆盖过滤器中使用 shortest=1,循环对性能的影响 - 是否会创建无限持续时间的视频,并且仅在覆盖时才会选择最短的视频?

理论上是的。但是目前 有一个错误shortest=1,所以不要使用它。

2-setpts 起什么作用?

它会改变时间戳。在您的命令中,它会将 10 秒添加到时间戳,以便图像的生成流的第一个时间戳为 10 秒。

3- 两个视频如何叠加 - 两个视频是否从第 0 秒开始合并?

具有相应时间戳的帧被叠加,即,具有 PTS 10 秒图像的帧叠加在具有 PTS 10 秒的基本视频帧上。

4- 如果我想在图像上应用淡入淡出效果,并在第 100 秒时将其叠加在视频上,那么我必须创建一个 100 秒的循环视频?- 这将如何影响性能?

不。持续时间应该是您希望视频显示的时间。使用 setpts 来移动开始时间。

5- main_video[0] 的 frame_no 可以在 looped_video[1] 中使用吗?

enable开关使用来自主视频的帧/时间戳。

6- 是否有任何性能高效的方法/替代方法可以在图像上应用淡入淡出效果,基于 frame_sequence 比如从第 30 到第 35 帧的 fade_in?

不,和你使用的一样。你可以使用引用帧数的变量来设置开始s和持续时间n

相关内容