Using the Quicktime libraries in Windows results in massive color shifts, etc due to Apple’s color managing the file based on display profiles. I know this because I have spoken (at length) to Apple engineers on the subject. I don’t want the color management as I deal with so much of that already (linear exr -> log -> OCIO CCC file -> display LUT in rec709 -> convert to sRGB for sRGB based display -> rec709 based AVID DNXHD codec or sRGB based PhotoJPG Quicktime)
Yes, it’s a quagmire but with time and effort this an be easily made into a reproduce-able system. Nuke is used for all the color transformations but then FFMPEG saves the day for Quicktime generation. This is tested on Linux and Windows and works the same on both platforms.
However there are ways out of this problem and one solution is here. FFMPEG.
There are some command line parameters that are a bit…esoteric, so I will give the true command line parameters that actually work.
If you want to create a photojpg mov file:
This will convert to the photojpeg format and start you at frame 1376. This start_number parameter is important otherwise ffmpeg will assume frame 0-4 which will probably not be right. Note the qscale parameter. This is a number from 1-31 where 1 is 100% quality. I am not sure how the 31 comes into play but for the quality we want (“High” on the QT panel…approx 75% quality) 8 seems to be good.
<p>ffmpeg -start_number 1376 -f image2 -r 23.98 -i /path/to/file.%04d.jpg -vcodec mjpeg -qscale 8 /path/to/output.mov</p>
Oh, and for all of you who need to deal with editorial quicktimes, there is a way to export Avid DNXHD from ffmpeg:
This will convert to the DNXHD codec using a 115mbit rate @ 23.976 fps. Yes you can specify the -r (frame rate) for the photojpg also.
<p>ffmpeg -start_number 1376 -f image2 -r 23.98 -i /path/to/file.%04d.jpg -vcodec dnxhd -s 1920x1080 -b 115M -minrate 115M -maxrate 115M -r 23.976 /path/to/output.mov</p>
Want to make Prores files? This setting does Prores standard quality. For high quality set the profile to 3
<p>ffmpeg -start_number 1376 -f image2 -r 23.98 -i /path/to/file.%04d.jpg -codec:v prores -profile:v 2 -r 23.976 /path/to/output.mov</p>
you need to use : -f image2 -r 23.98 before you give the input sequence. This tells ffmpeg that the input sequence is 23.98 (or 24 or whatever you want) so that it doesn’t drop frames on you. It assumes 25fps so be careful!!!!
Shout out to Joseph Perenia who helped dev out this set of output variables.