every.channel/evolution/proposals/ECP-0049-ts-ingest-cmaf-canonical.md
2026-02-15 16:17:27 -05:00

1.1 KiB

ECP-0049: TS Ingest, CMAF Canonical (Enforcement)

Why

HDHomeRun (and many tuner stacks) output MPEG-TS. We still want first-class, native ingest of TS sources.

Separately, the network needs a single canonical chunk container so that hashing, signing, verification, relaying, and multi-variant manifests stay consistent. That canonical container is CMAF (fMP4).

This ECP clarifies the boundary so "CMAF-only" does not get misread as "no TS support".

Decisions

  • TS is an ingest input format.
  • CMAF (fMP4) is the only on-disk and on-wire chunk container inside every.channel:
    • init.mp4 + segment_*.m4s
  • HLS playlists (index.m3u8) are allowed only as a local playback compatibility artifact.
    • They must reference the CMAF fragments above; playlists are not network objects.

Implementation Notes

  • ec-node ingest hdhr|linux-dvb|ts|hls reads whatever the source provides and normalizes to CMAF fragments.
  • ec-moq::HlsWriter is CMAF-only (no TS segment writer).

Reversibility

Medium. Reintroducing TS chunks later would require explicit opt-in and a new manifest/object mode, but the default remains CMAF.