Eti*_*mps 3 audio windows firefox flash surround-sound
我在带有 Windows 7 和 5.1 声音设备的 Firefox 19.0.2 中使用 Flash Player 11.6.602.171。
我刚刚注意到,在 Flash(例如 Youtube、Soundcloud)中播放立体声时,Flash 通过将声音复制到后置扬声器并使用 LFE 通道进行某种自制的低音管理来将立体声上混到 5.1。
这显然是完全错误的,而且显然是一个错误,因为立体声并不意味着要使用两个以上的扬声器来再现,而 Flash 是唯一具有这种行为的软件。我在其他播放器上没有这个问题(例如 foobar2000)。这不是一个孤立的问题;事实上,其他人似乎也有同样的问题。
有什么方法可以禁用此行为并强制 Flash 输出原封不动的立体声?
看到 Adobe将错误关闭为“按预期工作”(这很愚蠢),我决定自己修复它。
结果如下:StopBraindeadSurround(开源,WTFPL 许可)
要安装,只需复制audioses.dll到您的 Flash 播放器目录中(通常C:\Windows\SysWOW64\Macromed\Flash如果您使用的是 64 位 Windows)。您可能需要在 Flash Player 更新后再次复制它。
这是自述文件的摘录:
如果您将 Flash Player 与环绕声系统(例如 5.1、7.1)一起使用,您可能已经注意到 Flash 在播放音频流时表现出一种奇怪的行为:它不像任何健全的程序那样只是原封不动地传递立体声音频流,而是将其上混至 5.1,将音频流复制到后置扬声器并将其自己的低音管理应用到 LFE 通道。
由于多种原因,这当然是非常愚蠢的。首先,它与所有其他软件不一致(例如 foobar2000 等音频播放器)。其次,立体声流在 5.1 流上播放时不应该“扩展”,因为它们从来没有打算使用后置扬声器播放。第三,它会导致过度的低音输出,因为声学总和通常会导致在频谱较低部分的收听位置产生更高的声压。最后,如果用户确实想要上混,尽管存在所有这些问题,大多数音频驱动程序都允许他在系统级别执行此操作,这比在应用程序级别执行更有意义。
这个小软件 (SBS: StopBraindeadSurround) 专门设计用于防止 Flash Player 上混音频。安装后,它会阻止 Flash Player 打开具有 2 个以上声道的音频设备,从而迫使它回退到(希望)未触及的立体声输出。
对实现感兴趣的人将在源代码 ( sbs.cpp) 中找到它如何工作的描述。
| 归档时间: |
|
| 查看次数: |
13876 次 |
| 最近记录: |