wt-publish: default to CMAF passthrough seedbox mode
This commit is contained in:
parent
8e9eafe735
commit
1197bb4baa
4 changed files with 31 additions and 3 deletions
|
|
@ -60,6 +60,8 @@ cargo run -p ec-node -- wt-publish \
|
|||
--control-endpoint-addr-out /tmp/la-nbc-control-endpoint.json
|
||||
```
|
||||
|
||||
`wt-publish` defaults to `--passthrough=true` so relay and archive retain exact CMAF fragment bytes.
|
||||
|
||||
Watch (web):
|
||||
|
||||
```txt
|
||||
|
|
|
|||
|
|
@ -435,7 +435,7 @@ struct WtPublishArgs {
|
|||
transcode: bool,
|
||||
/// Transmit fMP4 fragments directly (passthrough mode).
|
||||
/// When false, the importer may reframe into CMAF fragments.
|
||||
#[arg(long, default_value_t = false, action = clap::ArgAction::Set)]
|
||||
#[arg(long, default_value_t = true, action = clap::ArgAction::Set)]
|
||||
passthrough: bool,
|
||||
/// Danger: disable TLS verification for the relay.
|
||||
#[arg(long, default_value_t = false)]
|
||||
|
|
|
|||
26
evolution/proposals/ECP-0072-cmaf-seedbox-invariant.md
Normal file
26
evolution/proposals/ECP-0072-cmaf-seedbox-invariant.md
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# ECP-0072: CMAF Seedbox Invariant For Relay Archive
|
||||
|
||||
## Context
|
||||
|
||||
Archive replay currently stores and serves relay groups exactly as received, but many existing broadcasts were published in `legacy` container mode. Those bytes are not browser-HLS compatible, so archive playback fails despite a valid timeline and object store.
|
||||
|
||||
## Decision
|
||||
|
||||
Make `wt-publish` default to CMAF passthrough (`--passthrough=true`) so:
|
||||
|
||||
- relay subscribers and archive workers observe the same CMAF fragment bytes (`moof+mdat`);
|
||||
- archive replay can serve those exact bytes without re-encoding;
|
||||
- the archive acts as a history seedbox of previously played chunks.
|
||||
|
||||
Update the NixOS module default `services.every-channel.ec-node.passthrough = true` to keep host deployments aligned with the seedbox invariant.
|
||||
|
||||
## Rationale
|
||||
|
||||
- Zero-transform archive path is simpler and more auditable.
|
||||
- Exact-byte retention avoids drift between live and replay.
|
||||
- Browsers can play CMAF fragments via standard HLS tooling; no custom legacy converter is required for new streams.
|
||||
|
||||
## Reversibility
|
||||
|
||||
- Operators can explicitly set `passthrough = false` per host to revert to legacy framing.
|
||||
- Existing archived legacy data remains readable for timeline/index use, but may require separate migration tooling for browser playback.
|
||||
|
|
@ -60,8 +60,8 @@ in
|
|||
|
||||
passthrough = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "Whether to transmit fMP4 fragments directly (moq-mux passthrough).";
|
||||
default = true;
|
||||
description = "Whether to transmit CMAF fMP4 fragments directly (seedbox-compatible passthrough).";
|
||||
};
|
||||
|
||||
tlsDisableVerify = lib.mkOption {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue