Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Performing QC on DCPs

Overview

Digital Cinema Packages (DCP) are files specifically made to be projected in a Digital Cinema Projector. They have a very specific structure and format, and thus it’s very important to QC them before they are projected for a festival, screening, or exhibit.

QCing DCPs involves using some specialized software, along with some QC steps that are typical of most BAVC QC Workflows. This article will describe the general process of QCing DCPs, as well as how to install the software. Installing the software is not easy at all so be very careful and read the instructions thoroughly

For the purpose of testing the QC software you can use this sample DCP, which is found in this repository of sample files.

Installing QC software

The main software tools you’ll use to QC a DCP are dcp-o-matic and clairmeta. dcp-o-matic will playback DCPS, so it’s an important tool for viewing the content. clairmeta can perform checks on fixity, structure, naming, etc, so it’s very useful to make sure that the files and directory are properly formed. It’s easy enough to install dcp-o-matic using homebrew with the following command:

brew install dcp-o-matic

Ok that’s easy enough. Let’s dive into the hard part

Installing clairmeta

There is no easy way to instal clairmeta, or some of the dependencies, so you have to do a few thing the hard way. You can find the GitHub page for it here. First, lets discuss the dependencies:

  • asdcplib
  • mediainfo
  • sox

mediainfo and sox can be easily installed using homebrew. Do that first, but there’s a good chance the computer your own already has those programs installed.

The hard part is installed asdcplib. In order to do that you’ll need to download the github repo for asdcplib which can be found here. Once you’ve done that, use cd to change the working directory of terminal to the root level of the download github repo (to be safe, you can move the github repo to whatever folder all your github repos live in first).

Once you’re in the asdcplib directory run the following commands

autoreconf -if
./configure --enable-as-02
make
make install

If done correctly, a bunch of new command line tool will have been installed. You can test this by running the asdcp-test command. You should see output like

No operation selected (use one of -[gGcitux] or -h for help).
There was a problem. Type asdcp-test -h for help.

This means the tool was installed (though you ran it incorrectly as it says, but that’s ok for now we just want to see if it installed). If you see something like this:

zsh: command not found: asdcp-test

Then you didn’t install the tool properly. Check the commands you ran and try again! You may need to use sudo but it’s not likely or necessary.

Now, it’s time to install clairmeta itself.

go to the Github Repo and download it. Move the GitHub repo to where ever you like to keep your repos. Move your terminal window into the repo by using the cd command.

Now you can install the tool by running the following command:

python3 ./setup.py install

Once this is finished, you can test that the tool has been properly installed by running the following command:

python3 -m clairmeta.cli

If it ran properly you should see the following output

usage: cli.py [-h] {check,probe} ...

Clairmeta Command Line Interface 1.3.0

positional arguments:
  {check,probe}
    check        Package validation
    probe        Package metadata extraction

options:
  -h, --help     show this help message and exit

If this looks correct then congrats! You’ve got clairmeta up and running.

Running QC software

Running clairmeta

Clairmeta lets you probe and check DCPs. This is the standard command for probing a DCP:

python3 -m clairmeta.cli probe -type dcp [path/to/dcp]

This will just spit out a bunch of metadata in a json format. You can output this to a file using the following command

python3 -m clairmeta.cli probe -type dcp [path/to/dcp] -format json > [output/path.json]

In that case you need to define the output path and give it a .json extension. You can really make it anything, just be sure it ends in .json, though it’s easiest if you just make it a sidecar file of the original DCP (don’t put it in the DCP!)

To check the DCP you’ll use the following command:

python3 -m clairmeta.cli -check dcp [path/to/dcp]