FFmpeg 混合过滤器总是"volume normalization" .如何预防它,它可能有什么缺点?



关于这个主题有很多问题 link1、link2 和 link3。但是,我正在征求有关可能的解决方案的建议,以及它是否有一些缺点。

问题定义:amix-filter总是执行"音量规范化"并且无法关闭

参考:请通过@Reino阅读此处的评论。他还在FFmpeg论坛上开了一张票来解释情况。

黑客解决方案:混合=输入=13:dropout_transition=1000,体积=13

参考:在这里回答,也在票证中回答。

问题:

1("amix将每个输入的音量缩放1/n,其中n = no。的活动输入。这是针对每个音频帧进行评估的。因此,当输入丢失时,剩余输入的音量会缩小,因此它们的音量会增加。指

例如,如果我合并 10 个音频流,那么第一个音频流将缩放 1/10,第二个音频流缩放 1/9,第三个音频流缩放 1/8 .. 9 个缩放 1/2,最后一个 10 个缩放 1。我是否正确理解了这一点,或者如果我错过了什么,请告诉我?

2( dropout_transition:输入流结束时卷重整的转换时间(以秒为单位(。默认值为 2 秒。

dropout_transition意味着它会跳过给定的几秒钟,对吧?因此,如果我设置 dropout_transition=1000(非常大的数字(,那么无论视频长度如何,FFmpeg 都会在提供的几秒钟内丢弃/跳过音频过渡。同样,如果我做出了错误的假设,请纠正我。

3(我尝试了许多其他解决方案,但没有任何运气,现在我深深地依赖所提供的解决方案。上述黑客解决方案有什么缺点吗?

如果我合并 10 个音频流,那么第一个音频流将缩放 1/10,第二个缩放 1/9,第三个缩放 1/8 .. 第 9 个缩放 1/2,最后一个 10 个缩放 1。

不。假设您有 4 个输入,分别是 10、7、4 和 2 秒长。让我们将辍学转换保留为 0。然后在前 2 秒,所有输入都处于活动状态,因此每个输入按 1/4 缩放。从 2 到 4 秒,3 个输入处于活动状态,因此所有活动输入 (#1, 2, 3( 按 1/3 缩放。从 4 秒到 7 秒,只有输入 1 和 2 处于活动状态,因此两者都按 1/2 缩放。从 7 秒到 10 秒,只有输入 1 处于活动状态,因此它按 1 缩放,即其音量保持不变。

dropout_transition意味着它会跳过给定的几秒钟,对吧?

不。继续上述场景,假设辍学转换为 1 秒。因此,当输入 4 结束时,缩放比例不会立即从 1/4 更改为 1/3。它会在 1 秒内逐渐过渡。

上述黑客解决方案有什么缺点吗?

在大多数情况下,这很好。如果你正在组合响亮的音乐片段,那么范围会变平,但在这种情况下应该无关紧要。

相关内容

最新更新