DIY DCP: Open Source Digital Cinema Package Encoding Experience
Updated: Jul 8, 2019
Being an indie filmmaker poses many challenges. From concept to post, the road is packed with a multitude of necessary tasks to complete the film. I recently faced the challenge of encoding my own DCP (Digital Cinema Package.) A Digital Cinema Package (DCP) is a collection of digital files used to store and convey digital cinema, audio, image, and data streams. This post sprung from that experience.
I had one DCP professionally encoded at Hermosa Beach Filmworks in California that I was using for festivals (very professional and reliable guys), but when it happened that two festivals overlapped, I was in desperate need of a new DCP. I had the option of just ordering a copy for a fraction of the original cost, but this time (maybe as a personal challenge), I decided to try to do it myself. Learning is my passion.
Encoding a DCP goes beyond just compressing and encoding— real color science is necessary to make it perfect. That said, I just wanted to share my open-source "journey" to DCP encoding as an alternative in case you decide to try it yourself. As a disclaimer, I want to say that what I did might not be the fastest approach, but results were, in my opinion, excellent.
First, I started downloading and installing an open-source software called DCP‑o‑Matic on my Mac. DCP-o-Matic is a program to create Digital Cinema Packages (DCPs) from videos, images, sound and subtitle files. You can use it to make content for playback on DCI-compliant cinema projectors. The software is great and pretty straightforward. With a little aid from the manual, I was able to add my film and adjust it to 2K Flat. The software has a number of possible adjustments that you can explore to suit your needs. Something important I learned at this point was that it could be safer to encode Audio with six channels even though you might have only two of actual sound (stereo). The other four channels will contain silence, but DCI-compliant cinema projectors sometimes need to have all six channels encoded in order to properly reproduce sound.
Once that was finished, I needed to put my data on a drive. Depending on the size of the file, one might need to go from a CRU hard drive to a simple USB Flash drive. In my case, the only thing I needed was a 32Gb USB Flash drive. This was the point when things became a bit tricky. The USB flash drive needs specific formatting: EXT 2 or 3 filesystem, partitioned as MBR. A filesystem is simply the way the files are organized on a drive.
I couldn't find the way to make that happen with my Mac Disk Utility, so after some research, I learned that I could make my Mac run temporarily on a different operating system (#Ubuntu) and do it from there. Ubuntu is a Debian-based Linux operating system for personal computers, smartphones and network servers. The vision for Ubuntu is part social and part economic—free software, available to everybody on the same terms.
After downloading Ubuntu, the directions were to burn it to a DVD and run my Mac from the DVD operating system (by holding "C" immediately after turning on the Mac and hearing the startup sound).
After a brief period of tension and suspense, Ubuntu took over my computer and I got the choice to run it in Trial Mode. You might encounter some issues with wireless devices, since your computer won't be able to detect them at first, but I overcame these issues by temporarily using a wired mouse to run the trial version, and then, once in the Ubuntu desktop, connecting my devices in the Bluetooth preferences section.
So my computer was finally up and running. The next step was the Flash drive formatting. To do so, I needed to run the Ubuntu free partition manager "gparted." Gparted should be pre-installed on the live-DVD version but if you can't find it you will need to connect to the web and download it. For that open the Terminal (Ctrl+Alt+T) and type:
sudo apt-get install gparted
Then open the Ubuntu Partition Manager by typing:
Once GParted was open, I selected my flash drive in the upper right corner. I right‑clicked on the partition of my flash drive (the only one) and selected “Unmount.” Then I right‑clicked again and selected “Format to ext2.” I then went to the Edit menu and hit “Apply all operations.”
When that operation was finished, my flash drive was ready for my DCP-encoded data. However, at this step I found two issues: first, I could only access the Public Folder on my Mac (under my username), and second, the USB Flash drive didn't allow me to copy anything onto it because I didn’t have the correct permissions (it was assigned to “/root”).
For the first issue, the solution was fairly simple—I copied my DCP data to the Public Folder of my Mac user (of course, by closing my Ubuntu session and going back to my good ol' Mac OS), but the second issue required some extra work .
When Ubuntu reformatted my USB Flash Drive, it made “/root” the owner of the drive. The solution was changing “/root” to my username to change the drive permissions, but since I was in Trial Mode, I didn't know what my username was. The solution I found was typing into the Terminal the command:
I discovered that before you install Ubuntu for good on your computer, your username is… wait for it… "Ubuntu" (obvious now but wasn’t at the time).
After that, I looked for the name of my USB Flash Drive (after formatting it) by opening the “Disks” application that comes pre-installed on Ubuntu. I did that by clicking the Ubuntu Dash icon in the top left corner and searching for the "Disks" app. Once open, I clicked on my Flash drive to see its actual name and took note of it. Keep in mind, this name can be quite long.
With that information in hand, I was able to change permissions on my drive, and for that, I opened the Terminal again and typed:
sudo chown ubuntu:ubuntu /media/user/nameofyourflashdrive
This fixed the issue. When the operation was completed, I was able to drag and drop the DCP-encoded data onto my USB Flash Drive and have it ready for the theater.
If you decide to go this route, make sure you drag and drop the actual DCP folder (not the one with all the temp files and folders.) The DCP folder can be identified because it is the one with the long name that follows the Digital Cinema Naming Convention parameters. Voilà!
With my DCP ready for the theater, I tested it on a 4K Christie projector and it worked just fine—no problems uploading, no audio issues, accurate color, flawless playback. Life was good again.
I know there are other ways to encode a DCP (for one, DaVinci Resolve offers the easyDCP plugin for a fee) but if your budget is tight and you are brave enough to venture into this "realm," then this information may come handy in your journey.
DCP Journey Logbook
2)Encode your file to DCP
3)Download Ubuntu OS
4)Burn Ubuntu to DVD-R
4)Run Trial Version
5)Format Flash drive as EXT 2/3 MBR
6)Copy your DCP File