Tuesday, August 21, 2012

Are QuickTime Text Tracks Dying?

Lately I've been seeing increased problems with QuickTime text tracks that are either embedded in QT movies or are called in externally via a QT SMIL file, both of which MovieCaptioner can create.

First I saw problems on the Windows side. QuickTime 7.7.2 for Windows simply will not read any QT Text file embedded into the movie. It seemed to choke somewhere on a font attribute and would only display something like "al}" (when Arial was selected as the font). The same problems were exhibited with QT SMIL captions, where the .qt.smi file would call in the movie and the QT text file to display them together. I found that removing QT 7.7.2 and reinstalling QT 7.7.1 fixed this problem. I reported this as a bug to Apple in May 2012. If you need to revert to QT 7.7.1, send me an email at synchrimedia@gmail.com and I'll get it to you. It seems to have disappeared from Apple's downloads page.

Most recently I've found an issue on the Mac side of things as well. With my brand new MacBook Pro with retina display I get some pretty bizarre results with QT Text files as well. This is with QuickTime 7.6.6, the latest version of QT for the Mac. I did some experimenting and found that it was the retina display that seems to be causing the issues. When I hook my laptop up to an external monitor, the captions display perfectly. But, as I drag that movie from my non-retina display to the retina display on my laptop, the QT text track suddenly shrinks to half its size and moves halfway up the movie instead of being below the movie as it displays on the non-retina display. Here is the captioned movie as displayed with a non-retina display:

movie with captions as displayed on a non-retina display monitor

Here is the same movie after sliding it horizontally to my laptop's retina display:

movie with captions as displayed on a retina display monitor

As the movie moves to the retina display, the QT text track suddenly shrinks to half its size and moves halfway up the movie window. Typically, though, after embedding the text track into the movie, the movie will obscure the text track behind it. I also tried adjusting the QT text file to change the width and it will suddenly jump to a huge width if I go larger than what it is (320 as set here).

It's a shame Apple doesn't do a better job of supporting their own technology. I'm afraid this may cause many headaches for people who have gone to a lot of trouble to make their videos accessible only to find that when viewed on a retina display, all their work is for naught. Does that mean they are suddenly non-compliant with captioning laws? I hope not, but it will raise questions from people who do not know that this is a bug between QuickTime and retina displays, which I'm sure will become more prevalent in the future.

Fortunately, I've found that embedding an XML file instead of a QT text track still seems to work for some reason. I will most likely switch from using the SMIL captions with QT text files to using XML instead. The XML files will still work perfectly, both embedded and in the SMIL files on the retina display. If you're using MovieCaptioner, this will be the second export option under the Export menu called "Embedded QT (Unicode)". This format has the advantage of being able to display many characters that regular QT text files cannot display, including Asian character sets. The only problem with the XML format is that it will not wrap text as QT text files do by default, so you'll have to make sure to add the "|" symbol to denote a hard line break in MovieCaptioner so that it will know where to put the line breaks in the final XML file. MovieCaptioner now has an auto line break feature under the Edit menu that will allow you to add line breaks automatically every so many characters. You can set that amount to anything that suits your movie. It will look for a space between words on or before that character limit.

So, look for a change in the next version of MovieCaptioner unless Apple does a quick fix for this problem. I will most likely drop support for QT text files in favor of XML.