28 lines
1.1 KiB
Markdown
28 lines
1.1 KiB
Markdown
# 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.
|
|
|