Building A Streaming Music Service : Technology Components
A media file is the digital file format of the recording of a song. The most common format today is MP3 which comes is various “flavors” that determine the quality of the audio. MP3 is considered a “lossy” format which means it uses compression algorithms that can trim off pieces of the music data that it thinks the users will not hear. FLAC is another common format that is considered lossless. It uses compression algorithms that restore ALL of the original digital data as it was received.
The quality of any media file recording will depend on the original sound recording, the master recording, and how it was turned into a “digital master”. Many variables impact the quality of the work including the type of equipment used in the studio and the quality of the digital signal processors (analog-to-digital / digital-to-analog converters).
The Source Client
The Source Client is the piece of the system that gets the media file and packages it up into an encoded audio format. It talks to the Streaming Server to tell it “hey, I have an audio file in stream-ready format for you to send out to people”.
Some popular source clients that work with an Icecast Streaming Server include IceS on Linux systems and SamCast for Windows. The Icecast site hosts a list of Icecast compatible Source Clients. Mixx is a cross-platform open source project with lots of features.
The Streaming Server
Icecast (open source, GPL) and Shoutcast (Radionomy Group copyrighted) are two examples of streaming servers. Wowza is a popular enterprise-grade streaming media server for those of you looking to build larger streaming services. This is the part of the system that the app your listeners are using will connect to and get the stream of music. It is the engine that sends the audio bits over the network.
The Media Player
This is the app used by your listeners. It can be a web player , a mobile app, or a hardware specific app such as the Sonos controller. There are a lot of free apps that will connect to open source servers like Icecast or you can “roll your own”. The Icecast apps page has a list of compatible media players. Winamp is popular for Windows users while VLC is a cross-platform and mobile app solution.