Ogg Theora Cook Book

What is streaming?

Streaming Media is the term used to describe the real-time delivery of audio and video over the internet. Streaming Media allows for live transmission of audio or video over the internet, transforming the internet into a broadcasting medium.

The main difference between a streaming service and an online delivery (or archive) service is that  streamed data do not specify a start nor an end. A stream is a continous flow of video or audio data to which a viewer or listener can just connect. So a stream will continue even if no one is connected to that stream.

Varieties of Streaming Services

There are two types of delivery of audio and video data over the internet: Playlist Streaming and Live Streaming.

Playlist Streaming
The delivery of a stream of pre-recorded media files without any interaction over the internet can be called playlist streaming. This type of stream is build upon a list of files that should be streamed. Many players are able to stream files or list of files (e.g. VLC). Even if the files are acquired from an archive, this is a kind of streaming, as the audience does not read the complete file, but joins a stream. This delivery usually occurs using the http protocol.

Live Streaming

The delivery of live audio and/or video over the internet. This allows the user to experience an event as it occurs in realtime. There are many examples of this, such as online radio or viewing live performances. Only True Streaming supports live streaming.

This manual will mainly deal with True Streaming of both live and archived content.

Delivery

Providing video files (especially theora videos) is nearly as easy as providing pictures on a webpage. All that is needed for such a scenario is a web server. This is often the cheapest way to deliver content on a small scale. This method cannot be used for live streaming and does not enable advanced features such as multiple bitrate encoding. However, the streamed delivery of archived videos (such as archive.org or youtube) generates most webtraffic nowadays.

To enable live streaming, and to gain full functionality and efficiency, a streaming media server is required. This server is usually standard server hardware but with the necessary streaming server software installed. It is quite normal to install a streaming server on the same machine as an existing web server.

Streaming Servers

Perhaps a good way to understand how streaming works is to imagine a radio station.

A radio station is comprised of three components - a studio, a transmitter, and your audience's receivers.

radio.gif

The basic diagram above shows how a transmitting radio station works. The radio studio is the source of the audio. In this space there are usually mixing desks, cd-players, minidisc players, turntables etc. From the studio an audio signal is sent to the transmitter. This can be sent from the studio to the transmitter by either a cable (sometimes called a "landline") or by a microwave link. Then the transmitter sends the audio via FM so that radio receivers (tuners) can pick it up and play it.

Radio works this way because it is trying to distribute the studio audio to as many people as possible. If you imagine the radio studio without the transmitter then the station would have a somewhat reduced audience! Essentially only those people who could get there (and fit into the studio!) would be able to listen. So the transmitter works as a distributor, allowing more people to connect via their radio receivers and hence enlarge the potential audience.

This is a close analogy to why streaming exists and how it works. If you are just playing audio on a computer in your room then the audience isn't going to be so big... so, we utilise streaming to distribute this audio to more people.

transmit_server.gif

The analogy is obvious: the computer replaces the radio studio, the streaming server replaces the transmitter, and your listeners connect to the server using computers, just like radio receivers to the broadcast signal. The analogy can be taken quite a long way. Having a bigger radio transmitter is like having more bandwidth available at the streaming server - both allow more people to connect.