【问题标题】:What is the fastest way to combine audio files on a web server?在 Web 服务器上组合音频文件的最快方法是什么?
【发布时间】:2012-07-19 09:24:12
【问题描述】:

免责声明:请原谅我对音频/声音处理的无知,我的背景是 Web 和移动开发,这是我的一位客户的定制要求!

我需要连接 4 个音频文件,并在所有 4 个音频文件后面播放背景音轨。可以以任何格式创建源音频文件,或对其进行任何处理,以提高处理时间,但输出质量仍然很重要。为清楚起见,输入文件可以命名如下(.wav 只是一个示例格式):

  • background.wav
  • segment-a.wav
  • segment-b.wav
  • segment-c.wav
  • segment-d.wav

并且需要这样的结构:

[------------------------------background.wav------------------------------]
[--segment-a.wav--][--segment-b.wav--][--segment-c.wav--][--segment-d.wav--]

我已经设法使用SoX 工具使用 MP3 文件实现上述连接部分,但在一台相当快的计算机上,我每分钟处理大约一个小时的连接音频,这不是速度足以满足我的要求,而且我还没有应用背景声音或任何“不错的东西”,例如修剪/褪色。

我的问题是:

  • SoX 是此类操作的最佳/唯一工具吗?
  • 有没有什么方法可以在不牺牲(太多)质量的情况下加快流程?
  • 更改输入文件格式会提高性能吗?如果是,哪种格式最好?

非常感谢来自这个优秀社区的任何建议!

【问题讨论】:

  • 尝试找出性能问题的瓶颈。很可能,慢的不是 sox,而是你的硬盘。或编码/解码过程。在这两种情况下,我认为修剪/淡化不会增加太多开销。
  • 感谢您回复 umlaeute。我正在最新的 Macbook Air (SSD) 上进行开发,所以我怀疑硬件不太可能是问题所在。您能否详细说明您提到的编码/解码过程?我想知道 SoX 是否必须对我正在使用的示例 MP3 进行处理才能与它们一起使用,这会增加开销 - 这就是为什么我询问更改输入文件格式是否有帮助的原因。

标签: performance audio command-line concatenation sox


【解决方案1】:
  1. Sox 可能不是最好的工具,但我怀疑如果没有手工编码,你会发现更好的工具。
  2. 我冒昧地猜测,您在那段时间处理这么多音频方面做得很好。您可能会做得更好,但您必须进行实验。您说得对,提高速度的主要方法可能是更改文件格式。
  3. MP3 和 OGG可能会为您提供相似的性能,因此首先确定 MP3 与未压缩音频(如 wav 或 aiff)的比较情况。如果 MP3/OGG​​ 更好,请尝试不同的压缩比和采样率,看看哪个更快。对于 wav 文件,您可以尝试降低采样率(您也可以使用 MP3/OGG​​ 执行此操作)。如果这是语音,您可能可以低至 8kHz,这应该会大大加快速度。对于音乐,我会说 32kHz,但这取决于要求。另外,尝试使用单声道而不是立体声,这也应该会加快速度。

【讨论】:

  • 嗨,Bjorn,感谢您的加入。正如怀疑的那样,当输出到同样未压缩的 wav 文件时,未压缩 wav 的串联明显快于 MP3。将输出更改为 MP3 时,该过程再次变慢,因此肯定是压缩导致了性能问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-17
  • 1970-01-01
  • 2023-03-03
  • 2013-08-03
  • 2019-07-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多