By now, you have at least heard of streaming video the exciting new technology that allows video producers to share their work inexpensively with a worldwide audience of Web surfers. Maybe you have viewed, or at least attempted to view, some streaming video yourself. And if you are among a select few, you have actually attempted the feat of creating your own streaming videos and placing them on your Web page Bravo! We salute your bravery.
Whatever your level of experience with streaming video, you should know (as a videographer and a reader of this magazine) that the technology that makes it happen, exciting though it is, does not always work the way it should. Streaming video has been touted as a means to give videographers everywhere their own television station and broadcasting license but if a television station operated as poorly as many streaming video sites do, it’d have very few viewers, due to the number of hiccups, false starts, glitches and system crashes they’d encounter while trying to watch their favorite programs.
In this article, we examine how streaming video technology works, in hopes of explaining why it sometimes doesn’t. In the end, we hope to give you the means to avoid some of the common pitfalls that streaming video producers must face.
Packets and Routes
Before we attempt to launch into a discussion about streaming video, it may be helpful to cover just a couple of basics about how the Internet operates.
Basically, the Internet is a way to connect your computer to other computers around the world, in order to share information in the form of e-mail, Web pages, music, video, pictures, etc. The connection to other computers is not a direct connection, however; before your information can reach other people’s machines, it must make a series of jumps from computer to computer as it traces a successful route. Packet servers, the big, powerful computers that form the backbone of the Internet, transmit information along in the form of distinct packets of data.
Furthermore, each packet you send over the Internet has the potential to take an entirely different route (i.e., jump through a different series of computers) than the packets that come before and after it . This is a built-in design feature of the Internet that allows information to flow around heavy traffic areas and broken-down links in the chain. It works very well when downloading Web pages, where it doesn’t matter too much if the packets are mixed up, routed through a number of servers and arrive at different times. The various parts of a Web page do not need to arrive at your computer in any particular sequential or chronological order. Video is a different story however.
The preceding two concepts are crucial in understanding how streaming video works, as we’ll see shortly. It’s actually far more complex than that, but this simple view works for our purposes.
Following Protocol
Another important piece of the Internet puzzle is the language that the computers hooked up to one another use to communicate. This machine language, or protocol, must be standardized and efficient to the task at hand.
The protocol that’s ordinarily used to deliver Web content is the Hypertext Transfer Protocol (abbreviated HTTP). The Real Time Streaming Protocol (RTSP) specifically handles streaming video content. Both of these protocols can be used to deliver streaming video content; anyone who plans to develop streaming video content for the Web should understand the crucial differences between the two protocols, as this ultimately affects the way you encode your streaming videos.
Pseudo-Streaming
As stated above, programmers designed the HTTP protocol to deliver Web pages, not to serve streaming video. Nonetheless, it is one of the most common ways to deliver streaming video. HTTP requires that a Web server deliver Web pages and media, but these servers are ubiquitous on every ISP that offers Web access. RTSP also requires a server, but this server is a specialized streaming video server, and these tend to be rather expensive and not as common as Web servers. When you deliver streaming video via the HTTP protocol using a Web server, here’s what happens: you simply download the video the way you would a picture or any other file, but it plays on your computer as the download proceeds. They call this method progressive downloading or streaming. The main drawback to this kind of streaming is the simple fact that you must wait for the video to download completely before you can view the end of the movie. Unlike real-time streaming, you can’t jump ahead to different portions of the video clip you’re viewing; you have to wait for it to download first.
As progressive streaming is the least expensive approach, it’s the method that’s most often used by amateur videographers and allows video to be served directly from a Web site with no additional software. One example of progressive streaming is Apple’s QuickTime, which kick-starts your browser and starts playing a progressive-streaming clip before it has completely downloaded. Although it was not designed with streaming in mind, even the venerable MPEG-1 format can be coaxed to progressively stream with many software players. In both situations, random access of the video is not possible and if you want to watch the last second of the video you will need to download the entire file.
The Real Thing
Real streaming video, on the other hand, is most often used by producers and distributors with deeper pockets, since it requires a special software server. A streaming server is a specialized piece of software that controls the actual streaming of the video, often adjusting the data rate on the fly to compensate for the vagaries of the Internet. It lets viewers jump ahead to later portions of a clip, skipping entire portions without downloading them. Streaming video files can remain on the server, so no matter how long they are, you don’t have to worry about it taking up your hard drive space (although the files can sometimes be found in your Internet Temp directory). This can also work as a theft-prevention and redistribution security tool.
You probably won’t purchase and install a streaming server yourself. Most ISPs will not allow you to install a server on their computer – at least not for free. A number of companies will rent you space on their streaming video servers for a flat fee or based on volume. There are also a half-dozen or so companies (see Free for All sidebar) that will give you space on their server for free or at a very low cost. These companies generate revenue either from advertisements or by only offering limited services for free (file size/volume limitations). Although you generally cannot construct your own Web pages with embedded streaming media, free is free.
Better than Sliced Bread?
A common misconception is that streaming video is of superior quality to progressive streaming. In fact, the opposite is true; because progressively streamed video plays off the user’s hard drive, the quality is only limited by how long you want to make your viewers wait to download the streaming video clip. With true streaming, however, the quality varies widely with connection speed and the amount of congestion currently clogging up the Internet. As you view a streamed video, you may notice the picture breaking up now and then faces fall into horrific little pieces, and landscapes suddenly turn into a broken mosaic that breaks apart in front of your eyes. All very amusing, but not the desired effect, to be sure. Remember those packets and routes we discussed? You can see the effects of that technological wonder at work as you watch your real-time streamed video clips fall apart when Internet congestion increases. (One solution for viewers: watch your real-time streaming videos at night, when Internet traffic is at a lull.)
Ready for the Future
As more and more Internet users gain access to high-speed broadband DSL and cable modems, many of the problems with streaming video will begin to disappear . Also helpful will be the ongoing upgrade of the main Internet backbone itself more packet servers, faster connections between them, etc. For now, however, we must make do with the tools we have.
If you’re like us, you won’t want to wait for the future; you want to stream video on your Web page today. If this is the case, keep these ideas in mind:
The easiest way to stream video is simply to post your video to your web page. If you do so, be sure to encode for progressive streaming.
- Keep your videos short.
- Keep the resolution low.
- Reduce the frame rate (to 15fps or less).
- Compress, compress, compress.
Once you’ve posted your videos, drop us a line, and send us a URL so we can see the fruits of your labors. Good luck to you all, and happy streaming.