Monday, February 8, 2010

Making a DCP, post 4

Today I got to watch my latest DCP of The Incident at Tower 37 in its entirety at the theater! 5.1 surround! Crisp and clear picture! The only problem is, it looked like this:

instead of like this:

You just can't have a movie about water where all the water is orange/brown.

So what the heck went wrong?

My current image transformation pipeline is as follows:

QuickTime movie -> PNG files (by way of mplayer)
PNG files -> 12 bit per pixel, color corrected TIFF files (by way of Imagemagick's convert)
TIFF files -> JPEG-2000 files (by way of image_to_j2k, courtesy of openjpeg)

Step one of figuring out this problem: isolate the place where it appears. Luckily, my test from last week looked great, so I have an example of a working set of images to compare with the broken set. As it turns out, my original PNG files are messed up. I can't believe it. I generated over 15,000 PNG files and never actually looked at one of them to confirm that they were right. Rookie move.

The good news? The rest of the pipeline worked great 'cause my bad-looking PNGs (with the brown water) made it all the way into bad-looking JPEG-2000s on the theater screen. Half full, baby!

So let's dig into the PNG making process. It hasn't changed since I made the working test. In other words, my mplayer line is the exact same as the mplayer line I used for the test. So the problem is likely further upstream.

What did change? The source material. The excerpt I tested on last week was a QuickTime movie I made by trimming a final version of the film using QuickTime Pro on a Mac. I trimmed it, then saved it out, flat. Aha. This could be the problem. The QuickTime file I used for the full version had a number of video tracks on it (since I added color bars within QT Pro). Perhaps mplayer didn't know which stream to use, or it somehow misinterpreted the stream itself?

Oh now I have fallen into the rabbit hole. I get different results from mplayer's PNG exporter based on what frame I start with, on what kind of PNG compression I set, and more! It appears to be completely unreliable, at least with my multi-layered QuickTime source file. I'm going to take a suggestion I was given online and check out ffmpeg as an option to create the PNGs, and I'm also going to be cleaner from the outset and make a flat QT source movie with only one video channel.

More to come. Having to export and re-convert all these images again is going to force me to finally distribute this process to our cluster. I can't stand having days pass between tests!

1 comment: