问题标签 [replaygain]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 将 ReplayGain 值转换为音量调整
我正在尝试在股票 Android/AOSP 音乐播放器应用程序中实现重播增益(即响应音乐文件中的重播增益标签)。这只是一个个人项目,但我可以将其作为补丁提供,或者制作我自己的库或播放器。我只在第一个实例中查看 Track Gain。我的问题的性质可能归结于我数学不及格的事实;)
任务是做两件事:A)在播放开始之前,将音量钳制到设备最大-14dB(或者更多,一些消息来源建议-23dB)。B) 在每首曲目开始播放之前,阅读其标签并按该数 dB 进行调整。
我看到在 Android 中调整播放音量也涉及对数缩放,但由于我是对数的新手,我不确定这是否会使事情变得更容易或两倍(10 倍?)。
谁能给我关于如何将分贝值转换为 MediaPlayer.setVolume() 的可用参数的线索?感谢您的任何提示。
编辑:我有一些(可能是不稳定的)断言可能需要建立联系,但如果其中任何一个是轻率的,我非常需要被告知。
- ReplayGain 假设目标电平为 -14 dBFS == 89dB SPL。因此,我假装这些比例上下都是等价的(我知道这是不准确的,但有多不准确?)
- 我将 MediaPlayer.setVolume(1.0f,1.0f) (最大音量)视为 0dBFS。
- 基于 (1),我将其等同于 89+14 = 103dBSPL。
- 我将 MediaPlayer.setVolume(0.0f,0.0f) (mute) 视为 0dBSPL,因此我有一个 0-103 的抽象线性音量刻度。
如果这些保持不变,我会将 -1.3 的 Track Gain 值转换为 MediaPlayer.setVolume() 的适当参数,如下所示:
- 目标响度 = 89 - 1.3 = 87.7
- 浮动 newVol = 1.0f - (Math.log(103 - 87.7 / Math.log(103)) = 0.41143207395167
这是在正确的轨道上吗?
mp3 - Liquidsoap 1.1.1:enable_replaygain_metadata() 阻止输出
我最近一直在使用liquidsoap,试图为在线广播电台设置自动流媒体。到目前为止一切正常,除了我需要一种方法让所有文件具有相同的响度,因为它们将来自许多不同的人,并且将跨越至少五个十年的发布日期,所以我期待他们掌握许多不同的响度级别。
问题是,当我尝试添加任何提供enable_replaygain_metadata()
的 ReplayGain 实现(和replay_gain:
-protocol)时,我得到了Source failed (no more tracks) stopping output...
,即使我实际上没有使用任何 ReplayGain 值。
我已经检查了相关脚本 ( /usr/lib/liquidsoap/1.1.1/extract-replaygain
) 和脚本 ( ) 调用的二进制文件mp3gain
,它们都返回了我期望的结果。
但是,由于两者enable_replaygain_metadata()
和replay_gain:
-protocol 都没有很好的记录,我不知道他们实际期望什么样的返回值,或者他们的行为应该是什么。而且由于我找不到有关原因的任何有用信息,因此到目前为止,在线搜索解决方案相对没有结果,我发现的所有信息都告诉我这个问题不应该发生。
对此问题的任何帮助将不胜感激。
操作系统:Ubuntu 16.04
液体皂版本:1.1.1
mp3gain 版本:1.5.2
工作脚本:(./Auto-DJ包含66个目录共1045个文件,均为mp3)
enable_replaygain_metadata()
之前添加的liquidsoap日志tracks = playlist(".")
:
Liquidsoap日志添加了replay_gain:
-protocol: ( playlist(".", prefix="replay_gain:"
))
在一段时间未生成任何输出后,两者都已手动停止。
编辑:
在检查了我的目录中是否有导致 mp3gain 失败或返回垃圾的错误文件后,我发现了以下内容:
显然,enable_replaygain_metadata()
当我使用single()
orplaylist.safe()
作为源而不是 时,它工作得很好playlist()
,所以我猜它只适用于本地文件,这与文档所说的完全相反。但是,playlist.safe()
必须检查启动时找到的每个文件,因此需要一些时间。
有什么办法可以使这项工作符合标准playlist()
吗?
python - 如何在python中标准化音频文件的音量?
我有一堆.m4a
需要规范化的 AAC ( ) 音频文件,并希望找到一种方法来使用一些包使用简单的 python 脚本来完成它。
我在超级用户上找到了这个线程,有人ffmpeg
在 python 中编写了一个命令行实用程序,它运行良好,但想知道是否有一些当前可用的 python 包pip install
可以完成任务。
ffmpeg - ffmpeg:从 mp3 中删除 lame replaygain 标签
--noreplaygain
如果未设置该选项,lame 正在编写 replaygain 标签:
我可以使用 ffmpeg 删除“辅助数据”吗?在我的尝试中,map metadata
我无法访问此“辅助数据”以将其删除:-map 0:0 -map_metadata -1