Branch Output - Streaming/Recording filter for source,scene

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

hanatyan

Member
I posted this originally as a github discussion post. But think it will get better visibility here;

Fantastic work on the Branch-output plugin, it is incredibly valuable and stable, well done!

I think it would be fantastic if the plugin's triggers & statistics could be exposed via a websocket API. This way it could be setup programmatically and monitoring could be setup for use-cases like mine where OBS and plugin run pretty much 24/7 and could be monitored via a dashboard to show all recordings are still rolling, no dropped frames have occurred, etc. and recordings or streams could be started/stopped remotely. (Though this last could technically be done using the interlinking, however I do not intend to use the standard OBS record or stream functions at all).

Secondly, less critical for me, but would be great if WHIP (webrtc) could be supported alongside the custom streaming. I’ve tried various different ways but no joy through branchout though it does go green and says streaming. I know there are workarounds, but having it natively would be awesome!

Let me know what you think or if it is already there and I don't know where to look! Thanks again for the amazing work
We are glad you like this plugin.

I think the WebSocket vendor API is a good idea. It is not difficult to implement, but I don't think there are many needs for it, so it is not high on my priority list. If you can program, it might be faster to modify Branch Output.

In addition, hotkeys are already integrated so you can trigger these via websoket API

WHIP is already planned for integration.
 

hanatyan

Member
@hanatyan thank you so much for plugin.
in the next versions you have a plans to create a shortcut that split record? or a buffer system to record the specific last moment?
I assume you are referring to the replay buffer, but the integration is in the plan.

Split recording hotkey was not planned yet. I'll add later.
 

hanatyan

Member
我可以问一下是否可以添加延迟的流媒体功能和切断实时流媒体(丢弃)的功能?
English version questions from your DM

> 1:Live streaming delay push .

Delayed streaming was not yet in the plan. I'll add it later.

> 2:Cut off live streaming (discard) .

You can cut off stream via disabling filter (Toggle via eye icon on filter list or status dock) and also can it via hotkeys.
 

devaughn46

New Member
Can the recording be paused for all sources, not just the primary or visible one?

if not, would this be possible in a future update? I think this would be incredibility useful. I'm not too experienced w/ this plugin yet but cant seem to get it working, Sorry if I'm missing something

Clarity:
- When i pause the recording in OBS, it only will record the source shown on the OBS screen
- I'd like to press the "pause" button & have it pause all the recordings i have set in BranchOutput (similar to how "stop recording" already works (typically just footage and cam)

- Addition, would this also be able to work for replays?
 

stwr

New Member
We are glad you like this plugin.

I think the WebSocket vendor API is a good idea. It is not difficult to implement, but I don't think there are many needs for it, so it is not high on my priority list. If you can program, it might be faster to modify Branch Output.

In addition, hotkeys are already integrated so you can trigger these via websoket API

WHIP is already planned for integration.
Thanks for your reply Hanatyan, I will have a look if I can find some time to do the integration for this. I think it will open up many more useful abilities and opportunities for remotely operating branch output.

I've tested the hot key functionality and this will suffice for the moment while I focus on other priorities.

Thanks for confirming WHIP integration is on the road map. Will be a good addition.
 

hanatyan

Member
Can the recording be paused for all sources, not just the primary or visible one?

if not, would this be possible in a future update? I think this would be incredibility useful. I'm not too experienced w/ this plugin yet but cant seem to get it working, Sorry if I'm missing something

Clarity:
- When i pause the recording in OBS, it only will record the source shown on the OBS screen
- I'd like to press the "pause" button & have it pause all the recordings i have set in BranchOutput (similar to how "stop recording" already works (typically just footage and cam)

- Addition, would this also be able to work for replays?
Pausing recording isn't supported by Branch Output yet.
Pause is a supported feature in OBS recording, so it is possible to support it in Branch Output, but please wait for a future update.
 

hanatyan

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

1.0.4 Release (Improvements)

Changes​

  • Fix: Improve behavior on changed source's resolution that BRO doesn't stop/start recording/streaming even if source's resolution become 0 x 0

    (This behavior is considered suitable for full-screen game capture, etc)

  • Add: A filter property "Don't reboot output even if source resolution is changed" that BRO doesn't stop/start recording/streaming even if source's resolution is changed.

    (Use when you absolutely do not want to interrupt...

Read the rest of this update entry...
 

topdogmsn

New Member
Hi @hanatyan I just found this plugin and I have a quick question:
The MP4 record option, is that fragmented MP4 or just normal MP4?

I did some tests where I started the branch recorder with MP4 recording and normal OBS recording with fragmented MP4 and then I forced stopped OBS via the task manager, but both recordings seem to be playable after crashing OBS.

This might already answer my question, but I just want to be 100% sure so I don't lose any footage on a PC crash or a power outage.

Really looking forward to using this plugin!
 

hanatyan

Member
Hi @hanatyan I just found this plugin and I have a quick question:
The MP4 record option, is that fragmented MP4 or just normal MP4?

I did some tests where I started the branch recorder with MP4 recording and normal OBS recording with fragmented MP4 and then I forced stopped OBS via the task manager, but both recordings seem to be playable after crashing OBS.

This might already answer my question, but I just want to be 100% sure so I don't lose any footage on a PC crash or a power outage.

Really looking forward to using this plugin!
Unfortunately we have no fragmented_mp4 option currently, but you can still choose mkv or hybrid_mp4.
The hybrid_mp4 is improved version of fragmented mp4 I believed so didn't have motivation of supporting fragmented_mp4.
I may have missed something. Are there still any situnations of fragmented_mp4 is better than these format?
 

topdogmsn

New Member
Unfortunately we have no fragmented_mp4 option currently, but you can still choose mkv or hybrid_mp4.
The hybrid_mp4 is improved version of fragmented mp4 I believed so didn't have motivation of supporting fragmented_mp4.
I may have missed something. Are there still any situnations of fragmented_mp4 is better than these format?
I'm still on version 30.2.3, which is why I use fragmented mp4. Mkv would be an option but I always get a video file with a weird frame rate after remuxing (something like 59.48274 or 60.59382) which is why I use fragmented mp4 until I update obs.

What I find interesting is that the mp4 file that branch output produces still works after obs crashes, so I think it may use some form of fragmented mp4, otherwise it would be impossible to play the file
 

topdogmsn

New Member
Update: I was recording the same scene with normal OBS recording and Branch Record, which is why the MP4 recording from branch record seemed to work after a OBS crash. Support for fragmented mp4 would be amazing, otherwise I'll just have to risk it with MP4 until I update OBS.

Just tested MKV, and the problem here is that the frame rate changes after Remuxing. a 60fps recording is somehow recognized as a 58.82 recording in my editing software
 

hanatyan

Member
I'm still on version 30.2.3, which is why I use fragmented mp4. Mkv would be an option but I always get a video file with a weird frame rate after remuxing (something like 59.48274 or 60.59382) which is why I use fragmented mp4 until I update obs.

What I find interesting is that the mp4 file that branch output produces still works after obs crashes, so I think it may use some form of fragmented mp4, otherwise it would be impossible to play the file
That's strange. The BRO definitely does not support fragmented MP4 (no encoder option set)
It's not very likely, but the OBS recording settings may be affecting the BRO as well (e.g. glitches in ffmpeg).
Could you try crash test with BRO only?

Btw, i forgot version dependencies, but hybrid MP4 is supported in OBS 30.2 or later, so support for fragmented mp4 will be added in a feature update.
 

Suslik V

Active Member
Not a strange. OBS threads may live until application terminated. The message that application crashed do nothing, but informs user. Long time ago it was possible to "crash" OBS with this script on hotkey press (if you ignore the "OBS crashed" message then you can even interact with Preview window):
Lua:
local obs = obslua

local hotkey_id = obs.OBS_INVALID_HOTKEY_ID

local HOTKEY_TEXT = "Crash"

function script_description()
    return "Assign hotkey named \'" .. HOTKEY_TEXT .. "\' in the Settings and press it to crash OBS."
end

function do_crash_here()
    print("Let's crash it here, now!")
    local str = obs.bmalloc(1)
    local str2 = obs.bmemdup(nil, 1) -- here!
    obs.bfree(str)
    obs.bfree(str2)
end

function script_load(settings)
    hotkey_id = obs.obs_hotkey_register_frontend(script_path(), HOTKEY_TEXT, do_crash_here)
    local hotkey_save_array = obs.obs_data_get_array(settings, "crash.trigger")
    obs.obs_hotkey_load(hotkey_id, hotkey_save_array)
    obs.obs_data_array_release(hotkey_save_array)
end

function script_save(settings)
    local hotkey_save_array = obs.obs_hotkey_save(hotkey_id)
    obs.obs_data_set_array(settings, "crash.trigger", hotkey_save_array)
    obs.obs_data_array_release(hotkey_save_array)
end
 

topdogmsn

New Member
That's strange. The BRO definitely does not support fragmented MP4 (no encoder option set)
It's not very likely, but the OBS recording settings may be affecting the BRO as well (e.g. glitches in ffmpeg).
Could you try crash test with BRO only?

Btw, i forgot version dependencies, but hybrid MP4 is supported in OBS 30.2 or later, so support for fragmented mp4 will be added in a feature update.
I responded in the comment just above. Branch Output did record in normal MP4. It just seemed like there were some conflicting recording settings when recording the same scene with OBS and Branch Output.
And thank you very much for looking into supporting fragmented MP4. I really appreciate that!
 

stwr

New Member
Hi @hanatyan, Thanks for your continued support and development work on Branch Output, it's been great so far!

I found what I believe to be a bug on MacOS.

Specs
M4 Mac mini
OS: Sequoia 15.3.1
OBS: 31.0.2
BranchOut Version: 1.0.3 & 1.0.4
OBS Studio Advanced Settings:
- Automatically Reconnect:
  • Enabled
  • Retry Delay 10s
  • Maximum Retries 100
The issue
When connected to the network, a stream can be started and stopped successfully.
However, when a stream is running and the network connection gets interrupted for longer than a few seconds, OBS will crash completely and not adhere to OBS's reconnection mechanic.

It appears to stack reconnect attempts very closely together (or at least that's what the log makes me think) and then after 10 tries or so it crashes. If the network connection remains down and OBS is started again, the stream automatically tries to connect (great) However it will crash again after a few seconds due to the same issue. At this point, a regular user cannot turn off the stream from auto starting (I ended up going to the plugin config folder and changing some parameters there).

OBS' build in streaming function does not show the same behavior and tries to reconnect normally under the same conditions.

How to reproduce
1. Start a branch out stream with a remote destination (can be LAN or WAN) in OBS on a Mac (I have not tested Windows).
2. Once the stream is running, turn off wifi or ethernet NIC, after 4 to 5 seconds OBS Studio will crash.

3. Starting OBS Studio again without a network connection will continue to crash OBS until wifi or ethernet is re-enabled.

I have also tested this by disabling the internet on my router, which produces the same fault.

LOGS
Code:
12:15:40.412: [obs-ffmpeg mpegts muxer / libsrt]: RTT [3.08 ms], Link Bandwidth [3575.9 Mbps]
12:16:11.365: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:11.365: process_packet: Error writing packet: Input/output error
12:16:11.365: Output 'test-stream': stopping
12:16:11.365: Output 'test-stream': Total frames output: 2257
12:16:11.365: Output 'test-stream': Total drawn frames: 2274
12:16:11.365: Output 'test-stream': Reconnecting in 1.00 seconds..
12:16:11.372: Qavg: 65526.422
12:16:11.372:
12:16:11.372: 2 frames left in the queue on closing
12:16:11.372:
12:16:12.371: [obs-ffmpeg mpegts muxer: 'test-stream']: Output format name and long_name: mpegts, MPEG-TS (MPEG-2 Transport Stream)
12:16:12.371: [obs-ffmpeg mpegts muxer / libsrt]: libsrt version 1.5.2 loaded
12:16:12.482: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:12.594: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:12.704: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:12.813: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:12.915: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:13.023: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:13.131: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:13.240: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:13.347: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:13.456: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:13.568: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:13.673: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:13.780: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:13.889: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:13.999: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:14.106: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:14.212: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:14.320: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:14.427: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:14.534: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:14.634: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:14.734: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:14.840: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:14.946: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:15.055: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:15.165: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:15.276: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:15.385: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, wrong password or invalid URL
12:16:15.385: [obs-ffmpeg mpegts muxer / libsrt]: Connection to srt://<IP removed>:<Port removed>?streamid=publish:test-stream&pkt_size=1316 failed: No such process
12:16:15.385: [obs-ffmpeg mpegts muxer: 'test-stream']: Failed to open the url or invalid stream
12:16:15.385: [obs-ffmpeg mpegts muxer: 'test-stream']: Failed to open the url

It appears to reconnect very quickly every 200ms for a few seconds and then gives up and crashes.

EDIT: It appears it is currently hardcoded in branch output:

Code:
src/plugin-main.cpp

#define FILTER_ID "osi_branch_output"
#define OUTPUT_MAX_RETRIES 7
#define OUTPUT_RETRY_DELAY_SECS 1
#define CONNECT_ATTEMPTING_TIMEOUT_NS 15000000000ULL
#define AVAILAVILITY_CHECK_INTERVAL_NS 1000000000ULL
#define TASK_INTERVAL_MS 1000

Interestingly, the log line
Code:
void BranchOutputFilter::reconnectStreamingOutput(size_t index)
{
    pthread_mutex_lock(&outputMutex);
    {
        OBSMutexAutoUnlock locked(&outputMutex);

        if (streamings[index].active) {
            obs_output_force_stop(streamings[index].output);

            streamings[index].connectAttemptingAt = os_gettime_ns();

            if (!obs_output_start(streamings[index].output)) {
                obs_log(LOG_ERROR, "%s: Reconnect streaming %zu output failed", qUtf8Printable(name), index);
            }
        }
    }
}

Does not appear to show up in my logs.

/END EDIT

Solution/How it should be working
- At a minimum implementation level, the plugin should not crash when a prolonged network outage happens.
- At a basic implementation level, it should follow OBS's build-in Automatic retry logic. If it exceeds this user defined settings, it should stop trying (or perhaps disable the filter).
- In an ideal implementation level, it would have user definable retry logic fields in the filter options.


Let me know if you want me to provide any more information, My use case is always running in harsh, network unstable environments (Cellular, Satcoms, etc) making it a fairly big issue.

Thanks again
 
Last edited:

hanatyan

Member
Hi @hanatyan, Thanks for your continued support and development work on Branch Output, it's been great so far!

I found what I believe to be a bug on MacOS.

Specs
M4 Mac mini
OS: Sequoia 15.3.1
OBS: 31.0.2
BranchOut Version: 1.0.3 & 1.0.4
OBS Studio Advanced Settings:
- Automatically Reconnect:
  • Enabled
  • Retry Delay 10s
  • Maximum Retries 100
The issue
When connected to the network, a stream can be started and stopped successfully.
However, when a stream is running and the network connection gets interrupted for longer than a few seconds, OBS will crash completely and not adhere to OBS's reconnection mechanic.

It appears to stack reconnect attempts very closely together (or at least that's what the log makes me think) and then after 10 tries or so it crashes. If the network connection remains down and OBS is started again, the stream automatically tries to connect (great) However it will crash again after a few seconds due to the same issue. At this point, a regular user cannot turn off the stream from auto starting (I ended up going to the plugin config folder and changing some parameters there).

OBS' build in streaming function does not show the same behavior and tries to reconnect normally under the same conditions.

How to reproduce
1. Start a branch out stream with a remote destination (can be LAN or WAN) in OBS on a Mac (I have not tested Windows).
2. Once the stream is running, turn off wifi or ethernet NIC, after 4 to 5 seconds OBS Studio will crash.

3. Starting OBS Studio again without a network connection will continue to crash OBS until wifi or ethernet is re-enabled.

I have also tested this by disabling the internet on my router, which produces the same fault.

LOGS
Code:
12:15:40.412: [obs-ffmpeg mpegts muxer / libsrt]: RTT [3.08 ms], Link Bandwidth [3575.9 Mbps]
12:16:11.365: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:11.365: process_packet: Error writing packet: Input/output error
12:16:11.365: Output 'test-stream': stopping
12:16:11.365: Output 'test-stream': Total frames output: 2257
12:16:11.365: Output 'test-stream': Total drawn frames: 2274
12:16:11.365: Output 'test-stream': Reconnecting in 1.00 seconds..
12:16:11.372: Qavg: 65526.422
12:16:11.372:
12:16:11.372: 2 frames left in the queue on closing
12:16:11.372:
12:16:12.371: [obs-ffmpeg mpegts muxer: 'test-stream']: Output format name and long_name: mpegts, MPEG-TS (MPEG-2 Transport Stream)
12:16:12.371: [obs-ffmpeg mpegts muxer / libsrt]: libsrt version 1.5.2 loaded
12:16:12.482: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:12.594: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:12.704: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:12.813: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:12.915: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:13.023: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:13.131: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:13.240: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:13.347: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:13.456: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:13.568: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:13.673: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:13.780: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:13.889: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:13.999: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:14.106: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:14.212: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:14.320: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:14.427: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:14.534: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:14.634: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:14.734: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:14.840: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:14.946: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:15.055: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:15.165: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:15.276: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, Unknown or erroneous
12:16:15.385: [obs-ffmpeg mpegts muxer / libsrt]: Connection rejected, wrong password or invalid URL
12:16:15.385: [obs-ffmpeg mpegts muxer / libsrt]: Connection to srt://<IP removed>:<Port removed>?streamid=publish:test-stream&pkt_size=1316 failed: No such process
12:16:15.385: [obs-ffmpeg mpegts muxer: 'test-stream']: Failed to open the url or invalid stream
12:16:15.385: [obs-ffmpeg mpegts muxer: 'test-stream']: Failed to open the url

It appears to reconnect very quickly every 200ms for a few seconds and then gives up and crashes.

EDIT: It appears it is currently hardcoded in branch output:

Code:
src/plugin-main.cpp

#define FILTER_ID "osi_branch_output"
#define OUTPUT_MAX_RETRIES 7
#define OUTPUT_RETRY_DELAY_SECS 1
#define CONNECT_ATTEMPTING_TIMEOUT_NS 15000000000ULL
#define AVAILAVILITY_CHECK_INTERVAL_NS 1000000000ULL
#define TASK_INTERVAL_MS 1000

Interestingly, the log line
Code:
void BranchOutputFilter::reconnectStreamingOutput(size_t index)
{
    pthread_mutex_lock(&outputMutex);
    {
        OBSMutexAutoUnlock locked(&outputMutex);

        if (streamings[index].active) {
            obs_output_force_stop(streamings[index].output);

            streamings[index].connectAttemptingAt = os_gettime_ns();

            if (!obs_output_start(streamings[index].output)) {
                obs_log(LOG_ERROR, "%s: Reconnect streaming %zu output failed", qUtf8Printable(name), index);
            }
        }
    }
}

Does not appear to show up in my logs.

/END EDIT

Solution/How it should be working
- At a minimum implementation level, the plugin should not crash when a prolonged network outage happens.
- At a basic implementation level, it should follow OBS's build-in Automatic retry logic. If it exceeds this user defined settings, it should stop trying (or perhaps disable the filter).
- In an ideal implementation level, it would have user definable retry logic fields in the filter options.


Let me know if you want me to provide any more information, My use case is always running in harsh, network unstable environments (Cellular, Satcoms, etc) making it a fairly big issue.

Thanks again
Thanks for the report. As mentioned in the overview, we have confirmed that since OBS 31, there is a compatibility issue in the Mac/Linux version that causes the SRT transmission to crash on connection failure, which does not exist in OBS 30.2.3.

BRO's reconnection algorithm has partially own implementation to introduce workaround another crash issue (Because experiments have shown that OBS crashes if outputs are stopped during the reconnection sequence).

We will continue to investigate and attempt to make improvements.
 
Top