Stream recorded audio from browser to server
Asked Answered
H

1

24

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.

Helmet answered 31/12, 2013 at 1:36 Comment(1)
See also Tutorial: HTML Audio Capture streaming to Node.js (no browser extensions) and its githubEssayist
C
24

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/

Ciri answered 31/12, 2013 at 1:44 Comment(5)
BinaryJS looks like a good option. Any idea of how to play the binary stream on speakers server side?Helmet
@ConorPatrick That depends entirely on your platform. Each is different. There are NPM modules for most plaforms for audio playback.Ciri
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.Mullein
@Mullein A full example of streaming audio to node: github.com/noamtcohen/AudioStreamerPreciosa
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 streamBeatty

© 2022 - 2024 — McMap. All rights reserved.