For those looking for pure client based solution, not streaming packets to server, take a look at this demo, it works in chrome v47+ and firefox v25+, the code is quite simple, my advice to you is use HTML5's MediaRecorder directly and no use some third-party wrapper library unless it is absolutely needed.
If support for MediaRecorder API is detected( in case of Firefox), my recorder is just a wrapper for it, for other case, I am using Rillke's opus library for compressing wav audio into ogg file on client side.
You can just host the files in client
folder in any server, if you just want to record audio from microphone in one shot and save as ogg
file, but if you do not want to run out of browser memory( while recording long podcasts and such,) you can keep sending the data as chunks to the server, at desired time intervals and server would join all of them into single file( ffmpeg
needed for browsers other than firefox) and provide you the final link.
- node (for server)
- ffmpeg (for media manipulation, OPTIONAL)
- npm install
ffmpeg
must be pre-installed and must be part of path
to start the application, just type npm start
in the project root folder.
See file LICENSE for further information.
Ban Mido