Quicktime X
After awaking from the enormously boring keynote this morning I actually headed over to the Snow Leopard page that apple put up and what do my weary eyes see? Quicktime X. It really does seem that Snow Leopard is the OSX version that OSX should have been from the beginning - 8 years after its introduction. Yes we got a ton cool interface features in the past years, some great functionality and stuff - but OSX lacked speed right from the beginning and never quite recovered (I still think my Titanium Powerbook running OS9 was way way faster (in everyday use that is - of course not rendering) then the current top of the crop Powerbook running Leopard). Then also it seemed that some very important core components have been left out of the development cycle all together just fixing them up to run on OSX and the modern computers but still the behind seemed to carry so much baggage and if you went a bit deeper then a normal user would you felt this baggage dragging you down into the muddy bottom of the ugly code sea.
Two of these components - for me at least - are so essential for my work and everyday normal use that sometimes I was questioning the sanity of the OSX developers for overseeing these components so long. Its the much hated Finder and even more importantly Quicktime.
Now last year they announced an "all new Finder" and everyone was filled with joy - yet what we got was a great new interface for the finder - that still lacks the spacial OS9 Finders quality - but definitely got visually/interface wise on the right track - yet the core of it seemed to be the same old and the Finder is still sometimes idling with 50% processor use now and then (that is me doing nothing and the finder using 50% processor for doing nothing or so it seems - that is happening daily and I witness that even on an 8 core mac not only on the Powerbook -> MacBookPro). So I really really do hope the Finder get new underlying code for SnowLeopard but thats not the topic of this post - the topic is Quicktime.
Now Quicktime is a GREAT tool in itself. Lets split out what Quicktime actually is.
What a normal user normally sees as "Quicktime" is the the Quicktime Player - that is just a fancy front end to the underlying core technology called Quicktime - this technology is capable of producing and playing Quicktime containers - and a dozen and some other Media enclosing container formats - such as MPEG1,2 or 4 (video or audio) but also picture files (go ahead and see for yourself how you can open a JPG with Quicktime Player). Hence quicktime is pretty much responsible to display something or create something whenever there is an audio, video or picture involved on OSX. In this day and age where "MultiMedia" is something people need as much as oxygen (ok I am exaggerating for dramatic reasons here) Quicktime is the Oxygen mask to make you survive in the toxic environment that is riddled with format wars and thousands of different formats.
Quicktime - through extensibility - is one of the best technologies out there because it simply can play such a HUGE range of formats right out of the box - going back to play videos created in 1990 (yes I have one and it still plays). The codecs support (codecs are algorythms that compress video or audio to smaller sizes) is tremendous and it includes every codec ever delivered on Quicktime itself. Yet as we know with windows - backward compatibility comes with a price. Making upgrades without breaking stuff becomes harder and Quicktime has felt this. I would venture to say that Quicktime has not seen a significant update since 1999. I am not sure as I am not a developer but I would say that raw multiprocessor support was built in back then already (for two threads that is). The only update since then worth mentioning is Javascript support slapped on so you could actually interact with Quicktime films through webpages - if you have used this feature you know why Apple is not trumpeting it more on its front page.
Now what is missing? Why am I so happy to see that Quicktime gets the full overhaul?
1. True multiprocessor support.
Video encoding is the single most CPU intensive task beeing done by more then one community (only trumpeted by the Scientific Community with its hardcore calculations and the 3d community by its rendering tasks). As it stands it seems some codecs are capable of more then two threads but most Quicktime tasks are tied to two threads and that is unbelievable.
2. Bugs, crashes, bugs, slowness. Demandingly working with quicktime (meaning opening and rendering 100 videos or 2 hours videos or 2 hour enhanced podcasts etc) you can just wait for spinning beachballs outright crashes, files that stop at two gig when rendered over network and outright causing kernelpanics (try opening 600 movies in QT player (yes that is something I do have to do at times)).
3. The web...
Apples neglect has most cetainly cost them a huge opportunity to overtake the online video deliver market - now completly dominated by Flash - which is about the worst container for video performance wise. You know right after the browser wars in the mid to end 1990s you had the media wars which where basically fought between Apple with Quicktime, Microsoft with Windows Media and Real with Real media. There was no clear winner but then everything changed. Real - the clear front runner completely fall back with having not enough resources to throw out for free services without overloading them with ads - which turned off a lot of people, Windows Media also somehow lost contact with Microsoft concentrating on Windows Vista and Apple clearly had an opening but blew it because Quicktime on the web sucked bad, the quicktime plugin just used soo much resources - still out of this race Apple came out on top (supported by the success of the iPod and the improved installed user base of Quicktime as a result) but somewhere in between Flash added video capabilities (based on the old sorenson codec apple used to push 4 years earlier). The thing it what gave flash video tracktion was the installed user base which has always been much higher then any other plug in. Then came YouTube and embraced FlashVideo and the battle seemed over. Then Adobe bought Macromedia and included MPG4 (baseline) and shortly later MPG4 (h.264) into Flash - making Flash a pure player application rather then a container format. Apple in the meantime has grown the installed user base through iPod and more importantly the iPhone - which does NOT include flash (for a reason I will tell you) yet.
Thing that was problematic for apple with quicktime on the web was not even quicktime itself so much but rather the lack of information of how to embed quicktime and how to make pages without Javascript that donīt load the whole movie itself before the user is clicking on the play button (that still has not been ironed out yet btw). And a customizable player interface (that is rather halfheartedly ironed out through Javascript which sometimes even works).
These are the most important things Apple needs to adress to make me a satisfied customer when it comes to Quicktime. There are probably more things - mostly relating to
Now Apple has one absolutely tremendous asset to actually turn around things and that is the iPhone. The phone is set to become the defacto standard to browse the web on the go (and if you have used one ever you know what I am talking about). Apple has not included flash in the first gen iPhones and while I believe that speed was a concern (the one they put out officially as the reason they didnīt support flash) as this can be witnessed by much faster Laptop computers spinning their fans with two youtube videos open - I still think the bigger picture is that they see the iPhone as the Quicktime on the web comeback device. Lets be clear - I actually have a lot of love for Quicktime as a container format - its so extensible it has great support for interactive media even outside its own container (I would argue that Quicktime is the only system that can play the MPG4 interactive spec as it is on paper) and the number and quality of codec is unrivaled - the encoding quality is maximum of what a codec can deliver and the usage is easy as pie even for more complex stuff. So Quicktime on the web will have another shot and I truly believe I will see a Quicktime version of Youtube in my lifetime.
So Quicktime X has to clean up the underlying codebase (a rewrite comes close and has already started with Quicktime becoming a core component). It has to make this Javascript stuff work 100%. The latest iterations have been better all around but still when you are going outside safari it lags a bit. Especially if you want to make your own controller - to get a feedback from the plugin you have to sprinkle some serious voodoo and then it still fails at points (try scrolling through a window on apples site with apples controller - I mean stress test that scrolling - it will fail at one point or get sluggish or crash your browser or whatnot and that is the best implementation there is on the web - everything else I have seen is even worse).
And QTX has to be fast fast and as bug free as possible and utilize all threads and the graphic cards (maybe even with CUDA pretty please).
And QTX has to come with more authoring application. A QTXCode would make me dance. What for? Interactive content! Quicktime has great capabilities with QT VR, Tracks, Sprite support and whatnot to actually replace websites (yes you heard me right) the potential is tremendous - I tried that once and I loved the general idea but making it work with like walking barefoot on ice-spikes while your head is worked on with a flamethrower. Now the Javascript is there to make an interaktive quicktime (or MPG4!) interact with an HTML page. And while Quarz composer is great to make neat animations and interfaces it does not replace an actual timelined authoring tool.
So in general for me Quicktime X is the announcement of the day and I hold out big hope for it to become THE media plugin surpassing Adobe Flash in a heartbeat (and I believe they will have true vector support in Quicktime X too . it would make sense since OSX itself already has vector support throughout). And there is no problem with installed user-base as mentioned above - iTunes need Quicktime - iPod iPhone needs iTunes.