Why I Hate QuickTime (at this moment)

It’s The Hinting

Alright, that’s a bit extreme.  I hate Streaming QuickTime.  More specifically, I hate “hinting” files for a QuickTime streaming server.  QuickTime, or Apple, has left their streaming capabilities to die.  At the same time they have never completely embraced H264.  This combination of oversights has caused myriad headaches for me over the last year.

For anyone who doesn’t know, a “hinted” QuickTime file has a set of instructions at the head that the Server needs to stream the file.  Slightly more information here:

Hint Tracks

This all used to make sense back in the day.  You encoded a file in Sorenson 3 Pro, encoded the audio in QDesign Pro and the Encoding Software (Cleaner usually) hinted the file.  The QuickTime Server needed the hints to stream the file.  It couldn’t just be flattened, it had to be hinted.

At the same time, any Real or Windows Media file could stream from their respective servers.  No special “tracks” needed, no extra hassles.  QuickTime was, however, the big dog of the pack.  Clients wanted to stream QuickTime and there was no issue as long as it was easy to hint the files.

Enter H264

QuickTime was the first of the Formats to embrace H264.  Well…not so much embrace as “stick their toe in the water.”  They first included support for H264 baseline.  Later they moved up to Main Profile and even limited B frame support.  They also came out with an H264 encoder of quite limited scope.  And that’s where they stopped.

Meanwhile (within the last year) Adobe Flash and Silverlight have given over to H264, accepting the full profile for streaming and download playback.  They’re looking to the future and the future looks like H264.

Over the last few years many vendors have come out with H264 codecs.  At my fingertips (so to speak) I have Ateme, Main Concept, Nero, Sorenson and Apple H264 codecs.  Those first three are extremely powerful and configurable.  They’ve all been through the usual “shoot outs” and had a few years to show their strengths and weaknesses.

So What’s The Beef

Anyone starting to use Web Video today would probably not even consider QuickTime.  It’s only useful for editing in Final Cut and serving to iPhones.  Flash has taken over the world.  Microsoft is planning a coup with Silverlight.

But most of my clients have been with me since the Sorenson 3/QDesign days.  Their content is on huge CDNs and they’ve always streamed QuickTime.  Keeping up with the times, I’ve supplied H264 QuickTimes to them.  This all worked well at the beginning.  Some encoding software even licensed QuickTime to produce reasonable quality in a hinted H264 MOV.

But that was four or so years ago.  The QuickTime H264 codec has fallen to the rear.  I would prefer to use any of the others, and I do.  Leaving me with the final problem.

Hinting H264

Here are three embedded videos: Flash Trailer | Silverlight Trailer | QuickTime Trailer

You’ll need Flash 10, Silverlight 3 and QuickTime 7 to see them all.  The only interesting thing about them is (apart from the fact that this is a great movie!) that all of them are the same MP4 file.  It was encoded using Main Concept; 2 pass, main profile, B frames.

Even though this file will play in the QuickTime Player and Plugin, and even though it falls within the QuickTime spec for H264; it will not hint or even flatten.  My clients want this as an MOV.  Nothing else will do, forcing me to use a weaker codec with neutered settings in order to produce a file that is acceptable to QuickTime.

Solutions

I see three possible solutions to my headaches:

  • QuickTime updates their Streaming and loses the “hinting”
  • QuickTime opens up to the full capabilities of H264
  • My clients go over to Flash and/or Silverlight

I’ll leave you to decide which is more likely.

Speak to Me

OK, I don’t really hate QuickTime.  Just being sensationalistic!  I assume that many reading this are smarter than me.  If you have a good solution for hinting H264 as an MOV please let me know.  I’m always open to new ideas.