如何使用 FFMPEG 渲染叠加轨道

如何使用 FFMPEG 渲染叠加轨道

我正在尝试使用 FFMPEG 来促进具有与 Premiere、Final Cut 等类似的剪辑布局的视频渲染。

例如,这是一个视频可视化,其中包含一个简介、一个两边有小重叠的开场白、一些内容,以及一个也与内容重叠的结尾。

视频剪辑布局

这是一种特殊的视频布局,但您可以看到该布局模仿了我们在 Premiere 或 Final Cut 中使用的布局。

我正在尝试使用 FFMEPG 的过滤器图来编写与上述布局类似的视频。

我制作了许多这样的视频,但我总是在意想不到的时候遇到意想不到的问题,我希望这里有人可以描述一种强大的方法来实现这种轨道定位。

我用来完成这些轨道布局的主要工具是overlay过滤器。有了overlay过滤器,剩下的挑战就变成了如何填充同一轨道上剪辑之间的空白视频和音频空间。

以下是我尝试过的方法以及失败的原因。

透明位图 + anullsrc 音频

我制作了一些视频,其中我用透明的 PNG 填充空白视频空间,并TPad设置所需的持续时间并将其stopMode设置为clone

音频由 提供anullsrc,并结合atrim过滤器来设置所需的持续时间。

这种方法对许多视频都有效,但最近开始出现问题。问题是,它anullsrc似乎引入了噪音。但这只发生在实际上以无声音频开始,然后包含真实音频的音轨上。例如,查看之前附加图像中的顶部音轨。

我一直无法确定噪音产生的原因。我尝试调整采样率和其他音频细节。最终我放弃了。

透明且无声的视频片段

接下来,我渲染了一段 1 秒长的透明无声视频片段。我用 的滤镜.mov扩展了透明视频。对于音频,我不确定要使用什么,所以我选择了。tpadstopModecloneacopy

这种方法对一个视频有效,但对其他视频都失败了。当这种方法失败时,它会报告一堆帧排队,可能出了问题,然后 FFMPEG 挂起而没有任何进一步进展,并且该过程的 RAM 使用量开始增长,很快就达到 100GB。我不得不强制停止该过程。

音频延迟

最后,由于音频似乎是问题的根源,我保留了视频的透明克隆,并尝试将其用于adelay音轨。因此,我只需在所需的时间开始播放每个音频片段,而不是用音频填满所有可用时间。

无论出于什么原因,我的整体设置似乎无法正常工作adelay。所有音频片段都在视频开头播放。我有一个相当复杂的过滤器图,因此很难调试。我知道 sadelay在那里,但图中的某些其他配置可能以某种方式撤消了它们。

结论

我几乎尝试了所有能想到的方法来实现非常基本的多层视频布局,但我无法让它持续工作。

我认为这样的布局是视频制作中非常常见的目标,所以我希望你们中有人有一个强大的方法来实现这样的目标。

相关内容