Here’s an except from my (Jan Ozer) new book, Video Compression for Flash, Apple Devices and HTML5.
It’s important to recognize that when you deliver video over the Internet, you have multiple options, including streaming, progressive download and adaptive streaming. Note that the mode you choose may have a significant impact on how you produce your files.
Experientially, the concept of streaming means that when a viewer clicks the button on a website, the video starts playing immediately, and it continues to play more or less smoothly to the end. To make this happen, the data rate of the encoded file must be smaller than the bandwidth capacity of the remote viewer; otherwise, the video will frequently stop playing.
That’s the experiential definition of “streaming.” The technical definition of “streaming video” is video delivered via a streaming server, which is a software program that’s charged solely with delivering streaming media. This is in contrast with a traditional web server that runs all websites, and delivers all forms of web content, including HTML text, JPEG and GIF images, PDF files, and the like.
If you’re producing for a streaming server, understand that some servers have specific requirements for the streaming files that they deliver; for example, files delivered via the Apple streaming server must be “hinted” for streaming, which is a option available on most encoding programs that produce QuickTime video. In addition, some producers prefer to encode streaming video via constant bit rate (CBR) encoding, which I’ll define in the next chapter.
So when producing files for delivery via streaming, you should:
- Encode at a data rate that’s comfortably below the connection bandwidth of most target viewers
- Identify any specific requirements for files distributed via the streaming server
- Consider encoding using CBR data rate control.
The technical definition of “progressive download” is video delivered by a regular HTTP web server rather than a streaming server. In most instances, video delivered using this technique is stored on the viewer’s hard drive as it’s received, and then it’s played from the hard drive. In contrast, streaming video is usually not stored (also called cached) locally, so if the viewer can’t retrieve and play it in real time, he or she can’t play it smoothly at all.
Experientially, most files delivered via progressive download seem like streaming in that they begin to play once you click the button, and they continue smoothly until the end. For example, YouTube, ESPN and CNN all deliver without a streaming server. However, when delivering via progressive download, you can encode at higher rates than you could when delivering via streaming, because even if the data rate exceeds the viewer’s connection bandwidth, ultimately, it will reside on the viewer’s hard drive, from which it will play smoothly.
Note that one of the key reasons that producers use streaming servers is because once video is stored (or cached) on a hard drive, it’s very easy to copy. Streaming video can be cache-less, which makes it inherently more secure.
Again, as with files produced for streaming, note that some progressive download technologies also have specific requirements. For example, files delivered to the QuickTime Player must be encoded with the Fast Start option selected, while H.264 files distributed to the Flash Player must have the MOOV atom located at the start of the bit stream. Otherwise, using both technologies, the entire file must download before it starts playing. I talk more about both of these options in Chapter 5.
Finally, most producers who deliver via progressive download produce their files using variable bit rate (VBR) techniques, which I’ll also define next chapter, since it delivers the optimum blend of file size and quality.
To summarize, when producing for delivery via progressive download, you should
- Choose a data rate that strikes a good balance between quality and waiting time
- Adhere to any technology-specific requirements for progressive delivery
- Consider encoding your files using VBR data rate control.
Adaptive streaming technologies encode multiple live or on-demand streams and switch them adaptively based upon changing line conditions and other variables. When the connection is good, the viewer gets a high-quality, high-data-rate stream, but if connection speed drops, the server will send a lower-data-rate file to ensure a continuous connection, albeit at lower quality. Adaptive streaming provides the best of all possible worlds: great quality-video for those with the connection speed to retrieve it (and the CPU required to play it back), and a passable-quality stream for those with Wi-Fi, mobile or other slow connections on lower-power devices.
There are multiple adaptive streaming alternatives today, including Adobe’s Dynamic Streaming, Apple’s HTTP Live Streaming and Microsoft’s Smooth Streaming. Chapter 7 provides more details regarding the various adaptive streaming technologies, and describes the optimal procedures for encoding for each technology.
Excerpted with permission from the publisher, Doceo Publishing, from Video Compression for Flash, Apple Devices and HTML5, by Jan Ozer. Copyright © 2011 by Jan Ozer.