Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Stream recorded audio from browser to server

Tags:

I would like to live stream recorded audio from the browser to the server and play it. The server will end up being a embedded device that plays these audio streams.

So far I've successfully recorded audio and encoded it into a WAVE file and play it on the browser using the web audio API and following this tutorial.

Now I have a stream of .WAV encoded blobs. I tried finding ways to stream these to a nodejs backend with a web socket connection and play them using a npm module. But I haven't had any luck.

Does anyone know of any resources or modules I should follow? Maybe I should try a different approach? The audio needs to be played relatively quickly on the server since recording on the browser.

like image 544
Conor Patrick Avatar asked Dec 31 '13 01:12

Conor Patrick


People also ask

How do I stream audio from my browser?

You can try WebRTC and MediaStream API for that. You can get audio from user's audio device or a stream they are playing in browser. You can find dcoumentation on those APIs from MDN pages.


1 Answers

I'm doing this currently with some software that allows for streaming to internet radio servers via your web browser.

I use the WebAudio API along with getUserMedia to get live PCM audio data from the sound device. From there, I convert this data from 32-bit float to 16, 12, or 8 bit data depending on the amount of bandwidth available. This converted int samples are written to a stream setup with BinaryJS which wraps streams on both the Node.js and the client. As a bonus with BinaryJS, you can have as many streams open as you want, so I use a second stream over the same WebSocket connection for control data.

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

like image 147
Brad Avatar answered Oct 09 '22 11:10

Brad