Stream recorded audio from browser to server

20,047

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/

Share:
20,047

Related videos on Youtube

Conor Patrick
Author by

Conor Patrick

https://conorpp.com/

Updated on September 22, 2020

Comments

  • Conor Patrick
    Conor Patrick almost 4 years

    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.

  • Conor Patrick
    Conor Patrick over 10 years
    BinaryJS looks like a good option. Any idea of how to play the binary stream on speakers server side?
  • Brad
    Brad over 10 years
    @ConorPatrick That depends entirely on your platform. Each is different. There are NPM modules for most plaforms for audio playback.
  • NealR
    NealR about 10 years
    Would it be possible for you to post an example of the javascript you use to connect to the audio source and stream to the server? I've been trying to figure this out for months and don't feel like I'm any closer.
  • noamtcohen
    noamtcohen almost 10 years
    @NealR A full example of streaming audio to node: github.com/noamtcohen/AudioStreamer
  • Leo
    Leo over 6 years
    Thanks, @NealR, what would be your approach to saving chunks of the stream as sperate files? i.e. saving an audio file every 2 seconds for example out of the stream