Goal
Teach the Rust producer to push to Icecast, with the target configurable and the recording tee kept independent of the push target (Phase 2 of #164).
Tasks
Files
backend/src/stream_bridge.rs, backend/src/config.rs.
Acceptance
Producer can target /test or /live purely via config; switching the push target test→live does not restart the recording tee (no gap in the archive).
Depends on
#164 Phase-2 stack ticket (mounts + credentials must exist).
Parent: #164 (Phase 2).
Goal
Teach the Rust producer to push to Icecast, with the target configurable and the recording tee kept independent of the push target (Phase 2 of #164).
Tasks
backend/src/stream_bridge.rs, make the ffmpeg output target configurable (env/config, not hardcoded) and add an Icecast output:… -vn -content_type audio/mpeg -f mp3 icecast://source:<pw>@host:port/<mount>(or-f opus/-f adts). The RTMP defaults already live inbackend/src/config.rs(default_rtmp_url/default_rtmp_stream_key, overridable viaRTMP_URL/RTMP_STREAM_KEYenv) — extend that pattern.Files
backend/src/stream_bridge.rs,backend/src/config.rs.Acceptance
Producer can target
/testor/livepurely via config; switching the push target test→live does not restart the recording tee (no gap in the archive).Depends on
#164 Phase-2 stack ticket (mounts + credentials must exist).
Parent: #164 (Phase 2).