Tagged: icecast

rtl_icecast: A Terminal Application for Streaming FM to an Icecast Server with RTL-SDR

Thank you to Jouni (OH3CUF) for submitting news about the recent release of his new Linux terminal based open-source software called 'rtl_icecast', which can be used with an RTL-SDR to stream FM audio to an Icecast server.

Icecast is an open-source streaming media server that broadcasts audio and video streams over the internet.

Jouni writes:

rtl_icecast is a shell native application that uses RTL-SDR to receive FM radio signals and stream them to an Icecast server in MP3 format.

The main target usage for this app is to stream your local HAM FM repeater audio to your public shoutcast/icecast server with just a RTL-SDR USB-receiver and for example Raspberry Pi. It can be used to stream broadcast FM too, of course.

The app is native app and uses the RTL-SDR on hardware level directly. No need to pipe or install anything extra. This works out of the box (well, I hope!)."

A block diagram of how the rtl_icecast streamer works
A block diagram of how the rtl_icecast streamer works

Creating a RTL-SDR NOAA Weather Radio Audio Streamer in Linux

On his blog leander has added a post which shows how he has set up a icecast streaming solution together with an RTL-SDR dongle which is receiving live NOAA weather radio. The idea is to give a computer with no soundcard the ability to stream compressed NOAA weather audio over a network. To do this he uses ezstream, icecast2 and lame. Streaming like this is great if you only want to listen to a single radio channel, and want a low bandwidth solution. Something like rtl_tcp streams the entire raw IQ data across the network which can use huge amounts of bandwidth. Streaming only MP3 audio is significantly more efficient.

First the RTL-SDR is set up to receive NOAA weather audio with rtl_fm. The audio is output to stdin, which is then sent to lame for encoding and MP3 compression. Next ezstream is set up to stream the encoded MP3 data via icecast. Now any PC on the network can use VLC or a similar program to connect to the stream and listen in.

Receiving the stream with VLC
Receiving the stream with VLC