Friday, November 4, 2011

Nathan Vegdahl on Delivery and Intermediate Formats

You know, if you make features and (bless your little heart) are actually able to sell them, you're going to run into these issues at some point. How the heck do you deliver your movie?

Here's Nathan Vegdahl's notes to me:

"Just read your blog entry here:

"OpenEXR is great as an intermediate format but it's not really a delivery format. OpenEXR is intended for cases where you are still going to do further image processing on the content (e.g. compositing, color grading, etc.). But as a final delivery format it is quite excessive.

"A closer equivalent to ProRes would be h.264. In fact, if we look at the complete standard supports everything ProRes does and more. If you use only
intra-frame encoding then h.264 is a fine choice even for video editing, and you can do not only 4:2:0 and 4:2:2, but even 4:4:4 (i.e. full color information). In fact, h.264 can even be completely lossless(!).

"Unfortunately, most software only supports subsets of the larger standard, and so advanced features like lossless compression and 4:4:4 chroma are not widely supported (e.g. Apple's h.264 support does not handle lossless compression or 4:4:4 chroma). But even with just the baseline profile (which is supported freakin' everywhere), it can still make a decent delivery format. You just have to know what you're doing with the encoding parameters.

"Anyway, food for thought. If you'd like to know more about my encoding workflow, I would be happy to go more in-depth. I use ffmpeg to do all of my final delivery encoding, because it gives me precise control over the encoding process."

Drew: Boy, I wish h264 supported alpha channels.

"Technically it can, through use of an "auxiliary color channel". But decoders are allowed to ignore it in all of the profiles, so for all intents and purposes it is indeed unsupported.

"But if you really needed to, you could always encode a second video in 4:0:0 (a.k.a. grey-scale, which is also supported by h.264) that represents the alpha channel. Then in any decent compositing app you could re-merge the two streams. However, that's precisely the kind of situation where you would want to use OpenEXR anyway.

"IMO, neither ProRes nor h.264 should be used as intermediary formats for compositing. So I don't think it's a biggie that they don't support alpha channels, since that's not the stage of production they should be used for anyway. ProRes is an NLE codec, h.264 is a delivery format."

No comments: