diff --git a/plugins/prebuffer-mixin/src/main.ts b/plugins/prebuffer-mixin/src/main.ts index 70f66635f..a9ada7f32 100644 --- a/plugins/prebuffer-mixin/src/main.ts +++ b/plugins/prebuffer-mixin/src/main.ts @@ -351,7 +351,12 @@ class PrebufferSession { const currentParser = parser.isDefault ? STRING_DEFAULT : parser.parser; - const choices = this.canUseRtmpParser(this.advertisedMediaStreamOptions) + const choices = this.mixin.streamSettings.storageSettings.values.synthenticStreams.includes(this.streamId) + ? [ + FFMPEG_PARSER_TCP, + FFMPEG_PARSER_UDP, + ] + : this.canUseRtmpParser(this.advertisedMediaStreamOptions) ? [ STRING_DEFAULT, SCRYPTED_PARSER_TCP, @@ -1405,6 +1410,7 @@ class PrebufferMixin extends SettingsMixinDeviceBase implements Vid session = new PrebufferSession(this, { id: synthetic, + container: 'rtsp', }, false, false); this.sessions.set(id, session); this.console.log('stream', synthetic, 'is synthetic and will be rebroadcast on demand.'); diff --git a/plugins/prebuffer-mixin/src/stream-settings.ts b/plugins/prebuffer-mixin/src/stream-settings.ts index 52b19543f..b447f8659 100644 --- a/plugins/prebuffer-mixin/src/stream-settings.ts +++ b/plugins/prebuffer-mixin/src/stream-settings.ts @@ -227,7 +227,7 @@ export function createStreamSettings(device: MixinDeviceBase) { hide: false, }; - if (msos?.length > 1) { + if (msos?.length > 1 || storageSettings.values.synthenticStreams.length > 0) { return { enabledStreams, defaultStream: createStreamOptions(streamTypes.defaultStream, msos),