Streaming vs. Downloading Video: Choosing The Right Solution
Delivering From a Streaming Server
A streaming media server is a specialized piece of software that accepts requests for video files, knows about the format, bandwidth, and structure of those files, and in many cases, pays attention to the performance of the player that's receiving the video. Streaming servers deliver just the amount of data necessary to play the video, at precisely the rate needed to play it.
Unlike the web server, which simply starts dumping as much video data onto the network as it can, the streaming server opens a conversation with the media player. There are two sides to this conversation – one to transfer the video and one for control messages between the player and the server. Because they continue to exchange these control messages with the player, streaming servers can adjust to changing network conditions as the video plays, improving the viewing experience. The control messages also include user actions like play, pause, stop, and seeking to a particular part of the file. Since the server sends video data only as it's needed and at just the rate it's needed, it also allows you to have precise control over the number of streams you serve and the maximum bandwidth you consume.
If you've got a 56kbps connection to the network, you won't be able to receive that 200kbps video. You'll have to settle for a lower-quality version that's encoded for 56kbps connections. But streaming delivery of video data does have some advantages:
- You can skip ahead in a video, or begin playback at a point somewhere in the middle. This is a convenience to users, but also a boon to you as a provider. It enables interactive applications like video search and personalized playlists.
- It lets you monitor exactly what people are watching and for how long they are watching it.
- It makes more efficient use of bandwidth since only the part of the file that's watched gets transferred.
- The video file is not stored on the viewer's computer. The video data is played and then discarded by the media player, so you maintain more control over your content.
In a pinch, streaming servers can use HTTP and TCP to deliver video streams, but by default they use protocols more suited to streaming, such as RTSP (Real Time Streaming Protocol) and UDP (User Datagram Protocol). RTSP provides built-in support for the control messages and other features of streaming servers. UDP is a lightweight protocol that saves bandwidth by introducing less overhead than other protocols. It's more concerned with continuous delivery than with being 100% accurate – a feature that makes it well-suited to real time operations like streaming. Unlike TCP, it doesn't request resends of missing packets. With UDP, if a packet gets dropped on the way from the server to the player, the server just keeps sending data. The idea behind UDP is that it's better to have a momentary glitch in the audio or video than to stop everything and wait for the missing data to arrive.
Finally, a streaming server is necessary to deliver live webcasts and to use multicast. For networks that support it, multicast allows more than one client to tune in to a single stream, saving bandwidth at every part of the delivery chain.
Next Page: Conclusions