Skip to content

Streaming Model

Majestic prioritizes deterministic playback over opportunistic transcoding. Playback outcome is predictable. No "maybe it will work" paths.

Playback Philosophy

RuleMeaning
Deterministic over opportunisticPlayback outcome is predictable.
No real-time CPU transcoding for core functionalityDirect play, remux, or pre-built artifacts. Never "transcode on demand or fail."
Prediction at scan time, not discovery at play timeCapability is known before the user presses Play. Compatibility is computed during scan.
No silent codec fallbackUsers are never surprised by degraded quality. If something is adapted, it is declared.

Device Capability Modeling

Each client device has a declared capability profile. Capabilities are explicit, versioned, and immutable.

  • Profiles are versioned (e.g. appletv_v1, mac_v1). New capabilities = new profile version.
  • Capabilities are stored as facts. Compatibility is computed at request time, never persisted as client-side truth.
  • Unknown device → 400. No implicit fallback to a generic profile.

Optimization Policy

Allowed

OperationCondition
Remux containerMKV/M2TS/TS → fragmented MP4. Video and audio copied. No re-encode.
Convert TrueHD → E-AC3Only when user has opted into adaptive policy. Explicit.
Convert DTS → E-AC3Same. Adaptive policy, explicit.
Extract PGS → SRTText extraction, not re-encode.
Strip unused tracksWhen producing artifact. Reduces size. No quality impact.

Not Allowed

OperationReason
Silent bitrate downscalingDegrades quality without user knowledge.
Automatic lossy video transcode without user actionVideo transcode is never automatic. User must explicitly opt in.
Background format mutation without explicit permissionNo "we optimized your library" without consent.

Low-End Hardware Guarantee

Majestic must function reliably on hardware incapable of real-time 4K transcoding.

  • No transcoding dependency for core playback.
  • Direct play and remux are the primary paths.
  • Design for NAS, Raspberry Pi, older hardware.

UX Promise

OutcomeUser Experience
Succeed immediatelyStream starts. No spinner, no mystery.
Preparation in progress202 + Retry-After. User knows something is building.
IncompatibilityClear message. Reason visible. No Play button, or disabled with explanation.

Playback will never fail silently. No black screen. No spinner that never resolves. No silent fallback to lower quality.

Contract version and hash embedded at build time.