From 2f93d0cb50476c6690632d6cc4404a655008ef5c Mon Sep 17 00:00:00 2001 From: fkwp Date: Tue, 10 Jun 2025 10:43:01 +0200 Subject: [PATCH 01/20] fix docker image for lk-jwt-service to 0.2.3 --- dev-backend-docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-backend-docker-compose.yml b/dev-backend-docker-compose.yml index d711c41ac..b8c96459c 100644 --- a/dev-backend-docker-compose.yml +++ b/dev-backend-docker-compose.yml @@ -3,7 +3,7 @@ networks: services: auth-service: - image: ghcr.io/element-hq/lk-jwt-service:latest-ci + image: ghcr.io/element-hq/lk-jwt-service:0.2.3 hostname: auth-server environment: - LIVEKIT_JWT_PORT=6080 From 80ebfcae452153a10cbac1f0b0d8bd2be77f60c2 Mon Sep 17 00:00:00 2001 From: fkwp Date: Thu, 12 Jun 2025 15:11:41 +0200 Subject: [PATCH 02/20] addressing review comments. We now default to latest-ci build and force the image to be pulled everytime --- dev-backend-docker-compose.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dev-backend-docker-compose.yml b/dev-backend-docker-compose.yml index b8c96459c..d927bc9c2 100644 --- a/dev-backend-docker-compose.yml +++ b/dev-backend-docker-compose.yml @@ -3,7 +3,8 @@ networks: services: auth-service: - image: ghcr.io/element-hq/lk-jwt-service:0.2.3 + image: ghcr.io/element-hq/lk-jwt-service:latest-ci + pull_policy: always hostname: auth-server environment: - LIVEKIT_JWT_PORT=6080 From 8b3af0017a524fd626145fd6d845127b4c90f8f0 Mon Sep 17 00:00:00 2001 From: fkwp Date: Wed, 18 Jun 2025 16:40:13 +0200 Subject: [PATCH 03/20] change video codec from vp8 to h264 --- src/livekit/options.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/livekit/options.ts b/src/livekit/options.ts index 1d4cad774..8210f8a8c 100644 --- a/src/livekit/options.ts +++ b/src/livekit/options.ts @@ -26,9 +26,9 @@ const defaultLiveKitPublishOptions: TrackPublishDefaults = { videoSimulcastLayers: [VideoPresets.h180, VideoPresets.h360] as VideoPreset[], screenShareEncoding: ScreenSharePresets.h1080fps30.encoding, stopMicTrackOnMute: false, - videoCodec: "vp8", + videoCodec: "h264", videoEncoding: VideoPresets.h720.encoding, - backupCodec: { codec: "vp8", encoding: VideoPresets.h720.encoding }, + backupCodec: { codec: "h264", encoding: VideoPresets.h720.encoding }, } as const; export const defaultLiveKitOptions: RoomOptions = { From 717bd1c02ce2e724aa2159b0fd14f4eba2fd1317 Mon Sep 17 00:00:00 2001 From: fkwp Date: Wed, 18 Jun 2025 20:32:57 +0200 Subject: [PATCH 04/20] 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 8210f8a8c..539a6471c 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", From 9a38c235c1a70e9e8f118f7d446da46fdd57420a Mon Sep 17 00:00:00 2001 From: fkwp Date: Wed, 18 Jun 2025 20:49:41 +0200 Subject: [PATCH 05/20] trying different resolutions --- src/livekit/options.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/livekit/options.ts b/src/livekit/options.ts index 539a6471c..a5b08639c 100644 --- a/src/livekit/options.ts +++ b/src/livekit/options.ts @@ -16,7 +16,8 @@ import { } from "livekit-client"; const VideoPresetsH264 = { - h144: new VideoPreset(256, 144, 120_000, 20), + h144: new VideoPreset(176, 144, 120_000, 20), + h240: new VideoPreset(320, 240, 120_000, 20), h176: new VideoPreset(320, 176, 160_000, 20), h288: new VideoPreset(512, 288, 180_000, 20), h360: VideoPresets.h360, @@ -31,7 +32,7 @@ const defaultLiveKitPublishOptions: TrackPublishDefaults = { forceStereo: false, simulcast: true, videoSimulcastLayers: [ - VideoPresetsH264.h176, + VideoPresetsH264.h240, VideoPresetsH264.h360, ] as VideoPreset[], screenShareEncoding: ScreenSharePresets.h1080fps30.encoding, From e74f168a4ed7ecbabd071abe14d2231334e0f7a5 Mon Sep 17 00:00:00 2001 From: fkwp Date: Wed, 18 Jun 2025 21:12:12 +0200 Subject: [PATCH 06/20] trying different resolutions --- src/livekit/options.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/livekit/options.ts b/src/livekit/options.ts index a5b08639c..f1e70cd2c 100644 --- a/src/livekit/options.ts +++ b/src/livekit/options.ts @@ -19,7 +19,7 @@ const VideoPresetsH264 = { h144: new VideoPreset(176, 144, 120_000, 20), h240: new VideoPreset(320, 240, 120_000, 20), h176: new VideoPreset(320, 176, 160_000, 20), - h288: new VideoPreset(512, 288, 180_000, 20), + h288: new VideoPreset(382, 288, 180_000, 20), h360: VideoPresets.h360, } as const; @@ -32,14 +32,13 @@ const defaultLiveKitPublishOptions: TrackPublishDefaults = { forceStereo: false, simulcast: true, videoSimulcastLayers: [ - VideoPresetsH264.h240, VideoPresetsH264.h360, ] as VideoPreset[], screenShareEncoding: ScreenSharePresets.h1080fps30.encoding, stopMicTrackOnMute: false, videoCodec: "h264", videoEncoding: VideoPresets.h720.encoding, - backupCodec: { codec: "h264", encoding: VideoPresets.h720.encoding }, + backupCodec: { codec: "vp8", encoding: VideoPresets.h720.encoding }, } as const; export const defaultLiveKitOptions: RoomOptions = { From 790cd82cc5927b3700606b895279663e74480f7f Mon Sep 17 00:00:00 2001 From: fkwp Date: Wed, 18 Jun 2025 21:44:01 +0200 Subject: [PATCH 07/20] trying different resolutions --- src/livekit/options.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/livekit/options.ts b/src/livekit/options.ts index f1e70cd2c..0a96bf65c 100644 --- a/src/livekit/options.ts +++ b/src/livekit/options.ts @@ -16,7 +16,7 @@ import { } from "livekit-client"; const VideoPresetsH264 = { - h144: new VideoPreset(176, 144, 120_000, 20), + h144: new VideoPreset(176, 144, 150_000, 20), h240: new VideoPreset(320, 240, 120_000, 20), h176: new VideoPreset(320, 176, 160_000, 20), h288: new VideoPreset(382, 288, 180_000, 20), @@ -32,6 +32,7 @@ const defaultLiveKitPublishOptions: TrackPublishDefaults = { forceStereo: false, simulcast: true, videoSimulcastLayers: [ + VideoPresetsH265.h144, VideoPresetsH264.h360, ] as VideoPreset[], screenShareEncoding: ScreenSharePresets.h1080fps30.encoding, From 51b6d26a05be961bf514b5bec0e00ddb390290df Mon Sep 17 00:00:00 2001 From: fkwp Date: Wed, 18 Jun 2025 21:47:15 +0200 Subject: [PATCH 08/20] typo --- src/livekit/options.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/livekit/options.ts b/src/livekit/options.ts index 0a96bf65c..663ed255d 100644 --- a/src/livekit/options.ts +++ b/src/livekit/options.ts @@ -32,7 +32,7 @@ const defaultLiveKitPublishOptions: TrackPublishDefaults = { forceStereo: false, simulcast: true, videoSimulcastLayers: [ - VideoPresetsH265.h144, + VideoPresetsH264.h144, VideoPresetsH264.h360, ] as VideoPreset[], screenShareEncoding: ScreenSharePresets.h1080fps30.encoding, From 9a83eb9e3b93767149627979a6abdcf36d714724 Mon Sep 17 00:00:00 2001 From: fkwp Date: Wed, 18 Jun 2025 21:56:18 +0200 Subject: [PATCH 09/20] wip --- src/livekit/options.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/livekit/options.ts b/src/livekit/options.ts index 663ed255d..155bc4f0b 100644 --- a/src/livekit/options.ts +++ b/src/livekit/options.ts @@ -16,8 +16,8 @@ import { } from "livekit-client"; const VideoPresetsH264 = { - h144: new VideoPreset(176, 144, 150_000, 20), - h240: new VideoPreset(320, 240, 120_000, 20), + h144: new VideoPreset(176, 144, 155_000, 20), + h240: new VideoPreset(320, 240, 160_000, 20), h176: new VideoPreset(320, 176, 160_000, 20), h288: new VideoPreset(382, 288, 180_000, 20), h360: VideoPresets.h360, @@ -32,7 +32,7 @@ const defaultLiveKitPublishOptions: TrackPublishDefaults = { forceStereo: false, simulcast: true, videoSimulcastLayers: [ - VideoPresetsH264.h144, + VideoPresetsH264.h176, VideoPresetsH264.h360, ] as VideoPreset[], screenShareEncoding: ScreenSharePresets.h1080fps30.encoding, From 045b8b1afd6055f6030f020ff821460dabb3fbf0 Mon Sep 17 00:00:00 2001 From: fkwp Date: Wed, 18 Jun 2025 21:59:12 +0200 Subject: [PATCH 10/20] wip --- src/livekit/options.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/livekit/options.ts b/src/livekit/options.ts index 155bc4f0b..decce8a27 100644 --- a/src/livekit/options.ts +++ b/src/livekit/options.ts @@ -32,7 +32,7 @@ const defaultLiveKitPublishOptions: TrackPublishDefaults = { forceStereo: false, simulcast: true, videoSimulcastLayers: [ - VideoPresetsH264.h176, + VideoPresetsH264.h240, VideoPresetsH264.h360, ] as VideoPreset[], screenShareEncoding: ScreenSharePresets.h1080fps30.encoding, From c2b75580e9529f7015a626767bdaf36a1a025da1 Mon Sep 17 00:00:00 2001 From: fkwp Date: Wed, 18 Jun 2025 22:10:04 +0200 Subject: [PATCH 11/20] wip --- src/livekit/options.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/livekit/options.ts b/src/livekit/options.ts index decce8a27..f18df3264 100644 --- a/src/livekit/options.ts +++ b/src/livekit/options.ts @@ -20,7 +20,9 @@ const VideoPresetsH264 = { h240: new VideoPreset(320, 240, 160_000, 20), h176: new VideoPreset(320, 176, 160_000, 20), h288: new VideoPreset(382, 288, 180_000, 20), - h360: VideoPresets.h360, +// h360: VideoPresets.h360, + h360: new VideoPreset(640, 360, 160_000, 20), + h540: new VideoPreset(960, 540, 450_000, 20), } as const; const defaultLiveKitPublishOptions: TrackPublishDefaults = { @@ -32,8 +34,8 @@ const defaultLiveKitPublishOptions: TrackPublishDefaults = { forceStereo: false, simulcast: true, videoSimulcastLayers: [ - VideoPresetsH264.h240, VideoPresetsH264.h360, + VideoPresetsH264.h540, ] as VideoPreset[], screenShareEncoding: ScreenSharePresets.h1080fps30.encoding, stopMicTrackOnMute: false, From 4fa26a062a146e7ef20fe67918d130bdd60844a8 Mon Sep 17 00:00:00 2001 From: fkwp Date: Wed, 18 Jun 2025 22:15:03 +0200 Subject: [PATCH 12/20] wip --- src/livekit/options.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/livekit/options.ts b/src/livekit/options.ts index f18df3264..f166e754c 100644 --- a/src/livekit/options.ts +++ b/src/livekit/options.ts @@ -21,8 +21,8 @@ const VideoPresetsH264 = { h176: new VideoPreset(320, 176, 160_000, 20), h288: new VideoPreset(382, 288, 180_000, 20), // h360: VideoPresets.h360, - h360: new VideoPreset(640, 360, 160_000, 20), - h540: new VideoPreset(960, 540, 450_000, 20), + h360: new VideoPreset(640, 360, 450_000, 20), + h540: new VideoPreset(960, 540, 800_000, 20), } as const; const defaultLiveKitPublishOptions: TrackPublishDefaults = { From f2e6e86e8e9573cba756429fbf0f219ebcb87b2f Mon Sep 17 00:00:00 2001 From: fkwp Date: Wed, 18 Jun 2025 22:19:45 +0200 Subject: [PATCH 13/20] wip --- src/livekit/options.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/livekit/options.ts b/src/livekit/options.ts index f166e754c..aa793a7e1 100644 --- a/src/livekit/options.ts +++ b/src/livekit/options.ts @@ -35,7 +35,6 @@ const defaultLiveKitPublishOptions: TrackPublishDefaults = { simulcast: true, videoSimulcastLayers: [ VideoPresetsH264.h360, - VideoPresetsH264.h540, ] as VideoPreset[], screenShareEncoding: ScreenSharePresets.h1080fps30.encoding, stopMicTrackOnMute: false, From dab1383d265b86a75fc935b0b2965237996ee242 Mon Sep 17 00:00:00 2001 From: fkwp Date: Wed, 18 Jun 2025 22:33:51 +0200 Subject: [PATCH 14/20] wip --- src/livekit/options.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/livekit/options.ts b/src/livekit/options.ts index aa793a7e1..d1db9d2f6 100644 --- a/src/livekit/options.ts +++ b/src/livekit/options.ts @@ -34,11 +34,12 @@ const defaultLiveKitPublishOptions: TrackPublishDefaults = { forceStereo: false, simulcast: true, videoSimulcastLayers: [ - VideoPresetsH264.h360, + VideoPresets.h180, + VideoPresets.h360, ] as VideoPreset[], screenShareEncoding: ScreenSharePresets.h1080fps30.encoding, stopMicTrackOnMute: false, - videoCodec: "h264", + videoCodec: "h265", videoEncoding: VideoPresets.h720.encoding, backupCodec: { codec: "vp8", encoding: VideoPresets.h720.encoding }, } as const; From ec99fc5360cc77135eae713bc7e74909e6bb05da Mon Sep 17 00:00:00 2001 From: fkwp Date: Wed, 18 Jun 2025 22:45:12 +0200 Subject: [PATCH 15/20] wip --- src/livekit/options.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/livekit/options.ts b/src/livekit/options.ts index d1db9d2f6..a7e18d12d 100644 --- a/src/livekit/options.ts +++ b/src/livekit/options.ts @@ -33,13 +33,13 @@ const defaultLiveKitPublishOptions: TrackPublishDefaults = { red: false, forceStereo: false, simulcast: true, - videoSimulcastLayers: [ - VideoPresets.h180, - VideoPresets.h360, - ] as VideoPreset[], +// videoSimulcastLayers: [ +// VideoPresets.h180, +// VideoPresets.h360, +// ] as VideoPreset[], screenShareEncoding: ScreenSharePresets.h1080fps30.encoding, stopMicTrackOnMute: false, - videoCodec: "h265", + videoCodec: "h264", videoEncoding: VideoPresets.h720.encoding, backupCodec: { codec: "vp8", encoding: VideoPresets.h720.encoding }, } as const; From 6d783384b00bc691ccec0289392293eb7d47e573 Mon Sep 17 00:00:00 2001 From: fkwp Date: Wed, 18 Jun 2025 22:49:31 +0200 Subject: [PATCH 16/20] wip --- src/livekit/options.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/livekit/options.ts b/src/livekit/options.ts index a7e18d12d..97fe8267f 100644 --- a/src/livekit/options.ts +++ b/src/livekit/options.ts @@ -33,10 +33,10 @@ const defaultLiveKitPublishOptions: TrackPublishDefaults = { red: false, forceStereo: false, simulcast: true, -// videoSimulcastLayers: [ -// VideoPresets.h180, -// VideoPresets.h360, -// ] as VideoPreset[], + videoSimulcastLayers: [ + VideoPresetsH264.h240, + VideoPresets.h360, + ] as VideoPreset[], screenShareEncoding: ScreenSharePresets.h1080fps30.encoding, stopMicTrackOnMute: false, videoCodec: "h264", From dc2665873f63736cad7f4c4dd93dc70259af4fb0 Mon Sep 17 00:00:00 2001 From: fkwp Date: Thu, 19 Jun 2025 10:36:50 +0200 Subject: [PATCH 17/20] wip --- src/livekit/options.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/livekit/options.ts b/src/livekit/options.ts index 97fe8267f..a0fa193e9 100644 --- a/src/livekit/options.ts +++ b/src/livekit/options.ts @@ -16,8 +16,8 @@ import { } from "livekit-client"; const VideoPresetsH264 = { - h144: new VideoPreset(176, 144, 155_000, 20), - h240: new VideoPreset(320, 240, 160_000, 20), + h144: new VideoPreset(256, 144, 155_000, 20), + h240: new VideoPreset(480, 234, 160_000, 20), h176: new VideoPreset(320, 176, 160_000, 20), h288: new VideoPreset(382, 288, 180_000, 20), // h360: VideoPresets.h360, @@ -34,7 +34,7 @@ const defaultLiveKitPublishOptions: TrackPublishDefaults = { forceStereo: false, simulcast: true, videoSimulcastLayers: [ - VideoPresetsH264.h240, + VideoPresetsH264.h144, VideoPresets.h360, ] as VideoPreset[], screenShareEncoding: ScreenSharePresets.h1080fps30.encoding, From 0a18451640f2848cca5c636aa9723bfd92e8a1d3 Mon Sep 17 00:00:00 2001 From: fkwp Date: Thu, 19 Jun 2025 10:42:14 +0200 Subject: [PATCH 18/20] wip --- src/livekit/options.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/livekit/options.ts b/src/livekit/options.ts index a0fa193e9..da6a30e67 100644 --- a/src/livekit/options.ts +++ b/src/livekit/options.ts @@ -34,7 +34,7 @@ const defaultLiveKitPublishOptions: TrackPublishDefaults = { forceStereo: false, simulcast: true, videoSimulcastLayers: [ - VideoPresetsH264.h144, +// VideoPresetsH264.h144, VideoPresets.h360, ] as VideoPreset[], screenShareEncoding: ScreenSharePresets.h1080fps30.encoding, From af7ef0e9fa82747de3b276a51ea4bc02027a75d4 Mon Sep 17 00:00:00 2001 From: fkwp Date: Thu, 19 Jun 2025 13:20:57 +0200 Subject: [PATCH 19/20] wip --- src/livekit/options.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/livekit/options.ts b/src/livekit/options.ts index da6a30e67..a0fa193e9 100644 --- a/src/livekit/options.ts +++ b/src/livekit/options.ts @@ -34,7 +34,7 @@ const defaultLiveKitPublishOptions: TrackPublishDefaults = { forceStereo: false, simulcast: true, videoSimulcastLayers: [ -// VideoPresetsH264.h144, + VideoPresetsH264.h144, VideoPresets.h360, ] as VideoPreset[], screenShareEncoding: ScreenSharePresets.h1080fps30.encoding, From 216238394888997f7b3135b2e59381327da1205a Mon Sep 17 00:00:00 2001 From: fkwp Date: Thu, 19 Jun 2025 13:22:41 +0200 Subject: [PATCH 20/20] debug livekit logging --- src/main.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.tsx b/src/main.tsx index 654bd93cd..a71afef41 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -29,7 +29,7 @@ window.setLKLogLevel = setLKLogLevel; initRageshake().catch((e) => { logger.error("Failed to initialize rageshake", e); }); -setLKLogLevel("info"); +setLKLogLevel("debug"); setLKLogExtension((level, msg, context) => { // we pass a synthetic logger name of "livekit" to the rageshake to make it easier to read global.mx_rage_logger.log(level, "livekit", msg, context);