every.channel/docs/BABY_STEPS.md
2026-02-15 16:17:27 -05:00

1.9 KiB

Baby steps

These are the smallest useful steps to get a real MoQ pipeline running end-to-end.

  1. Capture and inspect transport streams
  • Confirm HDHomeRun discovery on the local network.
  • Fetch lineup JSON and map it to ec-core::Channel.
  • Open a raw MPEG-TS stream for a single channel and write it to disk.
  1. Deterministic transcode + chunking
  • Choose a reference ffmpeg profile (encoder, GOP, keyframe cadence).
  • Emit fixed-duration chunks with deterministic timestamps.
  • Hash chunks and verify that repeated runs are byte-identical.
  1. MoQ object model
  • Model track/group/object IDs and object metadata in ec-moq.
  • Map each chunk to a MoQ object with deterministic naming.
  • Validate that object IDs are stable across runs.
  1. Single-node publish + replay
  • Build a local relay that stores objects on disk.
  • Publish from the chopper to the relay.
  • Replay stored objects to a local subscriber and validate playback.
  1. Multi-node relay mesh
  • Integrate iroh for node discovery and routing.
  • Replicate objects between two relays.
  • Verify that a subscriber can pull from either relay.
  1. Client surfaces
  • Tauri shell that lists available tracks and plays one.
  • CLI that can subscribe and dump objects for inspection.
  • Static web UI that connects to a relay gateway.
  1. Time-synchronized chunking
  • Parse PCR + STT/TDT/TOT to anchor chunk boundaries to broadcast UTC.
  • Emit deterministic TS chunks with sync metadata.
  • Promote source-scoped streams to broadcast-scoped streams when synced.
  1. MoQ publish path
  • Wrap time-aligned chunks as MoQ objects (timing metadata attached).
  • Write objects to the local relay store.
  • Wire to iroh transport once MoQ session adapters are stable.
  1. Production hardening
  • Crash recovery and backfill.
  • Observability: tracing, metrics, object retention.
  • Network policies for DMCA resilience and takedown mitigation.