Master Streaming with QuickTime 4

When it comes to streaming audio and video over the Internet, there are two approaches you can use: you can deliver files with the same old HTTP server that delivers your Web pages and graphics, or you can use a streaming technology that provides real-time streaming for more-reliable and more-flexible results.

The HTTP method is easy and inexpensive, since you don't need any special server software
(see ""Web: Watch This:Streaming Video on Your Web Site"," Create, April 1998). But HTTP streaming has significant drawbacks. Besides being less reliable, it doesn't permit seeking –if users try to fast-forward to a particular spot, playback stops until everything up to that point downloads. Also, HTTP can't do live Webcasting, so it's unsuitable for special events such as live concerts or speeches and for radio or TV stations that want to expand to the Internet.

Until recently, QuickTime was an HTTP-only medium. But with version 4, QuickTime joins RealNetworks' RealSystem G2 and Microsoft's Windows Media Technologies (formerly Netshow) in providing support for true, real-time streaming.

QuickTime 4 streaming has a lot going for it. You can use most of the same tools and techniques you've been using to create HTTP-streaming QuickTime movies. And talk about flexibility: streaming QuickTime movies play back in any program that supports conventional, nonstreaming QuickTime flicks. Therefore, you can embed streaming QuickTime movies in a Macromedia Director project, a Microsoft PowerPoint presentation, or even a Microsoft Word document.

Although QuickTime isn't the best product for all users (it can be much harder to use than RealSystem G2, and it lacks features that broadcasters and other professionals require; see the "QuickTime 4 Pro" review, elsewhere in this issue), it still has some advantages. It's inexpensive, making it well suited to educational institutions and budget-minded businesses. And because QuickTime streaming is part of the QuickTime architecture, you can do some slick things that you can't do with the competing products.

With this in mind, let's take a look at the QuickTime-streaming production process. Along the way, I'll pass along some production tips for both on-demand and live-event streaming.


I'm OS X, and I'll Be Your Server

You can create QuickTime 4 streaming movies on just about any Mac, but to serve the movies, you need a Power Mac G3 running Apple's $495 Mac OS X Server software. Mac OS X Server includes a program, QuickTime Streaming Server, that dishes out streaming QuickTime movies.

This Mac OS X Server foundation is both an asset and a liability. On the plus side, Mac OS X Server is built on a rock-solid Unix foundation, which makes it more resistant to crashes and gives it greater multitasking abilities than the Mac OS currently provides–both critical components for true streaming.

But Mac OS X Server isn't nearly as easy to use as Mac OS 8.X. You don't have to know anything about Unix to be able to serve QuickTime streaming content and manage your server, but you may have to wade into Mac OS X Server to get streaming working in the beginning.


Of Streams and Bits

It's common practice to provide several versions of a movie or audio clip, each compressed for a particular connection speed. Since version 3, QuickTime has supported multiple-data-rate movies, which enable you to accommodate various connection speeds without having to litter a Web page with multiple links (see ""Optimize Web Video for QuickTime 3"," Create, August 1998).

To recap briefly, when creating a multiple-data-rate movie, you have to make a separately compressed version for each connection speed and then create one reference movie that points to each version. Then you must link to or embed the reference movie in your Web page. To create reference movies, use either Apple's free MakeRefMovie utility (available from the Authoring area of the QuickTime Web site, at http://www.apple.com/quicktime/ ) or Terran Interactive's wonderful Media Cleaner Pro
( http://www.terran.com ).

These concepts apply to QuickTime streaming movies, too. But there's one additional step: after compressing the final movie, you must create a small pointer file that sets up the conversation between QuickTime Streaming Server and a user's computer (see "Create On-Demand Streaming Movies"). If you've worked with RealNetworks' technology, you're familiar with this concept–in the Real world, this file is called a metafile .


Let's Go Live

Being able to Webcast live streams is one of the best things about true, real-time streaming. QuickTime 4 delivers nicely, thanks to Sorenson Vision's $199 Broadcaster
( http://www.s-vision.com ). Broadcaster performs real-time encoding, compressing audio and video on the fly and then sending that single stream to a second Mac running Mac OS X Server and QuickTime Streaming Server (see "Broadcasting with Broadcaster").

That's right: you need two computers to do a live Webcast with QuickTime 4. One computer, running Broadcaster under Mac OS 8.X, does the real-time compression, while the other, running QuickTime Streaming Server, serves the streams. You'll almost certainly want to run Broadcaster on a G3-equipped Mac–in my tests, I successfully used a gray-haired Power Mac 7600 to live-encode a low-fidelity (voice-only) stream, but the computer was too slow to encode a stream of music.

What if you want to deliver multiple live streams for various connection speeds? You'll need multiple G3 Macs, each running a copy of Broadcaster that encodes for a different speed. Unlike RealNetworks' RealProducer G2 family of encoders, Broadcaster can't encode multiple streams simultaneously.

This multiple-Mac scenario sounds expensive, and indeed, it can be. But depending on your situation, it can still be less expensive than buying RealSystem G2 server software. For instance, the 100-stream RealSystem G2 server software costs $5,995. You can buy a few G3 Macs for that price–and be able to serve up to ten times the number of streams. For heavy-traffic live streaming, then, QuickTime's multiple-Mac requirement isn't a significant drawback. (For lighter-traffic scenarios, though, the scale tips in RealSystem G2's direction.)


Tuning Out

When you look closely at QuickTime 4 streaming, it's clear that Apple is behind the competition in key areas. But that doesn't mean that QuickTime is out of the running–far from it. It has some unique assets that other streaming technologies lack. I've already mentioned one: the ability to embed streaming QuickTime movies in any program that supports conventional QuickTime movies.

Another QuickTime advantage has to do with interactivity within movies. With tools such as Totally Hip Software's LiveStage ( http://www.totallyhip.com ) or Electrifier's Electrifier Pro
( http://www.electrifier.com ), you can create clickable buttons and hot spots within movies. With QuickTime 4, these so-called wired movies can also stream. RealSystem G2's support for the Synchronized Multimedia Integration Language (SMIL) also allows for powerful streaming interactivity, but SMIL is an HTML-like tagging language with a fairly steep learning curve. With QuickTime, if you're creating wired movies for other media, such as CD-ROMs, you can use the same tools and skills to create wired movies for streaming.

So although QuickTime streaming may not outstream the competition in every area, it still has a lot going for it and is the right choice for some applications. It's definitely a technology worth watching–and listening to.

Special thanks to Jim Baker of Compression Factory ( http://www.compressionfactory.com ) for his insights and recommendations. For samples of video and sound he has compressed, visit the Apple QuickTime Showcase page, at http://www.apple.com/quicktime/showcase/.

A contributor to Macworld since 1984, JIM HEID ( http://www.heidsite.com ) writes, lectures, and consults on Web multimedia technologies.

October 1999 page: 95

Create On-Demand Streaming Movies

Preparing movies for on-demand (as opposed to live ) streaming is a multistep process. First, you compress the movie to accommodate your target bandwidth. This step is identical to preparing a movie for HTTP streaming or even CD-ROM playback. In this phase, you also hint the movie, a process that adds streaming data used by QuickTime Streaming Server. You store the hinted movie in the default directory of QuickTime Streaming Server.

Finally, you create a pointer file, which sets up the dialogue between QuickTime Streaming Server and a user's QuickTime Player or browser plug-in. You stash this pointer file on your HTTP server and link to or embed the file in your Web page.

Here's how to perform each step, using Apple's QuickTime Player (if you'll do a lot of streaming, do yourself a favor and get Terran Interactive's Media Cleaner Pro 4, which streamlines many of these chores).

Sizing and Compressing

For movies containing a video track, one of your first steps involves deciding on a final movie size and frame rate. For streaming to 28.8-Kbps modems, a typical size is a tiny 128 by 96 pixels or a slightly better 160 by 120, with a lowly frame rate of 2 or 3 frames per second (fps). That won't exactly yield a dramatic movie experience, but hey, these are modems we're talking to. If your movie contains very little motion, you might try a 192-by-144 frame size and 4 to 6 fps. If you are talking to 56-Kbps modems, you might try a 176-by-144 or 192-by-144 frame size, with 4 to 6 fps. And for ISDN and better connections, you can bump the frame rate up to about 10 fps.

When specifying compression settings for both video and audio tracks, you must choose data rates carefully, so as not to exceed your target bandwidth. For example, to deliver a streaming movie to users with 28.8-Kbps modems, you will want to keep a movie's data rate to about 22 Kbps–this provides you some breathing room to allow for noisy connections. Consider a data rate of 12 Kbps to 14 Kbps for the video track and about 8 Kbps for the audio track.

You can use the Options button in the Export dialog box to specify data rates and frame rates by hand, but there's an even easier way. Apple has endowed QuickTime Player with a variety of presets for the most-common streaming scenarios. (These presets also add the hinting required for streaming.) The video settings use either the Sorenson Video or H.263 compressors, whereas the audio settings use the QDesign Music compressor for music or the Qualcomm PureVoice compressor for spoken audio.

Not everyone agrees with all of the settings choices that Apple made–for example, compression guru Jim Baker prefers the Sorenson Video compressor to the H.263 compressor Apple chose for several of the modem-oriented presets. Every compression scenario is unique, however, and Apple's presets are a good starting point for your own compression adventures.

To export a movie for QuickTime streaming, just open the movie in QuickTime Player and then choose Export from the File menu.

Create the Pointer File

Now you're ready to create the pointer file. This requires that you access the hinted movie through QuickTime Streaming Server, so be sure the server software is running. If you're running Mac OS 8.5 under Mac OS X Server, you can perform this step on the same computer that's running the server software. Or you can use any computer running QuickTime 4–including a Windows machine–as long as that computer has Internet or network access to the machine running QuickTime Streaming Server.

1. Choose Open URL from QuickTime Player's File menu.

2. Type the URL of your hinted movie (such as rtsp://yourserver/mymovie.h.mov ) and press return. QuickTime Player will connect to QuickTime Streaming Server and begin streaming the movie. Let the movie play for a few seconds if you like, and then click on QuickTime Player's stop button.

3. Choose Save As from the File menu. In the Save As dialog box, click on the Make Movie Self Contained button, name the movie, and click on Save. In doing so, you'll make a small (about 1K) movie that points to the hinted movie.

4. Copy this pointer file to your HTTP server (not to the machine running QuickTime Streaming Server), and then link to or embed the pointer file in your Web page.

Create Multiple-Data-Rate Movies

As mentioned in the main text, you can use a QuickTime reference movie to access separate versions of a movie for various connection speeds. After compressing and hinting each movie, copy them to the Mac running QuickTime Streaming Server. Next, create a pointer file for each movie, storing each pointer file in the same folder.

Finally, using Apple's free MakeRefMovie utility, assign each of the pointer files to its appropriate connection speed. Save the reference movie in the same folder as the pointer files, copy the whole shebang to your HTTP server, and link to or embed the reference movie in your Web page.

Subscribe to the Best of Macworld Newsletter

Comments