Sponsor program
If you would like to help our projects, please support us.
Note
This is a beta release of 1.1.0. It adds Program Output, which streams, records, and runs a replay buffer from OBS's Program (what OBS itself streams and records) instead of from a single source. It also adds the Hybrid MOV recording format and fixes several issues found after 1.0.13. New text in the user interface is translated only into English and Japanese so far; other languages show it in English. Please try it and report any problems via Issues.
New Features
- Program Output: Stream, record, and run a replay buffer from OBS's Program, with settings separate from OBS's own. (#118)
- Click the + button in the Branch Output Status dock and choose Program. Turn on streaming, recording, or the replay buffer in the window that opens, and click OK to start.
- You can add more than one Program Output. Each one has its own settings, just like a Branch Output filter.
- In Studio Mode, a Program Output always shows the Program, including transitions, never the Preview.
- By default, its audio is Master Audio Track 1, the track OBS's own stream uses by default. You can choose other audio sources and tracks, as with a filter.
- By default, its resolution is OBS's Output (Scaled) Resolution. You can also choose the canvas size (100%, 75%, 50%, 25%) or a custom size, crop the picture, and lower the frame rate.
- Settings that only make sense for a filter are not shown: Video Source, "Blank output when source is not in Program", Filter Audio, and "Suspend recording when source is not available".
- Program Outputs are saved with each profile. Switching profiles stops the current profile's Program Outputs and starts those of the new one. Switching scene collections restarts them, so a recording continues in a new file.
- Program Outputs follow the Status Dock's Interlock setting, like filters.
- Each Program Output has the same hotkeys as a filter. You can find them in Settings → Hotkeys, among OBS's own hotkeys.
- With the default settings, a Program Output encodes the picture OBS has already drawn, without drawing it again. Cropping or choosing a resolution different from OBS's output makes it draw its own copy.
- When you change Settings → Video, running Program Outputs restart with the new settings.
- Program Outputs do not appear in OBS's source lists. obs-websocket can find them only by their UUID, not by name.
- "+" menu in the Status Dock: The + button offers Program, Sources, and Scenes. Sources and Scenes add a Branch Output filter to the source or scene you choose and open its Filters window.
- Right-click menu in the Status Dock: Right-click a row and choose Open Settings to open its settings. A Program Output's row also offers Rename and Remove. Clicking Program in a Program Output's Source column also opens its settings.
- Row highlight in the Status Dock: The whole row is highlighted under the mouse pointer and when you select it.
- Hybrid MOV: The new Container Format "Hybrid MOV (.mov)" records the same way as OBS's own Hybrid MOV and needs OBS 32.0 or later. File splitting, pausing, and chapter markers work as with Hybrid MP4. It needs an H.264, HEVC, or ProRes video encoder and an AAC, ALAC, or PCM audio encoder. With other encoders, the recording does not start and the OBS log explains why. (#134)
- File name scripts for Program Outputs: The bundled sample scripts (Lua and Python) can now set the file names of a Program Output's recordings and saved replays. Program Outputs appear in the scripts' list as
[Program] <name>.- Your own scripts written for 1.0.13 keep working without changes.
- For script authors: the new procedure
osi_branch_output_get_output_listlists both filters and Program Outputs. A file name set on a Program Output is cleared when its profile is switched away and back, and when OBS restarts, so set it again at those times as the bundled scripts do. See API.md (Japanese).
Behavior Changes
- "Program" in the blanking option: "Blank output when source is not in Main Output" is now "Blank output when source is not in Program" ("プログラム" instead of "メイン出力" in Japanese). It works the same as before.
- Hybrid formats on older OBS: Hybrid MP4 needs OBS 30.2 or later, and Hybrid MOV needs OBS 32.0 or later. On older versions they are grayed out. A filter that already uses one of them does not start its recording there, and the OBS log explains why.
- Switching the video encoder: When you switch the video encoder in the filter properties, settings the new encoder does not offer, such as a preset name, are reset to its defaults. Switching back does not restore them. (#208)
- Sources with an odd width or height: Such a source no longer gets a 1-pixel black line at its right or bottom edge. Instead, it is scaled to an even size, which can look slightly softer. Odd crop positions and sizes are no longer rounded.
- Filter names in the bundled scripts: The bundled scripts list filters as
<source name> / <filter name>instead of<filter name> (<source name>). Your saved selections are kept. - Replay buffer format of new filters: When the recording format in OBS's Settings → Output is Hybrid MP4 or Hybrid MOV, a new filter's replay buffer format starts as MP4 or MOV.
Improvements
- Screen readers and other assistive technology can now read the Status Dock's filter names, checkboxes, and buttons. Before, they saw only empty cells. (#209)
Bug Fixes
- Fixed recordings and replay buffers not starting on Windows when their folder is the root of a drive, such as
D:\. (#219) - Fixed settings of the previously selected video encoder being used by the new one after you switched the encoder in the filter properties. On macOS, switching from Apple VT to x264 made Matroska and MPEG-4 recordings fail until OBS restarted. On other platforms, x264 could be given an NVENC preset it does not support (
Invalid presetin the log). (#208) - Fixed OBS 32.2 on macOS crashing when the Status Dock sorts its rows while an app using the Accessibility API, such as VoiceOver, is running. (#209)
- Fixed Settings → Hotkeys showing a "Save Replay" entry under the filter's name on OBS 30.1–32.x. Its key was lost every time the replay buffer restarted, and the entry is now gone. Use
Save '<filter name>' Replay Buffer, which keeps its key. If you assigned a key to the old entry, assign it there instead. (#218)
Known Issues
- macOS: stopping a stream while it is trying to connect or reconnect to an RTMP server can freeze OBS. This can happen when you disable the filter, remove a Program Output, switch scene collections, or quit OBS while the server cannot be reached. (#238)
- Recordings end about 1 second early with x264 (less with hardware encoders). A recording stopped within about a second of its start can leave an empty file that cannot be played. (#232)
- OBS can hang, rarely, when a recording or replay buffer stops while a script is setting its file name, for example when you quit OBS with the bundled file name scripts loaded. (#195)
- Changing Settings → Video while a filter's stream is connecting or reconnecting can crash OBS. (#216)
- With the default settings, a Program Output encodes together with OBS's own stream and recording. If its encoder cannot keep up, OBS's own stream or recording can drop frames too. There is no option to separate them yet; cropping or choosing a resolution different from OBS's output separates them.
- Changes in a Program Output's settings window are lost if you switch profiles while the window is open.
- After you switch the video encoder in a Program Output's settings, Cancel asks about unsaved changes even if nothing else changed.
- A Program Output created while OBS uses the Simple output mode does not take the NVENC or AMF preset from OBS's settings. (#221)
- When a recording fails to start, the Status Dock can keep showing "Recording" although nothing is recorded. (#230)
- macOS, OBS 30.2–31.x: Hybrid MP4 with an Apple VT ProRes encoder writes a broken file. (#237)
- The bundled file name scripts lose a filter that was deleted and brought back with Undo. On OBS 30.1 / 30.2, duplicating a scene collection also makes them lose their filters, and loses the hotkey assignments of streaming, recording, or replay buffer that are turned off. (#228, #233, #234)
- Unapplied changes in the filter properties are saved with the scene collection and take effect when it is loaded again. (#174)
- Clicking Apply without changing anything restarts the filter's outputs. (#178)
- Turning on the replay buffer from the Status Dock or with a hotkey and clicking Apply right after can freeze OBS for a few seconds.
- When a reconnect attempt hangs, OBS may stop responding for up to about 85 seconds while Branch Output recovers the stream.
- An SRT listener with the default
listen_timeoutbriefly stops accepting connections every 5 seconds. Stopping a listener with a largelisten_timeoutin its URL can block OBS. - OBS 31.0–31.1.x: an SRT stream can crash OBS when it stops without ever connecting, for example when a listener is stopped before anyone connects to it. This is a bug in OBS's own SRT output, fixed in OBS 32.0. (#244)
- macOS, OBS 31.1: closing a Filters window that holds a Branch Output filter can crash OBS while an app using the Accessibility API is running. (#223)
- With "Filter Input (Experimental)", an Image source with "Unload image when not showing" outputs black while it is not shown anywhere else in OBS.
- Windows: the installer and the zip put the plugin into OBS's installation folder. OBS 33 still loads it from there as a legacy plugin, but OBS 34 will not. (#241)
Full Changelog: 1.0.13...1.1.0-beta