Open Source · v1.0.0

Professional DCP Validation
Without the Price Tag

A complete DCP & IMF validator with SMPTE Bv2.1 compliance, Dolby Atmos, HDR, Netflix delivery specs, audio loudness metering, and more — all from the command line. Free and open source.

dcpdoctor — validate DCP package
# Full validation with studio-level checks $ dcpdoctor --studio --deep /mnt/dcp/MyFeature_FTR-1_S_EN_XX_2K_20241201/ Validating: MyFeature_FTR-1_S_EN_XX_2K_20241201 Standard: SMPTE (Bv2.1) Reels: 4 | Duration: 01:58:32 | Resolution: 2048x858 (Scope 2K) Audio: 5.1 (L R C LFE Ls Rs) | 48kHz/24bit Loudness: -28.3 LUFS | True Peak: -2.1 dBTP Color: CIE XYZ 12-bit | DCI-P3 compliant Encryption: All assets encrypted (KDM required) ✓ PASS 135 checks performed — 0 errors, 2 warnings ⚠ WARN Reel 3 duration 42 min exceeds 40-min recommendation ⚠ WARN ISDCF naming: missing audio language tag

135+

Validation Checks

21

Feature Modules

3

Platforms

$0

Forever Free

Enterprise-Grade Validation

Every check a post-production studio needs — from basic structure to deep Atmos analysis. No annual license fees.

📄

SMPTE Bv2.1 Compliance

Full SMPTE ST 429 and Bv2.1 validation. XML schemas, namespace checks, required elements, and structure verification.

Core
🔒

Hash & Signature

SHA-1 hash verification for all assets. XML digital signature validation with X.509 certificate chain trust checking.

Core
🎬

J2K Bitrate Analysis

Per-frame bitrate analysis with max/min/avg. Deep J2K codestream validation: profile, tile structure, code-block sizes, quality layers.

Core
🎙

Audio Loudness (EBU R128)

Integrated loudness (LUFS), loudness range (LRA), true peak (dBTP). DCI cinema level compliance checking.

Studio
🌈

Color Space & Gamut

XYZ/DCI-P3/Rec.709 color space detection. 12-bit depth verification. Out-of-gamut pixel sampling.

Studio
🔊

Channel Configuration

Audio layout detection (2.0/5.1/7.1/Atmos). MCA label validation per SMPTE ST 377-4. DCI channel minimum enforcement.

Studio
🌐

Dolby Atmos / IAB

Deep IAB bitstream inspection. Object count, bed channel validation, frame integrity, and Atmos compliance checking.

Premium
🌞

HDR Metadata

PQ (ST 2084), HLG, and Dolby Vision detection. SMPTE ST 2098 metadata compliance. MaxCLL/MaxFALL validation.

Premium
📺

Dolby Vision 4.0

RPU parsing and validation. Profile/level detection. Enhancement layer compliance. Mapping metadata checks.

Premium
📜

TTML / IMSC Subtitles

TTML/IMSC compliance checking. Timing validation, font embedding, subtitle duration minimums, and CineCanvas SMPTE 428-7.

Premium
🎥

Stereoscopic 3D

Left/right eye frame count matching. Bitrate balance. MXF stereoscopic structure validation.

Studio
📐

Resolution & Aspect Ratio

DCI container detection: 2K Flat/Scope/Full, 4K variants. Non-standard resolution flagging.

Studio
🔗

Cross-Reel Continuity

Multi-reel timing gap detection. Audio/video sync verification. Reel duration compliance (40-min recommendation).

Studio
🔒

Encryption Consistency

Mixed encryption detection. KDM requirement flagging. Per-asset encryption status reporting.

Studio
📋

Supplemental Packages

Version File (VF) validation. Original Version reference checking. Missing asset detection across OV/VF split.

Studio
🆔

Netflix Delivery Specs

Full Netflix IMF delivery specification checking. Metadata requirements, file structure, naming conventions.

Premium

IMF via Netflix Photon

Integrated Netflix Photon for complete IMF (ST 2067) validation. Automatic Photon build and execution.

IMF

Accessibility

Audio Description (AD), Hearing Impaired (HI), and Closed Caption (CC) track detection and validation.

Premium
🔀

120fps / Extended HFR

High Bit Rate and extended High Frame Rate validation. 48/60/96/120fps compliance checking.

Premium
🗝

ISDCF Naming

Full ISDCF naming convention validation. Content type, resolution, audio config, language codes.

Core
🔑

KDM Generation & Validation

KDM XML parsing and validation. Key period checking. Certificate chain trust verification.

Core

Checksum Verification

Verify all PKL asset hashes and file sizes for DCP or IMF packages. Detects corruption, missing files, and size mismatches.

Core
📦

MXF Essence Extraction

Extract video and audio tracks from MXF containers. Frame range selection, per-track extraction, lossless unwrap.

Studio
🔍

Automated QC

Detect black frames, freeze frames, audio silence, and audio clipping. Configurable thresholds. JSON output for integration.

Studio

DCP Doctor vs. EasyDCP

All the features of a €2,998 product — free and open source.

Feature DCP Doctor EasyDCP Plus
SMPTE Bv2.1 Compliance
Interop DCP Support
Hash Verification
J2K Bitrate Analysis
Audio Loudness (EBU R128)
Dolby Atmos / IAB
Stereoscopic 3D
Up to 4K & HBR
23.98 to 120 fps
SMPTE 428-7 Subtitles
Subtitle Font Validation
KDM Validation
CLI / Scriptable
HDR Metadata (ST 2098)
Dolby Vision 4.0
Netflix Delivery Spec
IMF Validation (Photon)
Accessibility Tracks
Content Fingerprinting
Color Gamut Validation
Certificate Chain Trust
ISDCF Naming
DCP Diff / Comparison
JSON/HTML Reports
Linux / macOS / Windows
Price Free (GPLv3) €2,998 or €138/mo

Copy, Paste, Validate

Real commands for real workflows. Every example works out of the box.

Basic

Standard Validation

Validate a DCP with all core checks.

dcpdoctor /path/to/DCP/
Studio

Studio-Level Checks

Loudness, color, resolution, encryption, reel continuity.

dcpdoctor --studio --deep \
  /path/to/DCP/
Premium

Netflix + Atmos + HDR

Full premium analysis for streaming delivery.

dcpdoctor --netflix --atmos --hdr \
  /path/to/IMF/
IMF

IMF Validation (Photon)

Validate IMF packages via Netflix Photon engine.

dcpdoctor --imf \
  /path/to/IMF_Package/
Reports

JSON Report

Machine-readable output for CI pipelines.

dcpdoctor --format json \
  /path/to/DCP/ > report.json
Advanced

DCP Comparison

Diff two DCP packages to find changes.

dcpdoctor diff /path/to/DCP_v1/ \
  /path/to/DCP_v2/
QC

Automated QC

Detect black frames, freeze frames, silence, and clipping.

dcpdoctor auto-qc \
  --video /path/to/content.mxf
Integrity

Checksum Verification

Verify all PKL hashes and file sizes in a package.

dcpdoctor checksum-verify \
  /path/to/DCP/
Extract

MXF Extraction

Unwrap video/audio essence from MXF containers.

dcpdoctor mxf-extract \
  /path/to/picture.mxf -o ./out/

Build in Minutes

Rust toolchain and standard system libraries. No proprietary dependencies.

# Install dependencies (Ubuntu/Debian)
sudo apt install -y cmake ninja-build pkg-config \
    libxml2-dev libssl-dev libxerces-c-dev libsqlite3-dev

# Clone with submodules
git clone --recursive https://github.com/DcpDoctor/dcpdoctor.git
cd dcpdoctor

# Build
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)

# Run
./build/dcpdoctor /path/to/your/DCP/

# Run tests
cd build && ctest --output-on-failure
# Install dependencies (Homebrew)
brew install cmake ninja pkg-config \
    libxml2 openssl xerces-c sqlite

# Clone with submodules
git clone --recursive https://github.com/DcpDoctor/dcpdoctor.git
cd dcpdoctor

# Build (with OpenSSL path hints)
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release \
    -DOPENSSL_ROOT_DIR=$(brew --prefix openssl) \
    -DCMAKE_PREFIX_PATH="$(brew --prefix libxml2);$(brew --prefix xerces-c)"
cmake --build build -j$(sysctl -n hw.ncpu)

# Run
./build/dcpdoctor /path/to/your/DCP/
# Install dependencies via vcpkg
vcpkg install libxml2 openssl xerces-c sqlite3

# Clone with submodules
git clone --recursive https://github.com/DcpDoctor/dcpdoctor.git
cd dcpdoctor

# Build with vcpkg toolchain
cmake -B build -DCMAKE_TOOLCHAIN_FILE=%VCPKG_ROOT%/scripts/buildsystems/vcpkg.cmake
cmake --build build --config Release

# Run
.\build\Release\dcpdoctor.exe C:\path\to\DCP\

Run Everywhere

From post-production workstations to CI/CD pipelines.

🖥

Linux

Ubuntu 24.04+, Fedora 40+, any distribution with GCC 13+ or Clang 17+. Full CI tested on GitHub Actions.

🍎

macOS

macOS 14+ (Sonoma) with Apple Clang or Homebrew GCC. ARM64 and x86_64. Tested on M-series hardware.

💻

Windows

Windows 10/11 with MSVC 2022 or MinGW. vcpkg for dependency management. GitHub Actions CI verified.

Desktop Application

A native desktop GUI built with Tauri. Drag-and-drop DCP validation with zero configuration.

Drag & Drop

Drop a DCP folder onto the window to instantly start validation. No command line needed.

Visual Results

Color-coded severity badges, filterable results table, and summary cards at a glance.

One-Click Checks

Toggle Studio, Deep, Netflix, HDR, Atmos, IMF, and Accessibility with option chips.

Native & Tiny

13MB binary using system webview. Builds .deb, .rpm, .dmg, and .msi packages.

Build the Desktop App

# Build CLI first
cd build && cmake .. -DCMAKE_BUILD_TYPE=Release && make -j$(nproc)

# Copy CLI as sidecar + build GUI
cd ../gui && npm install
cp ../build/dcpdoctor src-tauri/dcpdoctor-$(rustc -vV | grep host | cut -d' ' -f2)
npx tauri build

# Packages in gui/src-tauri/target/release/bundle/

Ready to validate?

DCP Doctor is free, open source (GPLv3), and built for professional workflows. Start validating your DCPs today.

Built by DcpDoctor · Open to contributions from everyone