0.1.0NOVA 0.1.0 for Windows is out. Free download; the installer is GPL-licensed because of its bundled engine.Download

Media compatibility

Support tiers, the format matrix, gaps and how the harness is run.

As writtenPublished unedited from the NOVA repository. Links to other repository files open on GitHub.Engineering record · docs/compat/README.md

Engine audited and tested: mpv v0.41.0-1175-g492bae076 / FFmpeg N-127552-gee8cbd7db (the pinned dev build, ADR 0003). Test machine: Windows 11, i5-10300H, Intel UHD 630 + GTX 1650.

Evidence:

Both result files are generated by crates/nova-playback-mpv/tests/compat.rs from the corpus built by scripts/generate-compat-corpus.sh. Both passes: 55 / 55 samples met their expectation.

Categories (policy: ADR 0006)

CategoryMeaning
VerifiedA sample of this codec/container/profile played on the real engine in the harness. Checks: playback starts; codec, size, bit depth, chroma, alpha/HDR detected; exact seek within 100 ms; position advances in real time; no decoder drops. Samples are synthetic FFmpeg encodes of the profile, not files from a camera.
ExpectedThe engine contains the decoder and demuxer, but no representative sample has been tested yet.
PartialPlays, with a documented limitation.
Requires External ComponentNeeds a vendor SDK or other component that NOVA does not ship. NOVA detects the format and explains the alternatives.
UnsupportedWill not play, by design or for legal reasons. NOVA detects these where possible and explains why.

Matrix

Verified (synthetic profile samples; software and hardware passes)

AreaFormats
Delivery codecsH.264 High (MP4, 3GP, M2TS/AVCHD-style, MKV); HEVC Main/Main10 (MP4, MOV); AV1 10-bit (MKV); VP8, VP9 (WebM); MPEG-2 (VOB, MPEG-TS); MPEG-4 Part 2 ASP (AVI); Theora (OGV)
Camera acquisition profilesH.264 High 4:2:2 Intra 10-bit in MXF (XAVC-I / XF-AVC Intra profile); AVC-Intra 100 class in MXF; MPEG-2 4:2:2 50 Mb/s in MXF (XDCAM HD422 profile); HEVC 4:2:2 10-bit (XAVC HS-style); DV PAL; Motion JPEG
Editing intermediatesProRes 422 HQ, ProRes 4444 with alpha; DNxHR HQX 10-bit (MXF OP1a); DNxHD 36 (MOV); CineForm; HAP
Lossless / uncompressedFFV1 10-bit; HuffYUV; Ut Video; v210 (10-bit 4:2:2); QuickTime Animation with alpha
High-end4K60 HEVC Main10; 8K24 HEVC; 4K ProRes 422 HQ (~1 Gb/s); 1080p120; variable frame rate; HDR10 (PQ/BT.2020 detected); HLG detected
AudioPCM 24-bit 5.1 WAV; FLAC 7.1; ALAC; AC-3 5.1; E-AC-3 5.1; DTS core 5.1; Dolby TrueHD 5.1; Opus; MP3; AAC; Vorbis
RobustnessUnknown video codec (audio keeps playing, banner shown); truncated MOV and mid-stream corruption (no hang); zero-byte and random files (clear error); misleading extension (Matroska named .mp4 plays)

Hardware decoding (d3d11va / nvdec) was used for: H.264 8-bit 4:2:0, HEVC 8/10-bit 4:2:0 including HDR, 4K60 and 8K, VP9 and VP8. These fell back to software automatically and correctly: HEVC 4:2:2, H.264 4:2:2 Intra, AV1 (neither GPU decodes them in hardware), ProRes, DNx, CineForm, MPEG-2, and the lossless codecs.

Partial

FormatLimitationEvidence
VP9 with alphaPlays, but the engine’s native VP9 decoder drops the alpha plane (output yuv420p)harness
Alpha video in general (ProRes 4444, QT Animation)Alpha is decoded and reported, but displayed over black (no checkerboard or compositing)harness detects alpha; display not verified
8K HEVC in softwarePlays; about 1.27 GB private memory. Real-time speed not measured: the 2 s sample is too shortharness
HDR10 / HLGMetadata detected. Tone mapping to SDR (gpu-next) and HDR output on an HDR display not yet verified visuallyharness
Still images (DPX 10-bit, OpenEXR float)Single frames display. Image sequences are not supported yetharness
A/V syncMeasured only in the live app for H.264, HEVC and VP9 (≤ 47 µs steady). The harness is headless with null audiom0-results.md

Expected (decoder present in the audit, no sample tested)

  • ProRes RAW (prores_raw decoder present; no open encoder exists to make samples).

  • Real camera files:

    • Sony XAVC-S, XAVC-I, XAVC-HS
    • Canon XF-AVC, XF-HEVC
    • Panasonic AVC-Intra, AVC-Ultra, AVCHD
    • GoPro and DJI HEVC/H.264
    • iPhone ProRes and HEVC

    Their codec profiles are Verified above. Container quirks, metadata and timecode tracks of real files are not tested yet.

  • Other codecs and media:

    • Codecs: VVC/H.266, VC-1/WMV, JPEG 2000 (unencrypted)
    • Audio: DTS-HD MA and TrueHD Atmos (core and lossless decode; object rendering not available)
    • Other: Dolby Vision profiles 5/8 (handled by libplacebo in mpv; no sample), GXF, interlaced broadcast material (deinterlacing not yet configured)

Requires External Component (detected, not decoded)

FormatNeedsNOVA today
RED R3D (REDCODE RAW)RED R3D SDKFFmpeg has an r3d demuxer but no REDCODE decoder. NOVA tries the engine and shows SDK/export guidance if it cannot decode
Blackmagic RAW (.braw)Blackmagic RAW SDKDetected; guidance shown (stand-in tested)
ARRIRAW (.ari, .arx)ARRI SDKDetected; guidance shown
Canon Cinema RAW Light (.crm)Canon RAW SDKDetected; guidance shown
Sony X-OCN / Sony RAW (in MXF)Sony SDKNot detectable by extension (it is MXF). Reported as “video codec not decodable” with export guidance

No RAW claim is made beyond detection: no real RAW file has been tested.

Unsupported (by design or law)

  • Editing projects are not media and are detected and explained (tested): .prproj, .aep, .drp, .fcpxml, .veg, .kdenlive, .mlt, .otio, .aaf, .avp, .edl.
  • DRM-protected media (FairPlay, Widevine downloads, encrypted DCPs, AACS/CSS discs) is out of scope.
  • CinemaDNG sequences are planned (see below), not supported today.

Gap analysis (current build)

#GapImpactPlan
1No real camera files in the corpusCamera brands stay “Expected”P0: private corpus outside git (license-checked downloads or owner-provided footage) with checksums; the harness reads an external manifest
2Image sequences (DPX/EXR/TIFF/DNG)VFX, scanning and CinemaDNG workflowsP1: open a folder or numbered sequence, choose fps, play through the engine’s image demuxer
3VP9 alpha dropped; alpha shown over blackMotion-graphics reviewP1: prefer the libvpx-vp9 decoder for alpha streams; optional checkerboard background
4Embedded timecode, reel names, camera metadataEditors expect timecode in the inspectorP1: read container timecode tags and tmcd tracks
5HDR display path not verifiedWrong-looking HDR on some displaysP1: visual checks on SDR and HDR displays; expose tone-mapping settings
68K software memory (~1.27 GB) and real-time not measuredLarge-file stabilityP1: longer 8K/high-bitrate samples, cache and thread tuning, two-hour soak
7No live A/V-sync harness for pro formatsSync claims limited to three codecsP1: offscreen-window harness with real audio output
8Library scan has no codec/duration metadataLibrary can’t filter by codec, or warn ahead about RAWP2: lightweight probe during scans
9Camera RAW decodingRED/BRAW/ARRI/Canon/Sony RAWP2: optional, separately installed adapters behind the playback contract, only after SDK license review (ADR 0006)
10Licensing of the engine buildRelease blockerADR 0003, option B: an LGPL FFmpeg/mpv build. The audit shows every professional decoder above is native FFmpeg (LGPL); only the x264/x265 encoders, which a player doesn’t need, force GPL today

Running the harness

bash scripts/generate-compat-corpus.sh            # ~75 s, ~650 MB (add --quick to skip 8K/4K ProRes)
cargo test -p nova-playback-mpv --release --test compat -- --ignored --nocapture
NOVA_COMPAT_HWDEC=auto-copy cargo test -p nova-playback-mpv --release --test compat -- --ignored --nocapture
NOVA_COMPAT_ONLY=prores cargo test ...            # subset
cargo run -p nova-playback-mpv --example probe_file -- <file>   # inspect any file
cargo run -p nova-playback-mpv --example engine_audit > docs/compat/engine-audit.tsv