opx-probe
Fast media file inspector — container, codec, frame rate, AS-11 sidecar, preflight
Available
v0.2 · July 2026

opx-probe reads media files directly via libavformat — no shell-out to ffprobe, no subprocess overhead. It returns container duration, video codec and frame rate, audio configuration, MXF AS-11 sidecar metadata, and edit list detection. Run preflight against a house format to validate a file before ingest. JSON output for scripting and pipeline integration.

  • Container and stream inspection — H.264, MPEG-2, ProRes, DNxHD
  • MXF OP1a with AS-11 UK DPP sidecar parsing — programme title, audio layout, rights expiry
  • Preflight validation against house format — frame rate, sample rate, edit list, VFR detection
  • JSON output for scripting and pipeline integration
  • Exit codes: 0 = clean, 1 = preflight fail, 2 = probe error
  • No installation — single binary, requires FFmpeg libraries
usage examples
# Inspect a file
$ opx-probe programme.mxf

# Preflight against house format
$ opx-probe clip.mp4 --house 1080p50

# JSON output for scripting
$ opx-probe clip.mp4 --json | jq .video.frame_rate_label

# House formats: 1080p50, 1080p25, 1080p2997, 1080p30,
# 1080p24, 1080p2398, 1080i50, 1080i5994,
# 720p50, 720p25
Download opx-probe v0.2
Linux: requires FFmpeg 6.x — sudo apt install ffmpeg on Ubuntu/Debian.

Windows: FFmpeg DLLs bundled in the zip. Extract and run — no installation required.

Source code is not published. All releases on GitHub →
opx-loudness
EBU R128 loudness analysis — integrated, short-term, momentary, true peak, Ofcom compliance
Coming soon
EBU R128 loudness metering with Ofcom compliance checking. Verified against ffprobe. Per-channel analysis. In development.
opx-drift
Media timeline drift — PTS deviation and audio/video differential, EBU R37 quoted
Available
v0.2 · July 2026

Does this file’s presentation timeline hold together? Two questions, two modes. file measures PTS deviation against the stream’s own declared rate. sync measures the audio-versus-video differential and quotes it against EBU R37. The frame period is resolved as an exact rational and never floated, so a reported deviation is not an artefact of the measurement. Each track in a differential is measured against its own declaration, so the common-mode term subtracts out.

  • PTS drift against an exact rational timeline — steps of ±1 period are dropped or repeated frames
  • Audio/video differential with EBU R37 (+40 / −60 ms) — asymmetric, so the sign selects the bound
  • Two files — their video timelines compared against each other
  • Quantisation floor printed with every report; a deviation below it is reported as unmeasurable, never as zero
  • JSON output for scripting and pipeline integration
  • Exit codes: 0 = no discontinuities, 1 = discontinuities detected, 2 = error
usage examples
# Lip sync, with EBU R37 bounds
$ opx-drift sync programme.mxf

# PTS drift of a recorded stream
$ opx-drift file capture.ts

# Analyse a 30 fps file as though it were 29.97
$ opx-drift file capture.mp4 --rate 30000/1001

# The differential is the finding, not the slope
differential -1.412 ppm (+ = audio ahead)
guard 24.259 ppm (3× the 8.086 ppm slope floor)
Download opx-drift v0.2
Linux: requires FFmpeg 6.x — sudo apt install ffmpeg on Ubuntu/Debian.

Windows: FFmpeg DLLs bundled in the zip. Extract and run — no installation required.

Read the note under a sync report before quoting a number. A common-mode slope is a coherent retime, not a sync fault.

Source code is not published. All releases on GitHub →
opx-verify
As-run log verifier — hash-chain validation, R128 compliance, subtitle quota, SCTE-35 accuracy
Coming soon
Validate cryptographically chained playout logs. Verify R128 compliance and subtitle quota from the as-run record. In development.