Skip to content

This is an OBS Studio plugin that allows to transmit video and audio with RTMP / SRT etc. for each source individually.

License

Notifications You must be signed in to change notification settings

OPENSPHERE-Inc/branch-output

Repository files navigation

Branch Output filter (The OBS Studio Plugin)

日本語はこちら

Sponsored

We launched a GitHub sponser program. If you would like to help, please support us.

Features

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, and virtual camera status

For studio mode: Branch Output ignore studio mode's program out and always outputs preview's one

Requirements

OBS Studio >= 30.1.0 (Qt6, x64/ARM64/AppleSilicon)

Installation

Please download latest install package from Release

User manual

[EN]

  1. Add "Branch Output" as effect filters to any "Source" or "Scene" (NOTE: "Scene" has no audio defaultly)

  2. Input server URL and stream key. The server URL can be RTMP or SRT etc. like OBS's custom stream settings.

  3. 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.

  4. Setup audio and video encoder. It's usable that hardware encoder such as NVENC.

  5. Press Apply button and stream will be online.

  6. 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.

TIPS

1. To change the resolution and layout for streaming (Work-around)

In the current version of Branch Output, source resolution = streaming resolution.

Therefore, if the source resolution is 4k, it will be streamed at 4k. If you want to down-convert it to 1080p and stream it, you can do so as follows.

  1. The canvas resolution is assumed to be 1080p.
  2. Create new blank scene.
  3. Right-click on the source you want to stream and click “Copy” from the menu.
  4. Right-click on the blank scene created in step 2 and click “Paste (Reference)” from the menu. Scale and crop as needed.
  5. Add Branch Output to the scene's effects filter and set up streaming

“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.

2. To stream program out to multiple streaming platforms.

This can be done by using the plugin Main View Source along with it.

  1. Create new blank scene (The scene for streaming)
  2. Add a “Main View Source” to the scene for streaming.
  3. Add Branch Output to the scene's effects filter and set up streaming.

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.

Development

This plugin is developed under obs-plugintemplate