Corrections

First Edition

Second Edition

Third Edition


Corrections to the Third Edition

The corrections immediately below are to errors in the third edition.
Scroll down or click this link to read corrections to the second edition or corrections to the first edition.

Missing File (PlayMovie.html)

On page 28, the book refers to a simple HTML file named "PlayMovie.html" in the Italy1 folder, inside the Projects folder on the CD. For no very good reason, the file isn't there!

My apologies. You can get it at:
http://homepage.mac.com/qt4web/QTBooks/PlayMovie.html.
Enjoy.

Similarly, the files "tiny.mov," "tiny.pntg," and "tiny.qtif" are not in the "Italy1" folder. Fortunately, copies of these files can be found in the "Bustamov" folder on the CD (in the "Examples" folder).


Poster-Movie-Poster Redux

Chapter 5, "Special Delivery," describes a technique for creating a poster/movie combination, so that clicking the poster runs a movie that turns back into a poster when it's done.

The movies and some supporting HTML were corrupted when they were transferred to the CD, so they don't all work properly.

For a correct explanation and a working demonstration, click here.


SMIL Clips

Chapter 18, "SMIL for the Camera," describes the begin-clip tag on page 591. Unfortunately, it should describe the clip-begin tag. I got it backwards.

It might have been helpful to show the usage as well. So here:

<video src="some.mov" region="movieregion"
    clip-begin = "npt=0:04"
    clip-end = "npt=1:01"
/>

The example above plays a clip from the movie "some.mov", starting 4 seconds into the movie and ending 1 minute and 1 second into the movie. You can specify a clip-begin without specifying a clip-end. Note that the time stamp has a different format than other SMIL attributes or QuickTime parameters, and requires the label "npt=" to identify the type of timestamp.


URL Targets and QuickTime Player

The book says, or at least implies, that you can target a URL to a specific browser frame (or browser window) from QuickTime Player. This is incorrect; you can target a browser window or frame only from the QuickTime plug-in (or ActiveX control).

When a URL is activated in QuickTime Player, the URL is normally sent to the default application on the user's computer for that file type and/or protocol. For example, the URL of a local text file is usually sent to a text editor, but the URL of a remote text file on an HTTP server is usually sent to a browser.

Generally speaking, movie URLs are opened in QuickTime Player, regardless of protocol; RTSP URLs are also opened in QuickTime Player; URLs with other remote protocols are opened in the default browser; local files are opened in the default application for that file type on the user's computer.

These default behaviors can be overriden by setting the TARGET parameter.

There are three targets that have meaning to QuickTime Player: myself, quicktimeplayer, and webbrowser.

If the target is set to myself, the URL replaces the current movie. This overrides file type and protocol defaults.

If the target is set to quicktimeplayer, the URL either replaces the current movie or opens in a new player window, depending on the user's preferences. This also overrides file type and protocol defaults.

If the target is set to webbrowser, the URL is sent to the default browser.

Note: This may launch the browser or cause the browser to create a new window. Subsequent URLs directed to the browser generally open in the same window as the first URL, but this may vary by browser.

Bug alert: Currently, the webbrowser target works only for URLs that specify a remote protocol, such HTTP. You cannot direct a local movie file or a local text file, for example, to open in a browser using the TARGET parameter in QuickTime Player. Some local files, such as HTML pages, open in a browser by default, but this may vary with the user's system settings.


QuickTime 6.5 and 6.5.1 Released

The book refers to QuickTime 6.2 as the latest version for Mac OS X, QuickTime 6.1 as the latest version for Windows, and 6.02 as the latest version for Mac Classic. This is no longer accurate. See the Updates page for more information.


Corrections to the Second Edition

The corrections immediately below are to errors in the second edition.
Scroll down or click this link to read corrections to the first edition.

Mac OS X

If you are running Mac OS X you do not need to install QuickTime from the CD. You already have a newer version of QuickTime installed.

If you attempt to run the QuickTime Installer on the CD, it will launch Classic and attempt to update the OS 9 version of QuickTime. This should do no harm, but it is not recommended.

You do need to register the name and number from your CD to unlock the Pro features of QuickTime for OS X.

To register QuickTime Pro for OS X, do one of the following:

  1. In the Apple Menu, choose System Preferences... (or click the System Preferences icon in the dock-- it looks like light-switch by the Apple logo)
  2. Click QuickTime (blue Q)
  3. Click Registration... (button at bottom right)
Alternately,
  1. Click the QuickTime Player icon in the dock (TV with Blue Q)
  2. In the QuickTime Player menu, choose Preferences > Registration...
In any case, continue by clicking the Edit Registration button.

Fill out the first field, "Registered to:", with the name from the card in the back of the book, for example,

Registered to: MPK5 QTWeb XXXXX

IMPORTANT:
If the "Registered to:" field does not have the format
MKP5 QTWeb XXXXX (where XXXXX is a five-digit number) you have a misprinted card. Use the field with the format MKP5 QTWeb XXXX (usually the third field on misprinted cards).

Enter the number for Macintosh in the "Number:" field, as illustrated below.

Number: XXXX-XXXX-XXXX-XXXX-XXXX

Click OK

If you get an error message, check your entries. Some things to watch out for:

  • Capitalization. The entries are case-sensitive.
  • There is a space before and after "QTWeb".
  • Make sure there are no spaces at the beginning or end of any entry.
  • The hyphens between groups are required.
  • The font on the cards makes it easy to confuse the number eight
  • with the letter B, or the number one with the letter I.

Misprinted Registration Cards

If you have trouble trying to register QuickTime 5 Pro using the card in the CD-ROM packet, it may be the result of a printing error on some of the cards. Don't panic, this is easy to fix.

On the card are three fields--"Register to," "Number" (for Macintosh), and "Number" (for Windows). Each field contains a sequence of numbers and letters. In the misprinted cards, the "Register to" sequence is switched with the "Number" sequence for Windows.

During registration, you are asked to enter a sequence in the "Registered to" field. The sequence should look something like this:
MKP5 QTWeb XXXXX

On the misprinted cards, this sequence appears in the third field. Be sure to enter the exact sequence, including spaces and upper or lowercase letters.

You can put anything you want in the "Organization" field, or leave it blank.

You are then asked to enter a "Registration Number". This sequence is 20 characters long and separated by hyphens. It looks something like this:
P8AA-R2GR-P48A-AM2Q-XXXX

If you are installing the Windows version, enter the sequence that appears in the first field of the card. If you are installing the Macintosh version, enter the sequence that appears in the second field.

Be sure to enter the exact sequence, including hyphens and upper or lowercase letters.




Corrections to the First Edition

The corrections below are to errors in the first edition. These corrections have already been incorporated in the second edition. If you have the second edition, you may ignore the rest of this page.

QTNEXT and GOTO

The sample code in chapter 5 that shows how to use GOTOn in a QTNEXT sequence uses the wrong syntax. Don't put angle brackets around the GOTO statement.

Right:
QTNEXT1="<First.mov> T<myself>"
QTNEXT2="<Second.mov> T<myself>"
QTNEXT3="GOTO0"

Wrong:
QTNEXT1="<First.mov> T<myself>"
QTNEXT2="<Second.mov> T<myself>"
QTNEXT3="<GOTO0>"


Linking Streams to QuickTime Player

On page 381 (1st printing) or page 383 (2nd printing) this bad code appears:

< EMBED SRC="Launch.mov" HEIGHT=320 WIDTH=240
CONTROLLER="False" AUTOSTART="True"
QTNEXT1="rtsp://server.domain.com/Streaming.mov"
TARGET="quicktimeplayer" >

Bad code! Down, boy!

In the first place, it's AUTOPLAY, not AUTOSTART.
In the second place, TARGET doesn't work with QTNEXT.
Here are two ways to open a stream in QuickTime Player from a Web page--without asking the viewer to click anything--that actually work:

< EMBED SRC="Launch.mov" HEIGHT=320 WIDTH=240
CONTROLLER="False" AUTOPLAY="True"
QTNEXT1="<rtsp://server.domain.com/Streaming.mov> T<quicktimeplayer>" >

(This technique embeds the target in the URL, so it works with QTNEXT. Be careful to get the quotes and angle-brackets right.)

< EMBED SRC="Launch.mov" HEIGHT=320 WIDTH=240
CONTROLLER="False" AUTOPLAY="True"
HREF="rtsp://server.domain.com/Streaming.mov"
TARGET="quicktimeplayer" AUTOHREF="True" >

(This technique uses AUTOHREF to launch the stream immediately, instead of at the end of Launch.mov You can leave out the AUTOPLAY if Launch.mov is just an image. TARGET works fine with HREF.)


SMIL When You Say That

Chapter 18, "SMIL for the Camera," contains the following errors:
  • The <img /> media element is incorrectly shown as <image />. Use img, not image.
  • The endsync attribute is incorrectly shown as endsynch. There should be no "h" at the end.
  • The z-index attribute is incorrectly shown as z-axis. It's z-index, not z-axis.
  • It states that you can make a clickable link to another point in the SMIL timeline using qt:chapter and HREF. You can't. The qt:chapter attribute creates entries in a QuickTime chapter list that the user can access from a pop-up menu. They can't be targeted using HREF.

Furthermore, the endsync and repeat attributes are not supported in QuickTime 4.1.2, so they really shouldn't have been mentioned at all. (Me and my big mouth...)


Text and Targets

In Chapter 13, "Text! Text! Text!," the section on the {HREF:} text descriptor leaves out an important bit of syntax. If you include a target, the URL must be surrounded by angle brackets. In other words,

{HREF:http://www.apple.com} Apple {endHREF}
becomes:
{HREF:<http://www.apple.com> T<Target>} Apple {endHREF}

If you leave off the angle brackets, as I did in the code sample, the target parameter is treated as part of the URL. Oops.

You should also note that the {HREF: } element does not work reliably in scrolling text (as of QuickTime 4.1.2). It works in vertically-scrolling text on the Mac, but not in horizontally-scrolling text, and not on Windows.


Poster-Movie-Poster

Chapter 5, "Special Delivery," describes a technique for creating a poster/movie combination, so that clicking the poster runs a movie that turns back into a poster when it's done.

This works, but only up to a point. The poster turns into a movie, which turns back into a poster. Unfortunately, clicking the poster a second time has no effect.

To make the process repeat as often as the user clicks the poster, you need to add an HREF Track to the movie (instead of using QTNEXT). For an explanation and a demonstration, click here.



Second Printing

All the corrections below this line have been incorporated in the second printing of the first edition. If you have the second printing of the first edition, you may ignore the rest of this page.

How do you know if you have the second printing?

You have the second printing of the first edition if the copyright page (page iv) includes:
Second printing August 2000



SMIL ('though your heart is breaking...)

Chapter 18, "SMIL for the Camera," discusses the REPEAT attribute.
QuickTime 4.1 does not yet support the REPEAT attribute in SMIL documents.
Oops. Sorry.


New Mouse, Extra Jam

The version of MouseJam's mousejamqt4.mov that was included on the CD is an old, unwashed version.
Download the new, wrinkle-free version at:
http://www.mousejam.com/bisset/bissetgroove.mov
or
http://www.mediachrome.com/mousejam/mousejamqt4.mov


Preventing Hijacking with SRC and QTSRC

Other plugins can hijack the .mov file type, preventing people from viewing QuickTime movies, even when QuickTime is installed. I recommend a solution in the book, but there is a better alternative.


The Old Solution

In the book, I recommend correcting this by setting the SRC parameter to a QuickTime Image File (.qti or .qtif file extension, MIME type "image/x-quicktime"), then passing the actual movie url in the QTSRC parameter.

The HTML looks like this:
<EMBED QTSRC="Actual.mov" HEIGHT="yyy" WIDTH="xxx"
      SRC="UNeedQT4.qtif" TYPE="image/x-quicktime"
      PLUGINSPAGE="http://www.apple.com/quicktime/download/" >

This does prevent hijacking, because other plugins don't take over .qtif files. People with QuickTime 4 or later see the movie, not the image.

BUT, your Web server must have the .qti and .qtif file extensions mapped to the MIME type "image/x-quicktime" for this to work, and the file UNeedQT4.qtif must actually exist on the server.

AND, unfortunately, people with earler versions of QuickTime see a broken plugin icon instead of the QTIF image. QuickTime 3 (and 2.5) can display QTIF files, but prior to QuickTime 4 the plugin didn't advertise the MIME type. If you have QuickTime 3, your browser is configured to use PictureViewer for .qtif files, not the QuickTime plugin. The EMBED tag is not compatible with helper apps, only with plugins, so the .qtif image does not display.

Again, this technique does prevent hijacking, and with QuickTime 4 or later all is well, but people with earlier versions of QuickTime see a broken plugin icon, not a nice image telling them where to get the latest version of QuickTime.


The New Solution

There is an alternate approach you can take that works with older versions of QuickTime. Instead of passing a QTIF file in the SRC parameter, pass a MacPaint image (file extension .pntg, MIME type "image/x-macpaint"). Don't laugh, this actually works.

The HTML looks like this:
<EMBED QTSRC="Actual.mov" HEIGHT="yyy" WIDTH="xxx"
      SRC="UNeedQT4.pntg" TYPE="image/x-macpaint"
      PLUGINSPAGE="http://www.apple.com/quicktime/download/" >

This approach also prevents hijacking, and people with QuickTime 3 see an image telling them they need to upgrade, rather than a broken plugin icon.

Important: Your Web server MUST be configured to associate the .pntg file extension with the MIME type "image/x-macpaint" or it won't work.

Yes, it works on Windows. No, the viewer doesn't need MacPaint (and neither do you). You just need an image in MacPaint format. You can convert a black-and-white bitmap image into MacPaint format using PictureViewer.

Bear in mind that only people with QuickTime 3 will see the image. People with QuickTime 4 or later will never see it -- they see the movie instead.

Note: If you want to make your own image, start with a program such as Photoshop. The image size must be exactly 576 x 720 pixels (W x H). It must be black and white (not grayscale). The part of the image you want people to see must be centered. If your desired image size is 180 x 120 pixels, for example, put an image that size in the center of a 576 x 720 field. Save it as a bitmap image. Convert it to MacPaint format using PictureViewer (included with QuickTime Pro).


Duke, Duke, Duke, Duke of URL, URL, URL

Here's a critical bit of information that got left out of the book-- when you specify a url in the HREF or QTNEXT parameter of the EMBED tag, it's relative to the currently-loaded movie, not relative to the current HTML page. If the page is in a different directory than the movie, that's an important distinction.

Why does QuickTime do this? Because the browser doesn't always tell the plugin the url of the current page!

For the same reason, but somewhat surprisingly, if you use a relative url in the QTSRC parameter, it's relative to the url specified in the SRC parameter. And if you use a chain of QTNEXT statements, each url is relative to the previous one!

Of course, if all the movies are in the same directory as the Web page, the relative url is just the filename, and it always works. The same is true if the movies are in the same directory as the file specified in the SRC parameter-- the relative url is just the filename, and it works.

Short answer: If you use relative urls in the EMBED tag, put your movies in the same directory as the Web page that uses them. That way, there's no confusion about what the urls are relative to. It Just Works.


Tunnel of Fun

On page 580, the book refers to a movie named Tunnels.mov and the LiveStage project used to create it. Through an oversight, the movie and the project were left off the CD.

The movie contains multiple VR panoramas linked by transition movies. It also includes a VR object movie and some wired sprite actions (you have to find the object and pick it up before you can go through the closed door).

You can download the movie (2 MBytes) from this website. Sorry for the inconvenience.


Home | Updates | Table of Contents