RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX


Video on a Budget: Two Ways to Deliver Flash

Weigh the pros and cons of streaming vs. progressive downloads for FLV content, and learn how to deliver video on demand without breaking the bank.

treaming video is a very fashionable buzz phrase these days thanks to the pervasiveness of Internet video (which is, in turn, thanks, largely, to Flash). However, it's also a widely misused phrase (including when discussing Flash) because the video in question often isn't streaming at all. There are, in fact, two ways of delivering Flash video—each with its pros and cons. In this article I'll help you prepare for video delivery by giving you a quick primer on the two most common delivery options.

To reap the full benefit of this article, it's important to fully parse the difference between actual streaming and a technique called progressive download—an economical advancement over older media downloading options (but which still isn't streaming).

Progressive Download
Any time you play a Flash video (an FLV) from a local source—perhaps a CD-ROM or kiosk—you are almost certainly using a progressive download approach. In fact, the majority of video used in Flash features progressive download FLVs.

In at least one respect a progressive download is no different from a standard download: The asset is downloaded to your computer (typically to your browser's cache) for playback. The major difference between the two download types is that a progressive download starts displaying the file during the download process, rather than waiting for the download to complete.

You may be familiar, for example, with progressive JPEGs. This format displays the image almost immediately upon the start of the download, and displays an increasing degree of clarity until the process is finished—usually in three to five stages. The large version of Figure 1 (click the thumbnail to view) shows a progressive JPEG almost completely downloaded. Approximately two-thirds of the way down the image, you can see the remnants of the previous display pass at medium clarity. Only a small portion of the download remains as the last third of the final display pass appears.

Figure 1. Click to view a simulation of a progressive JPEG.
Progressive download FLV files function much the same way. After a buffer period (which is usually a few seconds for shorter videos, and can be user-defined), the video begins to play. During playback, the file continues to download in the background. Aided by the short buffer period, as long as the download pace stays ahead of the playback pace the video will play uninterrupted.

It's easy, and economical, to use video this way because no special software is needed. A standard web server can make the video available in the same way it does for HTML pages or graphics like the JPEG above. On the downside, the user experience depends largely on the speed of the connection. With slow or faltering connections the playback will recover the buffer and catch up to the download position, which stops playback temporarily. Additionally, since the FLV is downloaded entirely to the user's machine, content remains in the hands of the user for better or worse.

By contrast, true streaming video is delivered by a dedicated server, such as Adobe's Flash Media Server 2, or LightTPD—both of which I'll discuss briefly in this article. The server sends the video instantly, and in real time, to the client. As a result, the user need not wait for a buffer to pre-fetch a portion of the video. Furthermore, rather than wait for the video to fully download before navigating through it, a user can immediately jump to any part of a streaming video—including portions that haven't yet been seen.

Because streaming video is only delivered to users as needed, in small increments, the format is ideal for large numbers of users. Because it doesn't necessarily transfer the entire file, streaming video reduces the load on the server, whereas progressive download videos are delivered, in their entirety, to every user that can successfully request the file.

Streaming through a dedicated server such as Flash Media Server is an alternative way of delivering FLV video—one in which the FLV files are not cached on the user's machine. As such, streaming video is preferred for controlled viewing situations such as rights management (pay per view, subscription), version control, etc. It's also superior for long videos and, where the server supports the feature, live content.

Table 1. Feature Matrix: Progressive Downloads vs. Streaming

Progressive Download Streaming
Dedicated server required   *
Local content easier to deliver *  
Easy to create without additional setup *  
Fast start   *
Delay user-defined, typically relative to length of clip *  
Long clips easier to deliver   *
Immediate scrubbing of video possible   *
Video remains on server (more secure)   *
Video downloaded to user's machine *  
Optimal for server load from many users   *

Close Icon
Thanks for your registration, follow us on our social networks to keep up-to-date