Web video template: Dynamic video playlist
Choosing between progressive and
streaming video
Comparing the pros and cons of streaming and progressive video is beyond the
scope of this article. (Read the Video Learning Guide for Flash for an overview
of Flash video delivery options.) Even so, you should decide which method
of delivery to use before you begin. As a quick review, let's outline the major
benefits and pitfalls of each.
Progressive delivery
- A standard web server is all you need. You don't need any special
server software to deliver video progressively. It is transferred via
HTTP, just like any other file into your browser (such as a JPEG, GIF,
HTML, or SWF).
- No Internet connection? No problem! For stand-alone usage such
as a CD-ROM, where an Internet connection may not be available,
progressive video is the only option for dynamic playlists. For video
delivered offline, streaming video in Flash Player is not possible because it
requires a connection to Flash Media Server.
- Caught in the cache. Unlike streaming video,
progressive video is actually downloaded to the viewer's hard drive. This
can be a good thing (if the viewer wants to replay the clip, it will play
from the local cache) or a bad thing (a copy of the video resides on the
viewer's computer, which could be an issue for material with strict
copyrights). Streaming is a better option if you want to control who
watches your video and what happens with it.
- Seek and you may not find. One limitation of
progressive delivery is that you can seek only to downloaded keyframes.
You may have experienced this if you ever started to watch a video and
wanted to jump ahead to the middle right away—sometimes it just hangs
there. This occurs because your browser hasn't yet received that portion
of the file. You must download the video file up to the point you're
trying to access. If the video hasn't yet downloaded, you can't jump
ahead. You may also have noticed that the seek bar jumps forward or
backward a bit from where you placed it; it jumps because there isn't a
keyframe at that spot. You can seek only to keyframes—frames that contain
100% of the pixel data for that frame. (All other frames in a video
contain only the data that has changed from the previous frame;
this is how videos are compressed.)
Streaming delivery
- No cache. Unlike progressive delivery, streaming video
is never downloaded to the viewer's hard drive. The video data is
displayed as it is received, and then it is discarded. This is great for
copyright-protected video, as there is never a copy of the file saved in
the browser cache.
- Seek anywhere, anytime. You won't encounter any of
the seek problems seen in progressive delivery when you stream your video.
If you want to jump right to the end, no problem. You just start receiving
data from that point, with a keyframe created by Flash Media Server on the
fly.
- Trim your bandwidth budget. Another benefit to streaming
is a potential savings in bandwidth costs. Unlike progressive delivery,
only the content watched is transferred. For example, with progressive
delivery, someone may start watching a video, have it completely download
in the background, and then close the browser halfway through—effectively
wasting all that downloaded data. With streaming, however, users download
only the portion of the video that they watch.
- Hosting choices. Video is streamed to Flash
Player through Flash Media Server. To stream your video, you'll need to
purchase a license or work with a Flash
Video Streaming Service. For testing purposes and small-scale
deployments, you can use the free Flash Media Development Server 3. (For more
information on that, read Tom Green's article, Beginner's
guide to streaming video with Flash Media Server.)