gpt4 book ai didi

FFmpeg amix-filter 总是做 "volume normalization"。如何预防它以及它可能的缺点是什么?

转载 作者:行者123 更新时间:2023-12-04 23:12:35 29 4
gpt4 key购买 nike

关于这个主题 link1link2link3 有很多问题。但是,我要求就可能的解决方案以及它是否有一些缺点提出建议。

问题定义: amix-filter 总是做“音量标准化”并且不能关闭

引用:请阅读@hereReino 的评论。他还在FFmpeg论坛上开了一个ticket来说明情况。

破解解决方案: amix=inputs=13:dropout_transition=1000,volume=13

引用:回答 here ,也在 ticket 中。

问题:

1) "amix 将每个输入的音量缩放 1/n,其中 n = 事件输入的数量。这是针对每个音频帧进行评估的。因此,当输入丢失时,剩余输入的音量会按较小的量缩放,因此它们的体积增加了。” Refer

例如,如果我要合并 10 个音频流,那么第一个音频流将按 1/10 缩放,第 2 个按 1/9,第 3 个按 1/8 .. 第 9 个按 1/2,最后第 10 个按 1。正确理解这一点,或者让我知道我是否遗漏了什么?

2) dropout_transition : 输入流结束时卷重新归一化的转换时间,以秒为单位。默认值为 2 秒。

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

3) 我已经尝试了许多其他解决方案,但没有任何运气,现在我非常依赖所提供的解决方案。上述hacky解决方案有什么缺点吗?

最佳答案

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

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

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

不。继续上述情况,假设 dropout 转换为 1 秒。因此,当输入 4 结束时,缩放比例不会立即从 1/4 变为 1/3。它逐渐过渡超过 1 秒。

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

在大多数情况下,这很好。如果您正在组合响亮的音乐,那么范围将会变平,但在这种情况下应该没关系。

关于FFmpeg amix-filter 总是做 "volume normalization"。如何预防它以及它可能的缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62367391/

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