Skip to content
Interface between audio input and Icecast stream
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Radio Streamer

This is a node interface between a radio station's audio output and an Icecast server. In our case, the streamer receives audio from Myriad Playout and sends it to our Icecast hosting service.

TODO: include provisions to notify technicians of downtime and to switch to an emergency broadcast recording in the event Myriad Playout goes silent.


Clone the repository, then install the dependencies:

$ apt-get install icecast2 libshout3 libshout3-dev libasound2-dev
$ npm install ashishbajaj99/mic lame nodeshout --save

Create config.json from template:

$ cp config.template.json config.json

Running stream as a process

You can keep the stream running as a process using PM2:

$ npm install pm2 -g
$ pm2 start ./index.js -n stream

You can then set it to run on startup.

Known faults

Conflicting libssl1.0-dev and libssl-dev packages mean that NPM and libshout3-dev cannot be installed at the same time (see bug).

A workaround is to downgrade Node.js:

$ apt-get install nodejs=8.10.0~dfsg-2ubuntu0.2 nodejs-dev=8.10.0~dfsg-2ubuntu0.2 npm libshout3-dev
You can’t perform that action at this time.