Genesis said:
Wow, totally worth it weilrich. The sound I get is right on. Like a real radio. No streaming hiccups or even the feeling of sound being streamed. How did you do that?
I've been playing around with online radio for a couple of years and have gotten to like Airtime from Sourcefabric (
http://www.sourcefabric.org/en/airtime/). At first, I tried doing a free radio hosting site, but they had all the problems (and more) that you described.
I started with an old Pentium III computer running Ubuntu server. Airtime installed with no problems. I used the Airtime interface to create and stock a small set of mp3s. I fed these to the free radio host, tuned in and listened. It was passable as an experiment.
I upgraded the Linux box to a fast Black Edition 4-core processor with 8GB RAM and a very fast SATA III 2T disk - I wanted to use an SSD, but you know how budgets go...
I installed Windows 7 and VirtualBox. I brought up an Ubuntu Server in the VBox, downloaded the latest Airtime (2.51 for Ubuntu 12.04), and had a basic radio station up and running in a few hours.
No one but me could listen at this point because my computer runs on non-routable subnet. Then I discovered ngrok! This little program creates a secure tunnel to an outside, public server. That server provide me with a public IP to my computer. I set the radio station mount point to that public IP and everyone can listen.
The basic HTML5 audio control works but is pretty primitive: it doesn't have any way to display artist, title, or artwork.
I investigated and found several solutions. I'm still on my first experiment with this. The Airtime Icecast server provides a subset of the ID3 tags in the streaming music. This gives me the artist and title information. I used the application 'Album Art Downloader' to grab a copy of the album artwork and store it on Gigarank's server.
The website gives me the chance to tie all of those together using a customized jPlayer. The rest is some HTML, some javascript, a little jQuery, some PHP, and a simple mySQL database.