Поток записывает аудио с браузера на сервер

Мне хотелось бы записать потоковое записанное аудио из браузера на сервер и воспроизвести его. Сервер окажется встроенным устройством, которое воспроизводит эти аудиопотоки.

До сих пор я успешно записывал аудио и кодировал его в WAVE файл и воспроизводил его в браузере с помощью API веб-аудио и после этого учебника.

Теперь у меня есть поток .WAV закодированных blobs. Я попытался найти способы передать их на сервер nodejs с подключением к веб-сокету и воспроизвести их с помощью модуля npm. Но мне не повезло.

Кто-нибудь знает какие-либо ресурсы или модули, которым я должен следовать? Может, мне стоит попробовать другой подход? Звук должен воспроизводиться относительно быстро на сервере с момента записи в браузере.

Ответ 1

Я делаю это в настоящее время с некоторым программным обеспечением, которое позволяет транслировать на интернет-радиосерверы через ваш веб-браузер.

Я использую API WebAudio вместе с getUserMedia, чтобы получить звуковые данные в реальном времени PCM от звука устройство. Оттуда я конвертирую эти данные из 32-битного поплавка в 16, 12 или 8-битные данные в зависимости от доступной пропускной способности. Эти преобразованные образцы int записываются в настройку потока с BinaryJS, которая переносит потоки как на Node.js, так и на клиента. В качестве бонуса с BinaryJS вы можете открыть столько потоков, сколько захотите, поэтому я использую второй поток по тому же соединению WebSocket для управляющих данных.

http://demo.audiopump.co:3000/