Skip to content

Standards Compliance โ€‹

Movi-Player follows ISO and international standards for maximum compatibility.

Compliance Overview โ€‹

ComponentStatusKey Standards
Demuxerโœ… CompliantISO/IEC 14496-14, ISO/IEC 14496-15
Codec Parserโœ… CompliantISO/IEC 14496-15, ISO/IEC 23008-2, ITU-T H.264/H.265
Playerโœ… CompliantWebCodecs API, Web Audio API
Elementโœ… CompliantHTML5 Custom Elements, WebGL2
Rendererโœ… CompliantWebGL2, ITU-T Color Spaces

Container Format Standards โ€‹

ISO/IEC 14496-14 (MP4) โ€‹

  • Proper parsing of MP4 container structure via FFmpeg WASM
  • Support for ftyp, moov, mdat boxes
  • Correct track and sample table handling

Matroska/WebM โ€‹

  • Full support for MKV container format
  • EBML parsing through FFmpeg
  • Multi-track audio/video/subtitle support
  • VP8/VP9/AV1 codec support in WebM

Codec String Formats โ€‹

HEVC (H.265) - ISO/IEC 14496-15 โ€‹

hvc1.{profileSpace}{profileIdc}.{compatibilityFlags}.{tier}{level}.{constraints}

Example: hvc1.2.4.L153.B0

  • Profile 2 (Main 10)
  • Compatibility: 0x4
  • Tier: Low
  • Level: 153 (5.1)

AVC (H.264) - ISO/IEC 14496-15 โ€‹

avc1.{profile}{compatibility}{level}

Example: avc1.640028

  • Profile: 0x64 (High Profile)
  • Compatibility: 0x00
  • Level: 0x28 (4.0)

AV1 - AV1 Codec ISO Media File Format โ€‹

av01.{profile}.{level}{tier}.{bitDepth}

Example: av01.0.01M.08

  • Profile: 0 (Main)
  • Level: 01 (2.1)
  • Tier: M (Main)
  • Bit Depth: 08 (8-bit)

VP9 - VP Codec ISO Media File Format โ€‹

vp09.{profile}.{level}.{bitDepth}.{chroma}.{primaries}.{transfer}.{matrix}.{range}

Example: vp09.02.51.10.01.09.16.09.00

  • Profile: 02 (Profile 2, 10-bit)
  • Level: 51 (5.1)
  • Bit Depth: 10
  • Chroma: 01 (4:2:0)
  • Primaries: 09 (BT.2020)
  • Transfer: 16 (SMPTE 2084 PQ)

Color Space Standards โ€‹

ITU-T H.273 - Color Identification โ€‹

Color Primaries โ€‹

CodeNameDescription
1bt709Rec. ITU-R BT.709-6 (HDTV)
9bt2020Rec. ITU-R BT.2020-2 (UHDTV)
10bt2020Same as 9
12smpte431DCI-P3
22p3Display P3

Transfer Characteristics โ€‹

CodeNameDescription
1bt709Rec. ITU-R BT.709-6
15iec61966-2-1sRGB
16bt2020-10BT.2020 10-bit
17bt2020-12BT.2020 12-bit
18pq / smpte2084SMPTE ST 2084 (HDR10)
20hlg / arib-std-b67Hybrid Log-Gamma

Matrix Coefficients โ€‹

CodeNameDescription
1bt709Rec. ITU-R BT.709-6
9bt2020-nclBT.2020 non-constant luminance
10bt2020-clBT.2020 constant luminance

HDR Detection โ€‹

Movi-Player uses multi-layered HDR detection:

  1. Metadata-first: Uses explicit color space values from container
  2. 4K Heuristic: For UHD content (โ‰ฅ3840ร—2160), assumes HDR if metadata missing
  3. Profile-based: HEVC Main10 profile indicates 10-bit content
typescript
// HDR detection logic
const isHDRTransfer =
  transfer.includes("pq") ||
  transfer.includes("hlg") ||
  transfer.includes("smpte2084") ||
  transfer.includes("arib-std-b67");

const isBT2020 = primaries.includes("bt2020") || primaries.includes("rec2020");

videoTrack.isHDR = isHDRTransfer || isBT2020;

Web Standards โ€‹

W3C WebCodecs API โ€‹

  • Proper use of VideoDecoder and AudioDecoder interfaces
  • Correct codec string format per WebCodecs registry
  • Hardware acceleration with software fallback

W3C Web Audio API โ€‹

  • AudioContext for playback (master clock)
  • Proper buffer scheduling and timing
  • Sample rate conversion handling

W3C Custom Elements v1 โ€‹

  • Element name contains hyphen (movi-player)
  • Shadow DOM encapsulation
  • Lifecycle callbacks (connectedCallback, disconnectedCallback, attributeChangedCallback)
  • Observed attributes declaration

WHATWG HTMLMediaElement โ€‹

Compatible properties:

  • src, poster, preload, crossorigin
  • paused, ended, currentTime, duration, playbackRate
  • play(), pause(), load()
  • autoplay, loop, muted, controls, volume

Standards References โ€‹

StandardFull NameVersion
ISO/IEC 14496-10H.264/AVC Video CodingEdition 11 (2020)
ISO/IEC 14496-12ISO Base Media File FormatEdition 7 (2022)
ISO/IEC 14496-14MP4 File FormatEdition 2 (2020)
ISO/IEC 14496-15Carriage of NAL in ISOEdition 5 (2022)
ISO/IEC 23008-2HEVC Video CodingEdition 3 (2020)
ITU-T H.264Advanced Video Coding06/2019
ITU-T H.265High Efficiency Video Coding11/2019
ITU-T H.273Coding-independent code points12/2016
SMPTE ST 2084High Dynamic Range EOTF2014
ARIB STD-B67Hybrid Log-Gamma (HLG)2015

Verification โ€‹

To verify standards compliance:

  1. Codec String Validation

    typescript
    const support = await VideoDecoder.isConfigSupported({
      codec: "hvc1.2.4.L153.B0",
    });
  2. Color Space Accuracy

    • Compare against MediaInfo/FFprobe output
    • Verify HDR content displays correctly
  3. Container Compatibility

    • Test with standards-compliant MP4/MKV/WebM files
    • Verify against ISO reference software