Congratulations on finishing some major projects! To get archive-grade preservation, here is the quick and easy way:
- Open the project
- Go to the Export panel
- Click on the Lossless > FFV1 preset
- Click the Advanced button to open more options
- Change the Audio tab > Codec option to
- Click the Export File button
I realize that FFV1 is not what you requested. But it might be what you need.
The “Recommended Formats Statement” link refers to the Motion Pictures category of video. When the LOC says “Motion Picture”, they mean a literal theater-style movie that will be played back on a digital cinema playout server. The Digital Cinema Initiative (DCI) has extremely strict rules about the formats that digital movies can be in, and these rules are detailed in the Digital Cinema Package (DCP) specification. JPEG 2000 in an MXF OP1a file is part of the DCP spec. DCP is what ensures that a movie will play without problems in every theater in the world.
Due to the strictness of these rules, DCP is usually not a viable format for general usage. DCP supports only six resolutions, one of which is 2048x1080. 1920x1080 and 4K UHD are not supported. If your project does not use one of the six supported resolutions, it cannot be encoded into a legal DCP. DCP also supports six frame rates in 2K and three additional frame rates in 4K 3D. But many tools (including the Shotcut/FFmpeg tools that I’ll demonstrate in a moment) only support proper signaling for 24fps and 48fps. If your project is 25/30/50/60 FPS, the tools can’t create a legal DCP. It may be possible to create a high frame rate DCP using other tools like OpenDCP, but this only leads to the next problem…
A DCP is composed of six files… A JPEG 2000 image sequence in one MXF file, WAV audio in another MXF file, and then four XML metadata files. This is not something that is easily created, validated, stored, uploaded, or shared. Most media players cannot play a DCP, either.
DCP also may not provide you with a lossless archive, which would fail your primary objective. The DCP spec puts a hard limit of 250 Mbps as the max bitrate. JPEG 2000 provides two ways of encoding frames… using a CDF 9/7 lossy wavelet that can have the quality level configured by
-compression_level when using FFmpeg, or using a LGT 5/3 wavelet for lossless compression. However, there is no bitrate control when using LGT 5/3. If your video cannot be losslessly compressed under 250 Mbps using LGT 5/3, then there is no choice but to switch to lossy CDF 9/7 and adjust the compression level until it fits under 250 Mbps. So, not only may you not get the lossless archive you want, but it may also be a science project to figure out the best compression settings for a legal lossy substitute. Hence, even in Hollywood, creating a DCP is often outsourced to a specialty shop. Are you interested in doing extra work to get results that are worse than lossless? I’m certainly not.
This is why I’m trying to steer you away from the Motion Picture DCP specs, and away from JPEG 2000-in-MXF in general. The next section of the LOC “Recommended Formats Statement” page is called “Video File-Based and Physical Media”. This is much more suited to general usage, as these files are not constrained to a specific playback system the way DCP is. The FFV1 codec as listed in the LOC’s right-hand column is directly supported by Shotcut, and I described the method to use it at the top of this post. The ProRes formats in the left-hand column are also supported by Shotcut, and an export preset even exists for ProRes 422 HQ. (It’s called ProRes HQ, but remember to switch its audio codec to
pcm_s24le as described above.) ProRes is considered “visually lossless”, and 4444 XQ may as well be lossless. But technically, they are not bit-for-bit exact the way FFV1 is. ProRes does have more media player and video editor support, though.
As for audio, WAV audio (called
pcm_s24le in Shotcut/FFmpeg) is endorsed by the Library of Congress.
So, that’s my recommendation for LOC-style lossless archiving… FFV1 video with WAV audio. The LOC’s thoughts on FFV1 are posted here:
If you actually are making 24fps feature films and still want to do JPEG 2000 in MXF, I’ll describe the process in the next post.