Restream Internet Radio locally

I'm not sure if this is possible, so I thought I'd ask here before wasting too much time.

I am the Music Content Manager for a South African internet/satellite radio station that caters to the elderly. I have an old(ish) desktop that I've turned to a FreeBSD file server, but it sits idle most of the time (I really just use it once or twice a day for backups). What I'd like to do is this:
Access our radio station, and restream it through my wifi router so that anyone connected to my router can listen to us without having to pay data fees.
There won't be too many listeners: maybe 3 or 4 at a time. The range of my router is limited.... definitely less that 50 metres, and I live on a farm so neighbours and passers-by will not connect.

So I'd like a simple method of accessing https://rt1485.out.airtime.pro/rt1485_a and restreaming it through my local wifi's ip address 192.168.y.z so that all anyone has to do is type http://192.168.y.z into a browser or music player on their phones or laptops and listen to us.

Is this possible? and is it practical? By which I mean, simple enough that it's worth the time and effort it will take to do it? I've spent a fair bit of time googling this, but the standard answers seem to involve OBS studio which won't run due to my old video card, I don't have a desktop environment installed, and my FreeBSD runs headless anyway: I just ssh into it every night to shut it down, and once a week to check for updates.

I'm running FreeBSD 14.3 Thank you.
 
I forgot to mention: I don't own a domain, so I'll need connect to the IP address of the router And because I don't own a domain, I need to use http and not https. At least, I think that's how it works. I'm a bit dyslexic and get overwhelmed with technical manuals.
 
Hi,

If that's the case you probably want to check out MediaMTX

Another solution although older and not as used these days is using Icecast or a compatible project
 
Thanks, I'll have a look at that. But I think I'm going to wait until FreeBSD 15.0 comes out. I've done so much experimenting over the last year or so, that I have stuff installed that I really don't need (I install something, try it out, and then forget to remove it and all of its dependencies). Also, my rc.conf has more commented-out lines than active ones! So, a fresh install is in order!
 
Access our radio station, and restream it through my wifi router so that anyone connected to my router can listen to us without having to pay data fees.
Anyone connected via your wifi router to the internet can connect directly to the streaming service. They won't be accessing it through 4G/LTE/5G (so no data fees). There's no need to "restream" it.

Your wifi router's internet connection has to be "big" enough to handle multiple streams though. But audio streams generally don't use that much bandwidth.
 
I had a Raspberry Pi running a MPD server; on another computer I'd take Shoutcast URLs and put them on the RPi, then the RPi would output the stream on connected speakers. It was for a whole-house audio setup so a speaker amp was on the RPi and speakers wired throughout the house to the amp (so one device still outputted the audio but multi-room).

I switched to command-line VLC later (notes); I have notes about streaming to a Chromecast on LAN, and I'm thinking that could work for any other device to do Internet Stream -> cvlc -> (network speaker) in order to have network speakers/etc take the stream from the LAN VLC instead of WAN

Code:
vlc.exe "http://198.50.158.92:10212/stream"  --sout "#chromecast" --sout-chromecast-ip=192.168.1.231 --demux-filter=demux_chromecast --sout-chromecast-port=32077

Although looking closer at that Chromecast line might be doing a direct WAN stream -> Chromecast; I'm thinking having cvlc be a streaming server and then having a later VLC instance connect to that LAN cvlc could work?
 
I would recommend icecast. It works really well. Simply install via pkg, then download a client like “BUTT” “darkice” or even just “ffmpeg” to capture and send the audio to icecast.

Clients can the connect via IP/mount to get to the live stream.

MediaMTX would also work (probably) but is a bit more geared towards video streaming, whereas icecast is more for live audio.

In any case, I’ll offer the following where you can fetch and install either one via a script.


 
Example ffmpeg

Code:
ffmpeg -i https://mystream.url -acodec libmp3lame -ab 128k -content_type audio/mpeg -f mp3 -ice_name “Stream Name” -ice_description “My Broadcast” -ice_genre “My Genre” icecast://user:password@192.168.1.171:8000/live
 
victort
Apart from transcoding (not really recommended) and to something "ancient" MediaMTX actually does this perfectly fine and with less dependencies ;-)
https://novamostra.com/2025/05/13/audio-over-ip-using-raspberry-pi/ for example regarding the audio only part

Also, why would use a script when both are available in the ports tree and as packages?
Nice. Wasn’t aware of that.

MediaMTX was not in ports last I checked, but I’m assuming it you who added it? Nice, as I also use it for video streaming.

I use script as it makes it easy to mount directories and do some stuff that would otherwise need to be done manually.
 
Back
Top