/backports

Deep inspection of digital cinema packages

Primary LanguageRuby

dcp_inspect

dcp_inspect is a tool for deep inspection and validation of digital cinema packages (DCP, SMPTE and Interop). This includes integrity checks, asset inspection, schema validation, signature and certificate verification and composition summarization. Basically anyone who needs to establish the validity of a digital cinema package can put dcp_inspect to good use.

See the Examples page for some of the things it can do. Also see How to use Digital Cinema Tools' section for dcp_inspect.

Usage

    dcp_inspect --help
    dcp_inspect <path>
    dcp_inspect <path> --no-hash
    dcp_inspect <path> --as-asset-store --hash-limit <limit> --logfile <path>

Installation

See Digital Cinema Tools Distribution for an easy-to-use Setup script. This will install everything required.

Features

  • Will find and check all DCPs in a filesystem tree

  • Handles both Interop and SMPTE DCPs (and says useful things about free poetry DCPs, too)

  • Checks asset integrity

  • Checks timeline integrity of compositions

  • Checks applicable assets against XSD (XML Schema Definitions)

  • Checks and verifies signatures

  • Deep-inspects compositions

    This includes timeline integrity, composition type consistency and completeness checks.

  • Deep-inspects DCSubtitle

  • Checks a composition's naming and cross-checks with metadata and asset properties

  • Reports in detail all errors encountered

See Examples.

Requirements

See Digital Cinema Tools Distribution for an easy-to-use Setup script. This will install everything required (batteries included). Run the setup occasionally to keep up-to-date.

If you prefer manual installation (you kind of don't) you will need the following:

  • Ruby (1.9.3 series. The 1.8 series is not supported)

  • asdcplib and its cli tools

  • Nokogiri, a ruby wrapper for libxml2

    For signature verification dcp_inspect requires a recent Nokogiri version with C14N support.

  • dcp_inspect requires xsd/ next to it.

    Clone the whole repository to put everything in place:

      $ git clone git://github.com/wolfgangw/backports.git
    

Run

$ git pull

in backports to keep up-to-date.

Todo

  • Deep inspection of SMPTE timed text trackfiles
  • Assetmap options chunks, offsets, volume indices
  • Marker lists
  • Check Signer.X509IssuerSerial issuer name

Thanks to Julik for his Timecode library (https://github.com/guerilla-di/timecode).

Runs on linux and Mac OS boxes.

Wolfgang Woehl 2011-2014