This is an OBS Studio plugin that allows to transmit video and audio with RTMP / SRT etc. for each source individually.
This is an OBS Studio plugin that allows to transmit video and audio with RTMP / SRT etc. for each source individually.
Sponsor program
If you would like to help our projects, please support us.
Sponsors (Thank you for your support)
This is an OBS Studio plugin that allows to live stream and/or recording for each source individually. Inspired by the Source Record plugin, but more focused on streaming. More reliable and proper audio handling.
Added “Branch Output” to source or scene effect filters.
One stream per Branch Output filter can be sent with dedicated encoding settings.
Multiple Branch Outputs can be added to a single source or scene (as PC specs allow)
Branch Output Selectable audio source for each filter (filter audio, any source audio, audio tracks 1-6)
Automatically reconnects when disconnected
Stream recording functionality (Various container formats, time and size division supported)
(*) Works as recording only if connection information is left blank
Status dock to check the status and statistics of all Branch Output filters. Support for batch or individual activation and deactivation
Can be interlinked with OBS Studio's streaming, recording, virtual camera, and replay buffer status
Manual splitting of recorded files (Since 1.0.5)
Pause/Unpause Recording (Since 1.0.5)
Adding chapter markers to recordings(Only on Hybrid MP4) (Since 1.0.5)
Replay buffer per filter (Since 1.0.8)
Filter input mode to capture and output video from the filter chain (Experimental, Since 1.0.8)
Blanking and muting when the source is not visible in the program output (Since 1.0.8)
Per-profile Status Dock settings (Since 1.0.8)
Video cropping with relative (margin) and absolute (region) modes, including a live preview rectangle (Since 1.0.9)
Frame rate divider to reduce output frame rate (1/2, 1/3, 1/4, 1/5, 1/6) (Since 1.0.9)
Individual start/stop control per output type via "Individual" interlock mode and per-output enable/disable checkboxes in the Status Dock (Since 1.0.9)
Proc handler to override recording save file name format from scripts (API reference) (Since 1.0.9)
Proc handler to override replay buffer save file name format from scripts (API reference) (Since 1.0.9)
Various hotkeys
Also available in Studio Mode
OBS Studio >= 30.1.0 (Qt6, x64/ARM64/AppleSilicon)
Please download latest install package from Release
Add "Branch Output" as effect filters to any "Source" or "Scene" (NOTE: "Scene" has no audio defaultly)
Input server URL and stream key. The server URL can be RTMP or SRT etc. like OBS's custom stream settings.
Choose audio source. Un-checked custom audio source means use filter audio as source (NOTE: "Scene" must has custom audio source for it's sound)
"Any Sources" will be captured after filter pipeline before Audio Mixer. Also "Audio track 1 ~ 6" will be captured from Audio Mixer output.
You can choose "No Audio" as well.
Setup audio and video encoder. It's usable that hardware encoder such as NVENC.
Press Apply button and stream will be online.
When filter is inactivated via "Eye icon", output stream will be offline too.
(*) Some sources (e.g. Local Media source) will stop stream output during inactivated scene. It's not plugin's bug.
Changing Resolution feature is integrated since 1.0.0
Below steps are alternative method with more flexibilities (Cropping, Zooming, Adding black bg etc...)
“Paste (Reference)” does not duplicate the source and will not cause device conflicts.
Branch Output will stream even if the scene is not active.
This method should work well except for some sources (e.g., media sources) that will not play unless the scene is active.
Important note: Work in studio mode to prevent video loops.
This can be done by using the plugin Main View Source along with it.
You can also create multiple scenes for streaming and layer additional sources to change the content for each streaming platform.
For example, you might want to display Twitch comments on Twitch and YouTube comments on YouTube.
However, this method adds sources but does not reduce them.
Branch Output exposes public procedures that let external scripts override the stream recording and replay buffer save filename formats at runtime. This is useful when you want filenames to reflect the current scene, a text input value, or other external data for organized file output.
Sample Python scripts (recording-filename-from-text.py and replay-buffer-filename-from-text.py) are bundled with the plugin and can be loaded from OBS Tools → Scripts.
See the API reference for procedure signatures, sample code, and usage instructions for the bundled scripts.
This plugin is developed under obs-plugintemplate
No open issues yet, or sync has not completed.