From 6ed0c062932e4239a33002925a19e647953c4e6f Mon Sep 17 00:00:00 2001 From: Kieran Date: Fri, 6 Jun 2025 21:57:54 +0100 Subject: [PATCH] feat: add multi-variant output to default --- crates/zap-stream/src/overseer.rs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/crates/zap-stream/src/overseer.rs b/crates/zap-stream/src/overseer.rs index e1fa7b0..c86c3ed 100644 --- a/crates/zap-stream/src/overseer.rs +++ b/crates/zap-stream/src/overseer.rs @@ -554,6 +554,23 @@ fn get_default_variants(info: &IngressInfo) -> Result> { keyframe_interval: video_src.fps as u16 * 2, pixel_format: AV_PIX_FMT_YUV420P as u32, })); + vars.push(VariantStream::Video(VideoVariant { + mapping: VariantMapping { + id: Uuid::new_v4(), + src_index: video_src.index, + dst_index: 4, + group_id: 2, + }, + width: 640, + height: 480, + fps: video_src.fps, + bitrate: 1_000_000, + codec: "libx264".to_string(), + profile: 77, // AV_PROFILE_H264_MAIN + level: 51, + keyframe_interval: video_src.fps as u16 * 2, + pixel_format: AV_PIX_FMT_YUV420P as u32, + })); } if let Some(audio_src) = info @@ -580,6 +597,19 @@ fn get_default_variants(info: &IngressInfo) -> Result> { sample_rate: 48_000, sample_fmt: "fltp".to_owned(), })); + vars.push(VariantStream::Audio(AudioVariant { + mapping: VariantMapping { + id: Uuid::new_v4(), + src_index: audio_src.index, + dst_index: 5, + group_id: 2, + }, + bitrate: 64_000, + codec: "aac".to_string(), + channels: 2, + sample_rate: 48_000, + sample_fmt: "fltp".to_owned(), + })); } Ok(vars)