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.
- Streams audio input to Icecast
- Records input in a similar fashion to PlayIt Recorder or Rotter
- Sends email notifications when audio input falls silent
- TODO: Switch to an emergency broadcast when audio input falls silent
Clone the repository, then install the dependencies:
$ apt install icecast2 libshout3 libshout3-dev libasound2-dev
$ npm install
Create config.json
from template:
$ cp config.template.json config.json
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.
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 install nodejs=8.10.0~dfsg-2ubuntu0.2 nodejs-dev=8.10.0~dfsg-2ubuntu0.2 npm libshout3-dev