Skip to content

Fixed saving non-common encoder settings - #6163

Open
aleksandr-voitenko wants to merge 3 commits into
stagingfrom
fix-encoder-settings
Open

Fixed saving non-common encoder settings#6163
aleksandr-voitenko wants to merge 3 commits into
stagingfrom
fix-encoder-settings

Conversation

@aleksandr-voitenko

@aleksandr-voitenko aleksandr-voitenko commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

⚠️This PR depends on:
streamlabs/obs-studio-node#1770

Motivation

Users could save encoder settings in the UI without those settings reaching the encoder. This caused recordings to ignore the selected keyframe interval and Advanced audio tracks to use 160 Kbps despite a configured bitrate of 320 Kbps. Streaming also lost settings such as encoder presets and profiles.

The issue originated during the Factory API migration. Settings continued to persist through the existing settings API, while Desktop passed only selected video properties to Factory-created encoders and hardcoded audio track settings. A subsequent recording fix restored bitrate and rate control but left other properties missing.

Description

This change depends on OSN PR #1770, which exposes saved encoder settings and supports replacing user settings on inactive encoders. Desktop supplies these settings explicitly, preserving native encoder defaults and existing output policies.

Registered audio tracks are updated in place so outputs retain valid references. Retained video encoders receive current settings before reuse.

Tests inspect native objects and use ffprobe to verify keyframe spacing and audio bitrates in local recordings.

Changes

  • Pass complete saved video encoder settings to streaming and recording encoders.
  • Refresh retained inactive encoders before reuse, clearing disabled options and recreating idle output contexts when the selected encoder changes.
  • Apply saved Advanced audio track bitrates and names, Simple streaming audio bitrate, and the selected recording audio encoder.
  • Add integration tests covering settings propagation, retained outputs, shared recording/replay encoders, and encoded media.

@bundlemon

bundlemon Bot commented Sep 8, 2026

Copy link
Copy Markdown

BundleMon

Files added (4)
Status Path Size Limits
renderer.(hash).js
+10.53MB -
vendors~renderer.(hash).js
+4.67MB -
updater.js
+115.29KB -
guest-api.js
+40.23KB -

Total files change +15.35MB

Final result: ✅

View report in BundleMon website ➡️


Current branch size history

@aleksandr-voitenko aleksandr-voitenko changed the title [WIP] Fixed saving non-common encoder settings Fixed saving non-common encoder settings Sep 9, 2026
@michelinewu michelinewu added staging Pull requests that can't be bundled needs new osn version This code is waiting for the next osn version before it can be merged labels Sep 9, 2026
Comment thread test/regular/settings/encoder-settings.ts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs new osn version This code is waiting for the next osn version before it can be merged staging Pull requests that can't be bundled

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants