performance - 在Web服务器上组合音频文件的最快方法是什么?

标签 performance audio command-line concatenation sox

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

我需要连接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可能不是最好的工具,但我怀疑如果没有手动编码,您会发现更好的东西。
  • 我敢猜测您在这段时间内处理如此多的音频做得很好。您可能会做得更好,但必须进行试验。没错,提高速度的主要方法可能是更改文件格式。
  • MP3和OGG可能会为您提供类似的性能,因此请首先确定MP3与未压缩音频(例如wav或aiff)的比较方式。如果MP3 / OGG更好,请尝试不同的压缩率和采样率,以查看哪种压缩速度更快。使用wav文件,您可以尝试降低采样率(您也可以使用MP3 / OGG进行采样)。如果这是语音,则可能会降低到8kHz,这将大大加快速度。对于音乐,我会说32kHz,但这取决于要求。另外,请尝试使用单声道而不是立体声,这也可以加快速度。
  • 关于performance - 在Web服务器上组合音频文件的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11557739/

    相关文章:

    performance - L2 取指令未命中远高于 L1 取指令未命中

    ios - iOS 中的音频信号处理

    linux - 如何使用 IdentityFile 通过 SSH 远程运行 sudo 命令?

    android - 如何跟踪应用程序在单个设备上安装的时间

    python - 集合中的快速随机元素 - Python

    c++ - 我应该使用简单的类还是高维矩阵?

    windows - 在 Windows 中查找将从命令行执行的程序的路径

    linux - 如何正确使用libfreenect访问kinect音频设备

    ios - 如何在_启动期间而不是在xcode中启动后播放声音_

    command-line - Erlang:如何访问 CLI 标志(参数)作为应用程序环境变量?