Written by Julian Pössnicker on April 2021
In past years I had a few projects which incorporated the Academy Color Encoding System (ACES) workflow. One of the big advantages in working with ACES is the possibility to export to many different formats such as HDR formats like PQ (ST2084) and bt.2020 color gamut. This is cool but I did not know any way to upload HDR videos to YouTube. After my research, I figured a possible workflow. In the following part, I am going to describe a possible workflow for uploading HDR videos to YouTube. When your video is properly rendered in HDR you can jump straight to chapter 3.
YouTube is an online video platform that accepts both SDR and HDR content. SDR stands for standard dynamic range. The most common SDR standard is the BT.709 standard which is used for most videos on the web. HDR stands for high dynamic range and common HDR standards is HLG (Hybrid Log-Gamma) which is used for HDR live broadcasting and can be directly recorded by a few cameras. Another common HDR standard is SMPTE ST-2084 Perceptual Quantizer (PQ) with BT.2020 colors. Both standards are supported by YouTube, but they function a bit differently. So, it is especially important to know in which standard you are working in.
For example, in DaVinci Resolve`s Color Management Settings, you can choose the desired output format. As you can see in the following picture, when you are working with ACES you can choose many “Output Device Transforms”. Such outputs can be also set with the DaVinci Color Management.
For YouTube, the HDR formats Rec.2020 ST2084 and Rec.2020 HLG are suitable for HDR delivery.
When the video is rendered in a Quicktime format such as DNX-HR in DaVinci Resolve the needed metadata is available. But the file sizes can be too big for upload and the metadata can be lost or changed when you render or convert your video with Adobe`s media encoder. The metadata tells YouTube in which format the video is mastered. When the metadata is wrong, the video will probably look wrong. So, a way is needed to convert to a YouTube-friendly and compressed format that saves the right metadata.
YouTube uses the so-called vp9 codec for 4K video. Vp9 encoded videos can be uploaded and displayed with 10bits per color channel on YouTube which is very important for HDR video. Also, the codec is much smaller than other 10bit codecs such as ProRes 422 or DNX-HR. Sadly, that vp9 is not an option in the render settings in DaVinci Resolve or the Media Encoder.
But there is always a way.
The FFmpeg converter can convert to vp9. It is not a conventional UI-converter such as the Media Encoder, but it is more powerful. Using it is not that difficult, but it is on the first try very unconventional to use. Because of that, I describe the workflow step by step.
“-b:v 100M” means a bitrate of a 100mbit/s. When you change it to “-b:v 50M” the video will be having 50mbit/s. Easy!
“-pix_fmt yuv420p10le” tells ffmpeg to convert the video to the YUV 10bit with 4:2:0 color subsampling pixel format. This is perfect for a delivery.
“-color_primaries 9” sets the color gamut to the bt.2020 standard
“-color_trc 16” sets the transfer curve to ST2084 PQ. If you choose HLG as the output format change the number to 18. This is particularly important because PQ and HLG are quite different and wrong metadata can lead to an unwanted result
“-color_trc 16” sets the matrix-coefficients to the bt.2020 space
“-color_range 1 -profile:v 2” these sets the right color range and profile
“-vcodec libvpx-vp9 -c:a libopus -b:a 384k” sets the video codec to vp9 and the audio codec to opus with 384kbit/s
“output.webm” define the output name. You can change the name to any name you want but “.webm” is important.
Settings as resolution, framerate, or sample rate are copied from the input video.
ACES DaVinci Resolve Der Kelch des Pius HDR High Dynmaic Range HLG Metadata PQ YouTube