The three server setup

A radio streaming system is a set up of three different entities: different tasks for three different computers:

  • the broadcaster transmits audio data to a streaming server
  • the server redistributes the same audio data to every computer requesting it
  • more streaming clients finally receive the audio
The broadcaster

The computer acting as a broadcastert is the source of the audio data. It is the machine where the radio transmission is effectively done; its task is to encode an audio input in audio data, and transmit the same data to the Internet for redistribution.

The broadcaster is the first ring of our streaming chain. A reliable Internet connectionis mandatory for a broadcaster. This computer carries the whole responsability of the audio quality: not only the effective qualtity of the audio source components (a good microphone, well recorded sounds, no noise in the background, a well-done audio mixing), but also the relative audio quality dependent on the quantity of data transmitted (Kilobits per second, Kbps), once audio has been "translated" into data.

The streaming server

The streaming server is the computer responsible for the redistribution of the audio data: one goes in, more go out. Its task is the retransmission of the same audio data to all the machine which are requesting it for effective listening.

The streaming server is the middle ring of our streaming chain. Accessibility in the Internet is a basic requirement for a streaming server. It is also the most automatic machine in the whole process: once succesfully configured and started, it requires no human intervention. In fact, the streaming server carries no responsability for the audio quality, and is capable of being always online: without sources from a broadcaster, there is also nothing to redistribute. A streaming server could also handle more sources at a time: the clients will choose which sources to receive.

The streaming server is the most technical of our machine-set, and also the most expansive: the connectivity issue could not be fulfilled if the server has no Public IP, which costs money, or if the hardware is not reliable. That's why a streaming server is usually running on a friendly computer which absolves many of other services on the Internet: while acting the streaming service, the same machine could be a web-server, a mail-server and a Domain Name Server; all these services are then running whithout interferring one to the other.

The streaming client

The streaming client is a computer which, receiving audio data from a streaming server, "retranslates" the data to audio for human ears. Its main task is the effective listening of a transmission and, eventually, the redistribution of the same audio to a radio antenna for common FM radio listening as we are used to.

The streaming client is the last ring of our streaming chain. A streaming client needs to know where the streaming server is localized on the Internet and which is the transmission to choose. A streaming client needs then only media player software program, which will translate the received data into audio, piped to common audio devices, like an hi-fi or the computer speakers. Of course the quality of these audio devices could influence the whole audio quality, but that's not anymore a computer's matter.

Time delay

Between the broadcaster and the streaming client, there will be a time delay: the client will listen to the audio some seconds after the broadcasted has been transmitting it (the delay is usually about 15 seconds).

The time delay could be influenced by each of the three computers in our chain:

  • the broadcaster could use an audio "buffer", which will first store audio data in memory and after some seconds send it to the streaming server
  • the streaming server could redistribute the audio data some seconds after receiving it
  • the streaming client could use a "buffer", which will first store audio data in memory and will give it for reproduction some seconds later

The goal of time delay is to guarantee that the streaming remains "free from holes". In fact, during the "transport" of audio data to the Internet, else than the fisical time delay due to the different location of computers on the planet, there could be some interference, such as some of data packets getting lost on their way. Thanks to time delay, computers have always enough time to "resend" a packet that went lost, guaranteeing in this way the complete data to come at destination.

If we are streaming to a common radio bradcaster, time delay gives us some interesting possibilities: the most appreciable one is that, while the audio data comes some seconds later to the client, a communication data, like an IRC chat, still keeps being much closer to "real time communication". That means that, while streaming to a radio station, we always have 10-20 seconds to use for coordination with the FM radio studio, announcing that we are going to change music, or that the studio should overtake the audio transmission for a pause.


`