IAMF Validator

METHOD & LIMITS · REVIEWED 6 OCTOBER 2026

A result you can inspect.

Every finding has an observed value, an explanation, a next step, and a source. Missing coverage stays visible.

Metadata checks and reference decoding

A browser Worker checks supported descriptors against selected IAMF v1.1.0 requirements, then runs the AOMedia libiamf v1.1.0 reference decoder compiled to WebAssembly. Successful decoding adds evidence but does not certify complete IAMF conformance.

The parser reads selected file ranges. For supported MP4 structure it locates IAMF sample descriptions and configuration data; it also accepts a standalone IAMF sequence. Filename extensions are hints, not detection evidence. Processing budgets can stop analysis and produce a partial result.

Descriptor parsing and reference decoding are reported separately. Reports identify the actual engine, rule set, schema, source review dates, and analysis coverage used for that run.

What is inspected

Unknown profiles and unimplemented features can limit the result. Fragmentation, encryption, configuration switching, and external data references require explicit support; unsupported cases do not automatically make a file invalid. External references are never followed.

Decode scope and limits

The pinned build supports Opus and PCM. It attempts each inspected Mix Presentation as stereo at 48 kHz; other rendering layouts and unreferenced elements are not validated. The input limit is 64 MiB, with up to eight mixes, one submix per mix, and one audio track in non-fragmented MP4. The legacy reference MP4 demuxer supports track IDs 1–8. AAC, FLAC, incomplete metadata and unsupported configurations are skipped explicitly.

The decoder has a 30-second Worker budget and a 512 MiB WebAssembly memory ceiling. A timeout or crash preserves the metadata report. A decoder failure is reported as a warning requiring review; only an implemented specification check with specific evidence produces a specification failure. The separate iamf-tools Probe WASM prototype is not used.

Coverage

Coverage areaCurrent scope
Container metadataChecked or partial, according to supported structure
IAMF descriptorsChecked or partial, according to supported fields
Media samplesNot scanned for full temporal integrity
Audio decodingReference stereo decode for supported Opus/PCM; outcome and limits shown separately
Measured loudnessNot measured; declared values may be displayed
Actual channel contentNot verified
YouTube ingestionNot tested
Device playbackNot tested

How to interpret a finding

Pass
The particular implemented check passed with available evidence.
Warning
Review a recommendation or a potential workflow concern.
Fail
There is specific evidence for a violated implemented constraint.
Unknown
The available evidence or parser capability cannot answer the check.
Not applicable
The check does not apply to the inspected input or selected preset.

Analysis completeness is separate from findings. A partial or cancelled run cannot yield an overall clean result. Engine load errors and timeouts describe the tool’s execution, not file corruption. No compatibility score is calculated.

Source hierarchy and scope

The rule baseline is the verified IAMF v1.1.0 specification. It is a declared implementation baseline, not a claim that v1.1.0 is the latest version supported by all tools. Consult the approved specification entry point for later changes.

YouTube recommended upload encoding settings explicitly names Content Manager partners. Fast-start, edit-list, and sample-rate comparisons in general preflight are advisory references; a difference is not proof an ordinary upload will be rejected.

YouTube video and audio formatting specifications names music label and distributor partners using the specified delivery workflow. Its codec coverage is not treated as a complete universal allowlist.

YouTube music video encoding specifications names Content ID partners. The optional music reference preset makes that scope explicit when comparing its 18-channel and two-element guidance. Unclear counting remains unknown.

The decoder is pinned to libiamf v1.1.0, with Opus v1.5.2. The report records the decoder commit and per-mix return codes, frame and sample counts. The upstream test MP4 demuxer has a local guard to prevent video tracks overwriting audio sample tables. Community observations do not become hard failure rules without verified support. There is no invented universal −14 LUFS upload threshold.

Reading the evidence

Use the target, field path, parsed value, and available byte offset to trace a finding. Offsets appear only when produced by the parser. An MP4 IAMF configuration version is not an IAMF specification version; container sample-entry channel and sample-rate placeholders are not the effective output layout or rate.

All report formats use the same normalized result. Unknown data stays unknown, all parsed configurations remain available, and offsets are exported as decimal strings. Start a local inspection.