In the past, audio and video on the Web was primarily a download-and-play technology. You had to first download an entire media file before it could play. Today, streaming technologies allow watching audio and video files almost immediately, while the data is being sent, without having to wait for the whole file to download.
There are three methods of delivering streaming audio and video content over the Web.
The first method uses a standard HTTP server to deliver the audio and video data to a media player. Unlike the download-and-play client, a special streaming client embedded in the webpage starts playing the audio or video while it is downloading, after only a few seconds wait for buffering, the process of collecting the first part of a media file before playing. This streaming method is called progressive media download.
The second method is called pseudostreaming. Pseudostreaming is a protocol that can be installed on regular HTTP servers. It uses a server side script for Flash-to-server communication. The player sends a HTTP request to the server with a start time parameter in the request URL’s query string and the server script responds with the video stream so that its start position corresponds to the requested parameter. This start time parameter is usually named simply start. The video viewer skips the nondownloaded parts of the videos.
Both FLV and MP4 video can be played back with pseudostreaming. The following scripts or tools are available :
- The H264 streaming module for Apache, Lighttpd, IIS and NginX.
- The mod_flv_streaming module for Lighttpd.
- PHP/ASP scripts such as XmooV PHP.
- Content delivery networks such as Bitgravity, Edgecast or Limelight.
There is one major advantage to streaming with a Web server rather than with a streaming media server—utilizing existing infrastructure.
The third method uses a separate streaming media server specialized to the audio/video streaming task. A streaming server offers the following advantages :
- More efficient use of the network bandwidth
- Better audio and video quality to the user
- Advanced features like detailed reporting and multi-stream multimedia content
- Supports large number of users
- Multiple delivery options
- Content copyright protection
The following protocols are commonly used by streaming servers :
- UDP – this protocol provides the most efficient network throughput. The only downside to UDP is that many network administrators close their firewalls to UDP traffic, limiting the potential audience of UDP-based streams
- TCP – this protocol provides an adequate, though not necessarily efficient, protocol for delivering streaming media content to flow through the firewalls
- HTTP + TCP – this combination has the benefit of working with all firewalls that let Web traffic through (port 80) and provides much more control (fast forward, rewind, etc) than a standard Web server, but also adds some overhead to the raw TCP stream that decreases scalability.
- Multicast – this protocol enables hundreds or thousands of users to play a single stream, but will only work on networks with Multicast-enabled routers. Multicast is becoming prevalent on corporate networks, but is still very rare on the Internet
Useful informations and tutorials about streaming are available at the streamingmedia.com website.
A year ago, Amazon CloudFront, the easy-to-use content delivery service, introduced the ability to stream audio and video files. Streaming with Amazon CloudFront is exceptionally easy: with only a few clicks on the AWS Management Console or a simple API call, you’ll be able to stream your content using a world-wide network of edge locations running Adobe’s Flash® Media Server. Like all AWS services, Amazon CloudFront streaming requires no up-front commitments or long-term contracts. There are no additional charges for streaming with Amazon CloudFront; you simply pay normal rates for the data that you transfer using the service.