← Files Cecil-IA Labs FFmpegARCHIVED FILE
docs/development/checklists/streaming.md
2.29 KB · Sep 30, 2026 · 23:17 UTC
# Milestone 9 — Streaming & Capture — Checklist **Target:** `v0.7.0` **Status:** Implemented; local validation required before merge ## Architecture - [x] Separate source/capture, encoding, container, transport, and destination. - [x] Preserve the shared `runFFmpeg()` process boundary. - [x] No shell interpolation or `eval`. - [x] Structured `StreamPlan` and `StreamReport` contracts. - [x] Streaming JSON Schema. ## Commands - [x] Implement `stream camera`. - [x] Implement `stream file <input>`. - [x] FFprobe preflight for file sources. - [x] Real-time `-re` pacing for file sources by default. - [x] Dry-run planning without opening camera/network resources. - [x] Shared cancellation support. ## Capture - [x] Linux V4L2 support. - [x] macOS AVFoundation input format. - [x] Windows DirectShow input format. - [x] Explicit camera device. - [x] Configurable frame rate. - [x] Configurable video size. ## Transport/container - [x] HTTP/HTTPS → MPEG-TS. - [x] RTMP/RTMPS → FLV. - [x] RTSP → RTSP muxer with TCP/UDP lower-transport selection. - [x] SRT → MPEG-TS. - [x] UDP → MPEG-TS. - [x] TCP → MPEG-TS. - [x] URL-scheme/transport consistency validation. - [x] Direct WebSocket explicitly rejected with relay guidance. ## Encoding - [x] Low-latency H.264 default. - [x] MPEG-1 video profile for legacy JSMpeg-style workflows. - [x] Explicit video stream copy. - [x] AAC, audio copy, and audio-drop policies. - [x] Configurable bitrates, H.264 preset, GOP, and pixel format. ## Migration - [x] `stream-to-websocket.sh` correctly documented as HTTP output, not WebSocket. - [x] Equivalent typed CLI invocation documented. - [x] No dependency on the legacy Bash script at runtime. ## Quality - [x] Unit tests for transport inference, muxer defaults, WebSocket rejection, capture defaults, and legacy-shaped planning. - [x] CLI registration/options test. - [x] Dry-run integration tests that do not require a live receiver or camera. - [x] `verify:streaming` added to `npm run validate`. - [x] Milestone 9 docs added. - [ ] Run `npm run validate` in the configured local Codex Environment before merge. ## Acceptance criterion The architecture supports HTTP, RTMP, RTSP, SRT, UDP, and TCP without coupling capture/encoding to the transport. WebSocket remains an explicit relay concern instead of being mislabeled.
SHA-256: 613e2dbc31a8da0528db3b001c694070e9dfc1e6f6995fa4130e8ddf8f0d7f9a