npm install recordrtc-socketiocd ./node_modules/recordrtc-socketio/# to run it!node server.js# now open:
There are some other NPM packages regarding RecordRTC:
- Records audio/video separately as wav/webm
- Emits both files using socket.io
- Socket.io server end receives emitted data; and writes wav/web files to disk
- Node.js code invokes ffmpeg to merge wav/webm in single "webm" file
- Socket.io server emits
mergedevent; and passes-back the URL of the merged file
Client side stuff:
var socketio = ;var files =audio:name: fileName + '.wav'type: 'audio/wav'dataURL: dataURLaudiovideo:name: fileName + '.webm'type: 'video/webm'dataURL: dataURLvideo;socketio;
Server side code that captures above data:
After merging; server side code that passes back the URL of the merged file:
Client-side code that receives merged-file URL:
Windows Batch File (
merger.bat file is executed to invoke ffmpeg functionalities on windows:
@echo off"C:\ffmpeg\bin\ffmpeg.exe" -i %1 -i %2 %3
It is assumed that you already have installed ffmpeg on your system. Though, EXE file is hard-coded to "C:\ffmpeg\bin\ffmpeg.exe" however you can easily edit it according to your own installations.
merger.sh file is executed to invoke ffmpeg functionalities on Mac/Linux/etc.
ffmpeg -i video-file.webm -i audio-file.wav -map 0:0 -map 1:0 output-file-name.webm
Using Linux; ffmpeg installation is super-easy! You can install DEVEL packages as well.
How to install ffmpeg on windows?
- Download ffmpeg and extract ZIP file
- Rename extracted directory to "ffmpeg"
- Right click over "My Computer" icon and select "Properties" context-menu option
- Select "Advance system settings" from top-left section
- Click "Environment Variables..." button from "Advanced" tab
- Click "New..." button and in the "Variable name" box, enter "Path".
- In the "Variable value" box, enter extracted directory full URI e.g. "C:\ffmpeg"
- Click "OK" and done!
How to install ffmpeg on Mac OSX?
Make sure you have homebrew installed. Then run following command:
brew install ffmpeg --with-libvpx --with-theora --whit-libogg --with-libvorbis
How to test?
In the node.js command prompt window; type
node server. It will run socket.io server at port
9001. Then you can open index.html file on any webserver.