-
-
Notifications
You must be signed in to change notification settings - Fork 419
Description
Operating System Version
Windows 10 22H2
CPU
Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz 2.71 GHz
GPU
Intel HD Graphics 620
NDI Devices
OBS Version
30.0.2
OBS Installation Method
.exe
OBS-NDI Version
4.14.1
OBS-NDI Installation Method
.exe
[Extra] Installation Steps
No response
OBS Log [URL]
https://obsproject.com/logs/EeD2cz4hJRrUE7sL
NDI Version
NDI SDK WIN64 13:01:51 Apr 2 2024 6.0.0.0
Describe the bug
When using GetOutputList to get a list of available outputs, NDI Preview Output shows up in the list whether or not it is enabled in Tools -> NDI Output Settings but NDI Main Output only shows up in the result of GetSourceList only if it is enabled in Tools -> NDI Output Settings.

With the above settings, GetOutputList result is the following:
{
"outputs": [
{
"outputActive": false,
"outputFlags": {
"OBS_OUTPUT_AUDIO": true,
"OBS_OUTPUT_ENCODED": true,
"OBS_OUTPUT_MULTI_TRACK": true,
"OBS_OUTPUT_SERVICE": false,
"OBS_OUTPUT_VIDEO": true
},
"outputHeight": 0,
"outputKind": "ffmpeg_muxer",
"outputName": "simple_file_output",
"outputWidth": 0
},
{
"outputActive": false,
"outputFlags": {
"OBS_OUTPUT_AUDIO": false,
"OBS_OUTPUT_ENCODED": false,
"OBS_OUTPUT_MULTI_TRACK": false,
"OBS_OUTPUT_SERVICE": false,
"OBS_OUTPUT_VIDEO": true
},
"outputHeight": 1080,
"outputKind": "virtualcam_output",
"outputName": "virtualcam_output",
"outputWidth": 1920
},
{
"outputActive": false,
"outputFlags": {
"OBS_OUTPUT_AUDIO": true,
"OBS_OUTPUT_ENCODED": false,
"OBS_OUTPUT_MULTI_TRACK": false,
"OBS_OUTPUT_SERVICE": false,
"OBS_OUTPUT_VIDEO": true
},
"outputHeight": 1080,
"outputKind": "ndi_output",
"outputName": "NDI Preview Output",
"outputWidth": 1920
}
]
}And with the following settings:

GetOutputList result is the following:
{
"outputs": [
{
"outputActive": true,
"outputFlags": {
"OBS_OUTPUT_AUDIO": true,
"OBS_OUTPUT_ENCODED": false,
"OBS_OUTPUT_MULTI_TRACK": false,
"OBS_OUTPUT_SERVICE": false,
"OBS_OUTPUT_VIDEO": true
},
"outputHeight": 1080,
"outputKind": "ndi_output",
"outputName": "NDI Main Output",
"outputWidth": 1920
},
{
"outputActive": false,
"outputFlags": {
"OBS_OUTPUT_AUDIO": true,
"OBS_OUTPUT_ENCODED": true,
"OBS_OUTPUT_MULTI_TRACK": true,
"OBS_OUTPUT_SERVICE": false,
"OBS_OUTPUT_VIDEO": true
},
"outputHeight": 0,
"outputKind": "ffmpeg_muxer",
"outputName": "simple_file_output",
"outputWidth": 0
},
{
"outputActive": false,
"outputFlags": {
"OBS_OUTPUT_AUDIO": false,
"OBS_OUTPUT_ENCODED": false,
"OBS_OUTPUT_MULTI_TRACK": false,
"OBS_OUTPUT_SERVICE": false,
"OBS_OUTPUT_VIDEO": true
},
"outputHeight": 1080,
"outputKind": "virtualcam_output",
"outputName": "virtualcam_output",
"outputWidth": 1920
},
{
"outputActive": false,
"outputFlags": {
"OBS_OUTPUT_AUDIO": true,
"OBS_OUTPUT_ENCODED": false,
"OBS_OUTPUT_MULTI_TRACK": false,
"OBS_OUTPUT_SERVICE": false,
"OBS_OUTPUT_VIDEO": true
},
"outputHeight": 1080,
"outputKind": "ndi_output",
"outputName": "NDI Preview Output",
"outputWidth": 1920
}
]
}As you can see, even when NDI Preview Output is disabled throug NDI Output Settings, it still shows up as an available output to OBS. This means its settings and status can be changed through obs-websocket when it is disabled. This is not the case with NDI Main Output as it is currently required that it be enabled in NDI Output Settings to be able to manipulate it through obs-websocket.
According to the logs, NDI Preview Output is getting created at startup even if it is disabled in NDI Output Settings:
11:37:13.388: Loading module: obs-ndi.dll
11:37:13.389: [obs-ndi] obs_module_load: you can haz obs-ndi (Version 4.14.1)
11:37:13.389: [obs-ndi] obs_module_load: Qt Version: 6.5.3 (runtime), 6.6.2 (compiled)
11:37:13.389: [obs-ndi] Config: obs-ndi verbose logging enabled
11:37:13.389: [obs-ndi] load_ndilib: Trying 'C:/Program Files/NDI/NDI 6 Runtime/v6/Processing.NDI.Lib.x64.dll'
11:37:13.389: [obs-ndi] load_ndilib: Found 'C:/Program Files/NDI/NDI 6 Runtime/v6/Processing.NDI.Lib.x64.dll'; attempting to load NDI library...
11:37:13.394: [obs-ndi] load_ndilib: NDI library loaded successfully
11:37:13.394: [obs-ndi] load_ndilib: NDIlib_v5_load found
11:37:13.399: [obs-ndi] obs_module_load: NDI library initialized successfully ('NDI SDK WIN64 13:01:51 Apr 2 2024 6.0.0.0')
11:37:13.407: [obs-ndi] preview_output_init('Preview', '')
11:37:13.407: [obs-ndi] +ndi_output_create(name='Preview', groups='', ...)
11:37:13.407: [obs-ndi] ndi_output_update(name='Preview', groups='', ...)
11:37:13.407: [obs-ndi] -ndi_output_create(name='Preview', groups='', ...)
11:37:13.407: output 'NDI Preview Output' (ndi_output) created
while Main Output is only created if it is started:
11:37:56.621: [obs-ndi] main_output_start: starting NDI main output with name 'Main'
11:37:56.621: [obs-ndi] +ndi_output_create(name='Main', groups='', ...)
11:37:56.621: [obs-ndi] ndi_output_update(name='Main', groups='', ...)
11:37:56.621: [obs-ndi] -ndi_output_create(name='Main', groups='', ...)
11:37:56.621: output 'NDI Main Output' (ndi_output) created
11:37:56.621: [obs-ndi] +ndi_output_start(name='Main', groups='', ...)
11:37:56.632: [obs-ndi] 'Main': ndi output started
11:37:56.632: [obs-ndi] -ndi_output_start(name='Main', groups=''...)
11:37:56.632: [obs-ndi] main_output_start: obs_output_start result=1
11:37:56.632: [obs-ndi] main_output_start: started NDI main output
11:37:56.725: [obs-ndi] ndi_output_rawaudio: growing audio_conv_buffer from 0 to 8192 bytes
11:37:56.725: [obs-ndi] ndi_output_rawaudio: allocating 8192 bytes
and Preview Output is not destroyed when disabled through settings but Main Output is
11:57:43.146: [obs-ndi] main_output_stop: stopping NDI main output
11:57:43.146: [obs-ndi] +ndi_output_stop(name='Main', groups='', ...)
11:57:43.146: Output 'NDI Main Output': stopping
11:57:43.146: Output 'NDI Main Output': Total frames output: 8082
11:57:43.146: Output 'NDI Main Output': Total drawn frames: 7996 (8084 attempted)
11:57:43.146: Output 'NDI Main Output': Number of lagged frames due to rendering lag/stalls: 88 (1.1%)
11:57:43.146: [obs-ndi] +ndiLib->send_destroy(o->ndi_sender)
11:57:43.155: [obs-ndi] -ndiLib->send_destroy(o->ndi_sender)
11:57:43.155: [obs-ndi] -ndi_output_stop(name='Main', groups='', ...)
11:57:43.155: output 'NDI Main Output' destroyed
11:57:43.155: [obs-ndi] +ndi_output_stop(name='Main', groups='', ...)
11:57:43.155: [obs-ndi] -ndi_output_stop(name='Main', groups='', ...)
11:57:43.161: [obs-ndi] +ndi_output_destroy(name='Main', groups='', ...)
11:57:43.161: [obs-ndi] ndi_output_destroy: freeing 8192 bytes
11:57:43.161: [obs-ndi] -ndi_output_destroy(name='Main', groups='', ...)
11:57:43.161: [obs-ndi] main_output_stop: stopped NDI main output
11:57:43.161: [obs-ndi] preview_output_stop: stopping NDI preview output
11:57:43.161: [obs-ndi] +ndi_output_stop(name='Preview', groups='', ...)
11:57:43.161: Output 'NDI Preview Output': stopping
11:57:43.161: Output 'NDI Preview Output': Total frames output: 7996
11:57:43.161: Output 'NDI Preview Output': Total drawn frames: 7996 (8084 attempted)
11:57:43.161: Output 'NDI Preview Output': Number of lagged frames due to rendering lag/stalls: 88 (1.1%)
11:57:43.161: [obs-ndi] +ndiLib->send_destroy(o->ndi_sender)
11:57:43.175: [obs-ndi] -ndiLib->send_destroy(o->ndi_sender)
11:57:43.175: [obs-ndi] -ndi_output_stop(name='Preview', groups='', ...)
11:57:43.194: [obs-ndi] preview_output_stop: stopped NDI preview output
Steps to reproduce the problem
- Go to NDI Output Settings and disable both Main output and Preview Output.
- Call GetOutputList to get the list of available outputs. Main Output will not be in the list while Preview Output will.
- Go to NDI Output Settings and enable Main Output.
- Call GetOutputList to get the list of available outputs. Main Output will now be listed.
Expected behavior
Main Output is expected to be created at startup so it can be manipulated through OBS whether or not it is active.
Screenshots
No response
Additional context
No response