Как быстрее всего объединить аудиофайлы на веб-сервере?

Отказ от ответственности: простите мое невежество в области аудио/звуковой обработки, я занимаюсь веб-разработкой и мобильной разработкой, и это специальное требование для одного из моих клиентов!

У меня есть требование объединить 4 аудиофайла с фоновой дорожкой, воспроизводимой за всеми 4 аудиофайлами. Исходные аудиофайлы могут быть созданы в любом формате или подвергнуты какой-либо обработке, чтобы сократить время обработки, но качество вывода по-прежнему важно. Для ясности входные файлы могут быть названы следующим образом (.wav — это только примерный формат):

  • фон.wav
  • сегмент-a.wav
  • сегмент-b.wav
  • сегмент-c.wav
  • сегмент-d.wav

И должно быть структурировано примерно так:

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

Мне удалось использовать инструмент SoX, чтобы выполнить конкатенацию части вышеперечисленного с использованием файлов MP3, но с разумной скоростью. быстрый компьютер Я получаю примерно час объединенного звука в минуту обработки, что недостаточно быстро для моих требований, и я еще не применил фоновый звук или какие-либо «приятные вещи», такие как обрезка / затухание.

Мои вопросы:

  • Является ли SoX лучшим/единственным инструментом для такого рода операций?
  • Есть ли способ ускорить процесс, не жертвуя (слишком сильно) качеством?
  • Приведет ли изменение формата входного файла к повышению производительности? Если да, то какой формат лучше?

Любые предложения от этого замечательного сообщества будут высоко оценены!


person Jay    schedule 19.07.2012    source источник
comment
попытайтесь найти узкое место ваших проблем с производительностью. скорее всего тормозит не sox, а ваш жесткий диск. или процесс кодирования/декодирования. в обоих случаях я не думаю, что обрезка/затухание добавит много накладных расходов.   -  person umläute    schedule 19.07.2012
comment
Спасибо за ответ умляут. Я разрабатываю последнюю версию Macbook Air (SSD), поэтому подозреваю, что проблема не в аппаратном обеспечении. Не могли бы вы рассказать о процессе кодирования/декодирования, о котором вы упомянули? Интересно, должен ли SoX что-то делать с образцами MP3, которые я использую, прежде чем он сможет работать с ними, и это добавляет накладные расходы - поэтому я спросил, поможет ли изменение формата входного файла.   -  person Jay    schedule 19.07.2012


Ответы (1)


  1. Sox может быть не лучшим инструментом, но я сомневаюсь, что вы найдете что-то лучше без ручного кодирования.
  2. Рискну предположить, что у вас неплохо получается обрабатывать столько аудио за это время. Возможно, у вас получится лучше, но вам придется поэкспериментировать. Вы правы в том, что, наверное, основной способ повысить скорость — изменить формат файла.
  3. MP3 и OGG вероятно дадут вам одинаковую производительность, поэтому сначала определите, как MP3 сравнивается с несжатым звуком, таким как wav или aiff. Если MP3/OGG ​​лучше, попробуйте разные коэффициенты сжатия и частоты дискретизации, чтобы увидеть, что работает быстрее. Для wav-файлов можно попробовать снизить частоту дискретизации (это можно сделать и с MP3/OGG). Если это речь, вы, вероятно, можете снизить частоту до 8 кГц, что должно значительно ускорить процесс. Для музыки я бы сказал 32 кГц, но это зависит от требований. Кроме того, попробуйте моно вместо стерео, что также должно ускорить процесс.
person Bjorn Roche    schedule 19.07.2012
comment
Привет, Бьорн, спасибо за участие. Как и предполагалось, объединение несжатых wav-файлов было значительно быстрее, чем MP3, при выводе в столь же несжатый wav-файл. При изменении вывода на MP3 процесс снова замедлился, поэтому проблема с производительностью определенно связана со сжатием. - person Jay; 21.07.2012