From 717bd1c02ce2e724aa2159b0fd14f4eba2fd1317 Mon Sep 17 00:00:00 2001 From: fkwp Date: Wed, 18 Jun 2025 20:32:57 +0200 Subject: [PATCH] add h264 specific presets and use them as simlucast layers --- src/livekit/options.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/livekit/options.ts b/src/livekit/options.ts index 8210f8a8..539a6471 100644 --- a/src/livekit/options.ts +++ b/src/livekit/options.ts @@ -11,10 +11,17 @@ import { type RoomOptions, ScreenSharePresets, type TrackPublishDefaults, - type VideoPreset, + VideoPreset, VideoPresets, } from "livekit-client"; +const VideoPresetsH264 = { + h144: new VideoPreset(256, 144, 120_000, 20), + h176: new VideoPreset(320, 176, 160_000, 20), + h288: new VideoPreset(512, 288, 180_000, 20), + h360: VideoPresets.h360, +} as const; + const defaultLiveKitPublishOptions: TrackPublishDefaults = { audioPreset: AudioPresets.music, dtx: true, @@ -23,7 +30,10 @@ const defaultLiveKitPublishOptions: TrackPublishDefaults = { red: false, forceStereo: false, simulcast: true, - videoSimulcastLayers: [VideoPresets.h180, VideoPresets.h360] as VideoPreset[], + videoSimulcastLayers: [ + VideoPresetsH264.h176, + VideoPresetsH264.h360, + ] as VideoPreset[], screenShareEncoding: ScreenSharePresets.h1080fps30.encoding, stopMicTrackOnMute: false, videoCodec: "h264",