blog.WWBN.com Logo



Home

RSS

Admin

WWBN.com

Top Comment Activity

Best Practices For Video Submissions (3)
Leveraging The WWBN Platform System (2)
SearchTUBE.mobi for mobile users. (2)

Top Focused Entries

WWBN Website Changes and Moves (2732)
Best Practices For Video Submissions (2696)
Progressive Download vs Streaming (2647)
Leveraging The WWBN Platform System (2233)
SearchTUBE.mobi for mobile users. (2229)

Top Scored Entries

Progressive Download vs Streaming (1)
WWBN Website Changes and Moves (0)
Leveraging The WWBN Platform System (0)
The WWBN Video Gallery (0)
SearchTUBE.mobi for mobile users. (0)

Latest Entries

Best Practices For Video Submissions
SearchTUBE.mobi for mobile users.
The WWBN Video Gallery
Leveraging The WWBN Platform System
WWBN Website Changes and Moves


 


Posted by Blogger under Broadcasting Platform at
Score: 1 | Comments (0) | Make Comment | Demote (0) | Promote (1) | Focused: 2647 | Permalink | Digg It

One of the most frequently asked questions about delivering online video is "What's the difference between streaming video and downloading video?" Let's face it, as a user clicking a video link on a web page, you often won't know which method you're using, unless you poke around a little. But streaming and downloading are distinct methods of delivery, each with its own benefits and limitations. We'll take a look at the difference between the two methods, and make some suggestions about when you should choose one or the other for your projects.

Delivering From A Web Server:

Delivering your video file using a web server is sometimes referred to as "progressive download" or "http streaming". In fact, it's not really streaming at all, but a very simple bulk download of the video file to the viewer's computer. Let's say you have a video file encoded at 200kbps. You place that file on your Web server, and put a link to the file on your web page. The web server does not know or care that it's a 200kbps video file. It simply pushes the data out to the client as fast as it can. It may appear to be streaming since playback can begin almost immediately. The "progressive download" feature in most media players allows them to begin playing the file as soon as enough data has been downloaded. Of course, you can't fast-forward to the end of the file until the whole file arrives from the server. If the actual network bandwidth is smaller than the 200kbps that the file is encoded at, then you may have to wait a while before you can begin playing it. But even on a 56kbps connection, the video will look great “ you're essentially trading waiting time for video quality. The temporary file is saved to the user&qts computer, so they can re-play it if they want to without having to download it again. Web servers use HTTP (Hypertext Transport Protocol) to transfer files over the network. One of the features of HTTP is that it operates on top of TCP (Transport Control Protocol), which controls the actual transport of data packets over the network. TCP is optimized for guaranteed delivery of data, regardless of its format or size. For example, if your browser or media player realizes that it&qts missing a data packet from the server, it will request a resend of that packet. Resend requests take time, take up more bandwidth, and can increase the load on the server. And if the network connection is sketchy, you could begin to use more bandwidth for resends than you&qtre using for the video itself! TCP is not designed for efficient real time delivery or careful bandwidth control, but for accurate and reliable delivery of every bit.

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&qts 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&qts 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.

Conclusions:

All of this adds up to a few simple rules of thumb for when to use streaming and when to use http downloading to deliver your video. The main reason for downloading video from your Web server is that it's simple and you can do it with infrastructure you already have. It's most useful when your videos are short, when you're more interested in delivering high-bitrate encodings than in delivering in real time, or when you want your viewers to be able to keep a copy of the video on their own computers. Streaming is the better solution when your clips are more than a few minutes long, when you want to enable interactive applications like video search or linking deep into a file, or you want to collect statistics on what's actually being watched. Streaming is the way to go when you want to control the impact of video on your network, or when you need to support large numbers of viewers. And of course, it's the only way to do live Webcasts and multicasting.