Branch Output - Streaming/Recording filter for source,scene

Branch Output - Streaming/Recording filter for source,scene 1.0.4

hanatyan

Member
Is it possible to piggyback off of OBS's own or implement automatic switching to recommended ingest servers per broadcasting service (i.e.- for streamers who are on the move, or for when the currently selected server experiences issues, downtime, maintenance, or otherwise goes offline), and to specify specific frames per second (FPS) values per Branch Output filter?
Also, would it be possible to clarify the differences between Master Audio and Filter Audio when it comes to Branch Output's custom audio selection so the end user can have a clearer concept of what they're choosing? I'm assuming Master Audio is simply the equivalent of Stereo Mix (i.e.- the operating system's current default audio output), whereas Filter Audio might be what the current source or scene would usually be tied to, but I'm not certain my assumption's correct.

More Services Integration:

Now Branch Output integrated custom outout only.
I think it's possible to add services which are implemented in OBS in future release but need time to implements.

Custom Framerate:

Not investigated yet how to implement it, current impressions are as follow.
Most easy way to implement custom framerate, just divide frames by multiple of 2.
If we make it an arbitrary custom frame rate, we have to solve the problem of resampling and frame interpolation for smooth animatioon.
Implements dividing solution first, then implement resampling & interpolation in future release (At this point, we don't know how long it will take to implement.)

Custom Audio Sources Glossary:
  • Master Audio: OBS's mix output (It has 6 tracks as known)
  • Filter Audio: Filter pipeline's audio which is passed to Branch Output filter.
  • Source Audio: Source's bundled audio which after passed through the all filters in pipeline.
I think adding tooltips is one solution.


Thanks for your suggestion.
 

hanatyan

Member
hanatyan updated Branch Output - Streaming/Recording filter for source,scene with a new update entry:

1.0.2 Release (Add Multi-Stream functionality)

Changes​

  • Implement Multi-Stream functionality which allows to output multiple streams (up to 8) for each filters.

    View attachment 110726

  • Update status dock to display multi-stream (and recording) properly (One output destination per row, but share "Eye" icon on same filter)

    View attachment 110727

Read the rest of this update entry...
 

AtP

New Member
Would love to see a tutorial on how to properly use this Plugin :) Great work so far. Much better then Source Recorder. Thanks a lot for that Plugin :)
 

AtP

New Member
In addition to my last post:
I cant seem to make the plugin run properly as I would like to. I can add the plugin as filter obviously, I got scenes and sources. I want to have specific sources recorded when I stream, so for example, the information source about my accounts doesnt get recorded on it, only the gameplay source... How can I do that? I dont get it sadly, sorry if it sounds stupid :(
 

hanatyan

Member
In addition to my last post:
I cant seem to make the plugin run properly as I would like to. I can add the plugin as filter obviously, I got scenes and sources. I want to have specific sources recorded when I stream, so for example, the information source about my accounts doesnt get recorded on it, only the gameplay source... How can I do that? I dont get it sadly, sorry if it sounds stupid :(

I don't know what's step you stuck in, but hopefuly helps below instruction.

  1. Add "Branch Output" as effect filters to any "Source" or "Scene" you would like to record.
  2. Check Stream Recording checkbox on filter poroperties.
  3. Choose audio source if needed. 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.
  6. Open Branch Output status dock and check state of Interlock combo
    Interlink "Virtual Cam": Start OBS's virtual cam to start Branch's recording.
    Interlink "Recording" or "Streaming or Recording": start OBS's recording to start Branch's recording.
    Interlink "Streaming" or "Streaming or Recording": start OBS's streaming to start Branch's recording.
    Interlink "Always ON":
    start Branch's recording automatically after you clicked Apply button
  7. When filter is inactivated via "Eye icon", output stream will be offline too.
 

AtP

New Member
I don't know what's step you stuck in, but hopefuly helps below instruction.

  1. Add "Branch Output" as effect filters to any "Source" or "Scene" you would like to record.
  2. Check Stream Recording checkbox on filter poroperties.
  3. Choose audio source if needed. 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.
  6. Open Branch Output status dock and check state of Interlock combo
    Interlink "Virtual Cam": Start OBS's virtual cam to start Branch's recording.
    Interlink "Recording" or "Streaming or Recording": start OBS's recording to start Branch's recording.
    Interlink "Streaming" or "Streaming or Recording": start OBS's streaming to start Branch's recording.
    Interlink "Always ON":
    start Branch's recording automatically after you clicked Apply button
  7. When filter is inactivated via "Eye icon", output stream will be offline too.
I got to that point aswell. I dont know if you know streamlabs, but streamlabs has the tools to select each source to be recorded/Streamed or hidden in stream and the recording itself.
When I apply the plugin to different sources, it just "records" them individual, means, If I apply the plugin to 3 sources, the 3 sources are recorded each on their own, and not as one. I thought with this Plugin, you can do it like streamlabs does. Thats the only thing I miss from streamlabs btw. everything else there is "meh"
Or do you have any other ideas on how to do it?
Thanks :)
 

hanatyan

Member
I got to that point aswell. I dont know if you know streamlabs, but streamlabs has the tools to select each source to be recorded/Streamed or hidden in stream and the recording itself.
When I apply the plugin to different sources, it just "records" them individual, means, If I apply the plugin to 3 sources, the 3 sources are recorded each on their own, and not as one. I thought with this Plugin, you can do it like streamlabs does. Thats the only thing I miss from streamlabs btw. everything else there is "meh"
Or do you have any other ideas on how to do it?
Thanks :)
Branch Output itself doesn't have function to manage composition (It's just a filter) so workaround is creating new scene for recording only and place references to sources you would like record. Then, add Branch Output filter to recording scene.
However, I don't think it will be exactly the same as the feature you mentioned.
 

AtP

New Member
Branch Output itself doesn't have function to manage composition (It's just a filter) so workaround is creating new scene for recording only and place references to sources you would like record. Then, add Branch Output filter to recording scene.
However, I don't think it will be exactly the same as the feature you mentioned.
I thought so, so basically, I got to add another scene with the scources I want to record while im streaming. At the moment I just run 2x Obs with the virtual camera to do this.
 

Sveeno

New Member
Hey @hanatyan first off, thanks for the plugin, it's exactly what I was looking for. Being able to stream with a cam but record just my gameplay raw is awesome. However, I used this for the first time last night, and I ran into this issue while using it on a Game Capture on the Messen emulator.

It seems like every time I changed an emulator setting, or clicked out of the emulator window, the recording would stop. It would start again when I clicked back into the emulator window. Is this just a bug with game capture and would be fixed by using window capture instead?

Thanks again for the great plugin
 

hanatyan

Member
Hey @hanatyan first off, thanks for the plugin, it's exactly what I was looking for. Being able to stream with a cam but record just my gameplay raw is awesome. However, I used this for the first time last night, and I ran into this issue while using it on a Game Capture on the Messen emulator.

It seems like every time I changed an emulator setting, or clicked out of the emulator window, the recording would stop. It would start again when I clicked back into the emulator window. Is this just a bug with game capture and would be fixed by using window capture instead?

Thanks again for the great plugin
This is due to a limitation of the current Branch Output filter, which restarts streaming and recording when the source resolution changes, and stops streaming and recording when it becomes 0 x 0.
A workaround is to create a scene for recording, place a reference to the game capture, and add a Branch Output to the scene. The resolution of the scene will not change regardless of the source status, so this problem will not occur.

Please wait for a future version to improve the behavior.
 

Sveeno

New Member
This is due to a limitation of the current Branch Output filter, which restarts streaming and recording when the source resolution changes, and stops streaming and recording when it becomes 0 x 0.
A workaround is to create a scene for recording, place a reference to the game capture, and add a Branch Output to the scene. The resolution of the scene will not change regardless of the source status, so this problem will not occur.

Please wait for a future version to improve the behavior.
Thanks for the reply! I'll use the workaround for now. Looking forward to more updates on this plugin.
 

questonomemio1

New Member
Is there a way to automatically synchronize all the recordings since they start with a few seconds difference? For example, by trimming the beginning of all the videos so that they all start at the same moment.
Also is there a way to change the output folder for all branches by simply modifying the general output folder in OBS? Manually changing each one is very time-consuming.
 

hanatyan

Member
Is there a way to automatically synchronize all the recordings since they start with a few seconds difference? For example, by trimming the beginning of all the videos so that they all start at the same moment.
Also is there a way to change the output folder for all branches by simply modifying the general output folder in OBS? Manually changing each one is very time-consuming.
It's nice opnion add to option of refering default recording folder settings. I'll integrate it in future update.

There is no functionality for sync recording (a.k.a multitrack recorder or multicorder) now in OBS, but traditional workaround is "click" or "beep" sound insert few times after you start recording so you can fine adjust the timing during editing.
The multitrack recorder that capable for production studio is a product theme worth considering for development on its own.
 

ItsSylviiTTV

New Member
Can someone help me? I'm a bit confused. My use case for this is:

I stream to Twitch and play single player games that I want to post onto YouTube. Until now, I have been simply taking the Twitch VOD (that doesn't have spotify music on via tracks in OBS) and upload that into YouTube. However, I have some overlays I would like to get rid of in the VOD/Recording version that I upload into youtube (such as sub goals, my ad timer, and alerts.

I know there isn't a way to give rid of it in the VOD that automatically gets updated to Twitch. However, in order to stream my "Gaming + Overlays" scene and also a version of that with SOME of the overlays disabled (but keeping others such as my webcam and chat overlay), is the best way to create a copy of "Gaming + Overlays" scene and then just remove all the sources that I don't want, and apply the Branch filter to Copy #2 Scene?

This way, it lets me stay on the "Gaming + Overlays" scene while streaming, but since I hit the "Start Recording" button in OBS, it actually is recording "Copy #2" scene, which is the one that has deleted overlays. Is this the right way to do it?

Bonus question: What if I WANT the recording to show me transitioning from "Gaming + Overlays" scene to "Just Chatting" scene (but still not show Overlay Sources #1, #5, and #7). How do I make that happen? It seems like the Branch recording just stays on one scene the entire time (the scene you applied the filter on)

Also: Is there a "Recording" interlock option? I see "Streaming or Recording", "Streaming", "Virtual Cam" and "ALWAYS"

And last question: What is "stream count" under the filter settings?
 

hanatyan

Member
Can someone help me? I'm a bit confused. My use case for this is:

I stream to Twitch and play single player games that I want to post onto YouTube. Until now, I have been simply taking the Twitch VOD (that doesn't have spotify music on via tracks in OBS) and upload that into YouTube. However, I have some overlays I would like to get rid of in the VOD/Recording version that I upload into youtube (such as sub goals, my ad timer, and alerts.

I know there isn't a way to give rid of it in the VOD that automatically gets updated to Twitch. However, in order to stream my "Gaming + Overlays" scene and also a version of that with SOME of the overlays disabled (but keeping others such as my webcam and chat overlay), is the best way to create a copy of "Gaming + Overlays" scene and then just remove all the sources that I don't want, and apply the Branch filter to Copy #2 Scene?

This way, it lets me stay on the "Gaming + Overlays" scene while streaming, but since I hit the "Start Recording" button in OBS, it actually is recording "Copy #2" scene, which is the one that has deleted overlays. Is this the right way to do it?

Bonus question: What if I WANT the recording to show me transitioning from "Gaming + Overlays" scene to "Just Chatting" scene (but still not show Overlay Sources #1, #5, and #7). How do I make that happen? It seems like the Branch recording just stays on one scene the entire time (the scene you applied the filter on)

Also: Is there a "Recording" interlock option? I see "Streaming or Recording", "Streaming", "Virtual Cam" and "ALWAYS"

And last question: What is "stream count" under the filter settings?

> First & Bonus question:

This tips (Use Main View Source plugin) allows you to broadcast multiple platforms with different overlays and also able to follow scene switchings.
But overlays in Main View Source's scene are stuck to the stream. You should switching them via some macros or something automations. Technical knowledge possibly required. (e.g. hide game related overlays during chatting scene)

> Also: Is there a "Recording" interlock option? I see "Streaming or Recording", "Streaming", "Virtual Cam" and "ALWAYS"

It's a missing feature (bug), we'll add it next update.

> And last question: What is "stream count" under the filter settings?

That option allows to boradcast to multiple destination by one filter (encoder).
To use it, select 2~ as count and input 2 or more stream URLs.
Since the encoder is shared between streams, processor load will not increase but the content will also be shared.
 

hanatyan

Member
hanatyan updated Branch Output - Streaming/Recording filter for source,scene with a new update entry:

1.0.3 Release (Imporovement, Bugfix)

Changes​

  • Add: Missing "Recording" interlock option.
  • Bugfix: Didn't list audio bitrate in MacOS.
  • Improve: Detection of profile's encoder settings as default settings.
  • Add: "Use profile's recording path" option to stream recording.
  • Add: "Generate File Name without Space" option to stream recording.
  • Add: "None" output row to status dock that allows access blank (no streaming & recording) Branch Output...

Read the rest of this update entry...
 

steamybiscuit

New Member
probably a dumb question but is it possible to have the streaming section use the same settings as your main encoder in order to save resources. Instead of using double resources to stream in different locations?
as in
main stream [ cam +game] (main settings)
branch stream [ game] (main settings)
 

hanatyan

Member
probably a dumb question but is it possible to have the streaming section use the same settings as your main encoder in order to save resources. Instead of using double resources to stream in different locations?
as in
main stream [ cam +game] (main settings)
branch stream [ game] (main settings)

Since encoder instances cannot be shared between different video sources, it is not possible to share the same encoder instance for Main and Branch Output I believe.
This means that different encoder instances are created for each video source, even with the same settings.
 

Valcry

Member
Seems to be a really good plugin, especially compared to source record which can handle just 1 audio track.

But IMHO one important thing is missing, in order to have any use for recording: It does not react to the recording pause button.
 

hanatyan

Member
Hi @hanatyan

I don’t have an issue to report today—just a question for you:
Since Branch Output is far more reliable than Source Record, do you think it could be an interesting project for you to create an OBS resource that’s more stable than Audio Monitor?
Here’s why I’m asking:
I now use Branch Output exclusively for recording my live streams, and I’m thrilled with it! Unlike Source Record, which caused crashes and corrupted files, Branch Output delivers perfect recordings every time. Thank you so much for that!
Audio Monitor frustrations:
That said, I’ve been struggling with Audio Monitor for audio rerouting. It’s unreliable and often causes OBS to crash—even mid-stream—which feels completely unprofessional.

TLDR
Given your proven expertise with Branch Output which is a very stable, professional tool for recording/streaming individual source with OBS , I’m wondering: would you be interested in developing a stable, professionnal tool for audio routing with OBS?

Thanks again!
I apologize for not being able to give you a positive reply, but unfortunately I have not encountered the need for it myself, so there are no plans to develop it at this time.
 
Top