问题标签 [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.

0 投票
2 回答
1665 浏览

android - 将 ReplayGain 值转换为音量调整

我正在尝试在股票 Android/AOSP 音乐播放器应用程序中实现重播增益(即响应音乐文件中的重播增益标签)。这只是一个个人项目,但我可以将其作为补丁提供,或者制作我自己的库或播放器。我只在第一个实例中查看 Track Gain。我的问题的性质可能归结于我数学不及格的事实;)

任务是做两件事:A)在播放开始之前,将音量钳制到设备最大-14dB(或者更多,一些消息来源建议-23dB)。B) 在每首曲目开始播放之前,阅读其标签并按该数 dB 进行调整。

我看到在 Android 中调整播放音量也涉及对数缩放,但由于我是对数的新手,我不确定这是否会使事情变得更容易或两倍(10 倍?)。

谁能给我关于如何将分贝值转换为 MediaPlayer.setVolume() 的可用参数的线索?感谢您的任何提示。

编辑:我有一些(可能是不稳定的)断言可能需要建立联系,但如果其中任何一个是轻率的,我非常需要被告知。

  1. ReplayGain 假设目标电平为 -14 dBFS == 89dB SPL。因此,我假装这些比例上下都是等价的(我知道这是不准确的,但有多不准确?)
  2. 我将 MediaPlayer.setVolume(1.0f,1.0f) (最大音量)视为 0dBFS。
  3. 基于 (1),我将其等同于 89+14 = 103dBSPL。
  4. 我将 MediaPlayer.setVolume(0.0f,0.0f) (mute) 视为 0dBSPL,因此我有一个 0-103 的抽象线性音量刻度。

如果这些保持不变,我会将 -1.3 的 Track Gain 值转换为 MediaPlayer.setVolume() 的适当参数,如下所示:

  1. 目标响度 = 89 - 1.3 = 87.7
  2. 浮动 newVol = 1.0f - (Math.log(103 - 87.7 / Math.log(103)) = 0.41143207395167

这是在正确的轨道上吗?

0 投票
0 回答
541 浏览

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()吗?

0 投票
2 回答
23108 浏览

python - 如何在python中标准化音频文件的音量?

我有一堆.m4a需要规范化的 AAC ( ) 音频文件,并希望找到一种方法来使用一些包使用简单的 python 脚本来完成它。

我在超级用户上找到了这个线程,有人ffmpeg在 python 中编写了一个命令行实用程序,它运行良好,但想知道是否有一些当前可用的 python 包pip install可以完成任务。

0 投票
1 回答
1174 浏览

ffmpeg - ffmpeg:从 mp3 中删除 lame replaygain 标签

--noreplaygain如果未设置该选项,lame 正在编写 replaygain 标签:

我可以使用 ffmpeg 删除“辅助数据”吗?在我的尝试中,map metadata我无法访问此“辅助数据”以将其删除:-map 0:0 -map_metadata -1