Ответ 1
Разработчик SoundCloud здесь,
-
API и текущий сайт построены с помощью Rails. Для получения информации об архитектуре/инфраструктуре и о том, как она развивалась в течение последних 5 лет, ознакомьтесь с Evolution of SoundCloud Architecture. "следующая" версия веб-сайта (все еще в частной бета-версии) полностью построена на Javascript и просто использует API для получения своих данных. В появилось более подробное описание, в котором строится следующий SoundCloud.
-
Я не уверен, какой язык или библиотеки используется для обработки звука, но многие аудио-библиотеки предоставляют частотные данные, и мы просто извлекаем их.
-
Пользователи могут загружать файлы AIFF, WAVE (WAV), FLAC, OGG, MP2, MP3, AAC, AMR или WMA. Оригиналы хранятся точно так же, как и для загрузки, но для потоковой передачи на сайте они преобразуются в файлы MP3 с 128 Кбит/с. Опять же, я не уверен в программном обеспечении/библиотеках, но я уверен, что это будет ffmpeg.
-
Для отображения осциллограмм на фоновом выходе, когда аудиофайлы обрабатываются при их загрузке, данные осциллограммы сохраняются в PNG файле. В текущей версии сайта мы просто загружаем этот файл. В Далее png обрабатывается, чтобы вернуть исходные данные, а затем нарисован на холст с точными требуемыми размерами (который сохраняет изображение четким). В настоящее время мы экспериментируем с получением данных формы волны в формате JSON для ускорения этого процесса.