patrickstigler Posted October 17, 2021 Share Posted October 17, 2021 (edited) This is the support Thread for OBS-NDI https://hub.docker.com/r/patrickstigler/obs-ndi # Docker Open Broadcaster Software (OBS) This container is based on [bb12489/gui-docker](https://github.com/bb12489/gui-docker) & [bb12489/docker-obs](https://github.com/bb12489/docker-obs). The OBS with NDI is incorporated into the container and can be used to stream your desktop. The main reason for this fork is to update the container and add it to the unraid app store. Here is a screenshot: # To run You can start the container with: `docker run --shm-size=256m -it -p 5900:5900 -p 5901:5901 -e VNC_PASSWD=123456 patrickstigler/docker-obs-ndi:latest` The shm-size argument is to make sure that the webclient does not run out of shared memory and crash. You can change the default VNC password of '123456' on the docker run command to whatever you wish. You can connect with your own VNC client at 5900 or use the webclient at 5901 To enable GPU Support also add -e NVIDIA_VISIBLE_DEVICES=<your GPU ID> -e NVIDIA_DRIVER_CAPABILITIES=all and also add --runtime=nvidia as extra parameter. Edited October 17, 2021 by maddash1337 1 Quote Link to comment
Wetterchen Posted October 20, 2021 Share Posted October 20, 2021 It its possible to connect my dsektop obs ndi output to this docker obs ndi source? The Docker obs can not find the NDI Stream. If i start the NDI Output from the docker obs i can find this on my desktop obs ndi source. Quote Link to comment
patrickstigler Posted November 1, 2021 Author Share Posted November 1, 2021 You must be in the same subnet. Than it will work. Just define your container within the same Subnet i.e. 192.168.0.X That is the exact way I am using it. Sometimes it can take a bit till your Desktop will be found. (Have you enabled it on your desktop?) Quote Link to comment
s449 Posted November 3, 2021 Share Posted November 3, 2021 (edited) Hey is there any way to run this with the OBS virtual webcam? I'm not seeing "start virtual camera". I'm trying to use it as a way to stream video files from my server through "VLC Video Source" and into Discord. It sounds like no matter what I'll need to run Discord + OBS on a VM and tunnel the stream to it. But I assume that would be better performing considering with an OBS docker I can pass through my GPU (which is shared with Plex) and solely use the VM to upload the stream. Edited November 3, 2021 by s449 Quote Link to comment
patrickstigler Posted November 3, 2021 Author Share Posted November 3, 2021 @s449 - I guess no https://obsproject.com/forum/threads/obs-virtual-cam-on-linux.134849/ It's not supported yet. Quote Link to comment
parish Posted November 6, 2021 Share Posted November 6, 2021 Getting an error trying to install this? I do not have an nvidia card, is it a requirement? Quote Link to comment
phoenixrisen Posted November 6, 2021 Share Posted November 6, 2021 3 minutes ago, parish said: Getting an error trying to install this? I do not have an nvidia card, is it a requirement? Beat me by seconds, I am having the same issue. Quote Link to comment
patrickstigler Posted November 6, 2021 Author Share Posted November 6, 2021 Hi you can run it without a GPU, just remove the --runtime=nvidia That should fix it. @parish @phoenixrisen 1 Quote Link to comment
Buri Posted November 6, 2021 Share Posted November 6, 2021 Hi, i have the same issue. I'm trying to install without the extra parameters. Quote Link to comment
Buri Posted November 6, 2021 Share Posted November 6, 2021 2 hours ago, Buri said: Hi, i have the same issue. I'm trying to install without the extra parameters. I didn't delete the extra parameter in advanced view. Now it works. 1 Quote Link to comment
madman32395 Posted November 24, 2021 Share Posted November 24, 2021 On 11/6/2021 at 8:45 AM, Buri said: Hi, i have the same issue. I'm trying to install without the extra parameters. You tried installing the Nvidia-Driver? I was running into the same issues as yall but after installing the driver the default variables worked (only thing I changed was the IP address) Quote Link to comment
Evidenz Posted November 26, 2021 Share Posted November 26, 2021 Perhaps I miss something but it seems that the recording does not really uses the GPU? I have everything set - same as for Plex for the Docker run statements. But the GPU is barely in use. The settings are just an example. I have tried a lot of different settings. The output from my main computer is 1080p 60FPS. On the Docker I reach only max 40FPS recording. Quote Link to comment
patrickstigler Posted November 26, 2021 Author Share Posted November 26, 2021 Hmm good question, I recently notice that also the load on my gpu is kind of low. But I guess it could be something with the driver directly. But I only used OBS for streaming. It is working fine with 30FPS. But not really with 60FPS. I switched to the LTS drivers. But for now it's the same issue. I will take a look at it. And ask @ich777 Maybe you have an idea? Quote Link to comment
ich777 Posted November 27, 2021 Share Posted November 27, 2021 15 hours ago, Evidenz said: Perhaps I miss something but it seems that the recording does not really uses the GPU? It iw only possoble that it uses the dGPU or doesn't use it, something in between is not possible. What card are you using? In your screenshot I see the Recording tab, what does the Streaming tab look like. Do you simulaneus use Plex, or better speaking is Plex transcoding in the background? 15 hours ago, Evidenz said: same as for Plex Have you turned on trottling in the Plex settings for transcoding? This is just a normal behavior if yes, try to turn it off, force a transcode and see what happens. 15 hours ago, Evidenz said: On the Docker I reach only max 40FPS recording. I'm really not to sure what's the issue here because I'm not too familiar with OBS. 8 hours ago, patrickstigler said: But I guess it could be something with the driver directly. I don't think that this is related to the driver, you can try to set up Jellyfin and use the dGPU there. Depending on the card and transcoding settings the load will be between 5- 15% usually. 8 hours ago, patrickstigler said: It is working fine with 30FPS. But not really with 60FPS. Maybe this is something related to OBS or the streaming Platform that you are streaming to or a setting in OBS? With this container you have two OBS instances to manage at the same time or am I wrong, maybe it is also related to the plugin for OBS, but that's only guess. 1 Quote Link to comment
patrickstigler Posted November 28, 2021 Author Share Posted November 28, 2021 @Ich777 I am starting up plex as soon as unraid is up. It usally doesn't encode at the same time. Both containers have access to all GPUs. I am running a Quadro P400 - no active processes. My Plex Settings are default: I assume you speak german. But it's basically default, auto select Quality, Hardware acceleration and unlimited simultanes Encodings. But none are active. When I run an encoding and OBS as well I see both threads. If I got you right there, you think I have obs running 2times at the same time?! No I am running a docker with OBS and a Docker with Plex which share the GPU. If you have an idea let me know. I will check again. And as soon as I find a solution I will update the container. Quote Link to comment
ich777 Posted November 28, 2021 Share Posted November 28, 2021 3 hours ago, patrickstigler said: I am running a Quadro P400 - no active processes. This seems completely okay to me. Side note, you can also type in "watch nivida-smi" this will update nvidia-smi every two seconds, to end it press CTRL+C 3 hours ago, patrickstigler said: If I got you right there, you think I have obs running 2times at the same time?! No No, I thought maybe you run 2 or even 3 Plex transcodes and try to use it for a 4th transcode for OBS (by default only 3 simultaneous transcodes are allowed on consumer/prosumer cards). I really can't help, from what I see OBS is using your card and should work just fine. The difference in usage from OBS and Plex is caused because you started transcoding a 4K file am I right? A 1080p file is really not that hard to transcode, even for the P400. I only can think of a problem with OBS that it transcodes not like you want it to, the card should be capable of 1080p/60 without a sweat. 1 Quote Link to comment
Evidenz Posted November 28, 2021 Share Posted November 28, 2021 On 11/27/2021 at 7:28 AM, ich777 said: Quote It iw only possoble that it uses the dGPU or doesn't use it, something in between is not possible. Alright, seems strange that it does show the possibility to use hardware encoding but does end up with the CPU. Quote What card are you using? In your screenshot I see the Recording tab, what does the Streaming tab look like. GTX 1080 Quote Do you simulaneus use Plex, or better speaking is Plex transcoding in the background? Plex is running as well but it is not trans coding. I tried also with Plex container off. Quote I'm really not to sure what's the issue here because I'm not too familiar with OBS. Quote With this container you have two OBS instances to manage at the same time or am I wrong, maybe it is also related to the plugin for OBS, but that's only guess. One thing I was missing was the hardware acceleration on the NDI source but even with this option enabled only the CPU is used. Quote Link to comment
ich777 Posted November 28, 2021 Share Posted November 28, 2021 1 hour ago, Evidenz said: I really can't help here since I'm not too familiar with OBS, but I can't think of a driver issue when everything is working just fine in Plex and other containers. Seems like this is related to OBS and not NVENC. Quote Link to comment
Evidenz Posted November 29, 2021 Share Posted November 29, 2021 11 hours ago, ich777 said: I really can't help here since I'm not too familiar with OBS, but I can't think of a driver issue when everything is working just fine in Plex and other containers. Seems like this is related to OBS and not NVENC. No worries. On my PC itself the whole NVENC works just fine. Do you have any starting point for me how I could troubleshoot it to check for the issue within the container/with the driver? Quote Link to comment
ich777 Posted November 29, 2021 Share Posted November 29, 2021 23 minutes ago, Evidenz said: Do you have any starting point for me how I could troubleshoot it to check for the issue within the container/with the driver? Wait you transcode first on your PC or am I wrong? From my understanding you don't need to enable NVENC on the main machine where you actually capture the screen because you are "streaming" the raw footage over the NDI plugin, correct me if I'm wrong please... Also keep in mind that the low usage can be also caused because the card only has to encode the stream and not like it's the case on Plex where it has to decode/encode it again. Quote Link to comment
Wetterchen Posted November 29, 2021 Share Posted November 29, 2021 On 11/1/2021 at 4:57 PM, patrickstigler said: You must be in the same subnet. Than it will work. Just define your container within the same Subnet i.e. 192.168.0.X That is the exact way I am using it. Sometimes it can take a bit till your Desktop will be found. (Have you enabled it on your desktop?) I found the problem. If i enable "Privacy" in NDI Tools on my Pc so the Docker cant find it anymore. I dont find the option to enable this Modus in Docker so only public option works. The next problem OBS in the Docker detect a ndi stream if i start "Screen Captute". But this is oldschool und slow. If i start "Screen Capture HX" on my PC (NDI Tools v5) the Obs cant find any ndi stream. The OBS NDI Version in the docker is old (NDI SDK 4.5.1, April 1 2020) - is a update to NDI SKD 5 possible? How? Quote Link to comment
patrickstigler Posted November 29, 2021 Author Share Posted November 29, 2021 @ich777 Good point with the limit of the encoding. Thanks Yes, the idea is that your main system (Gaming) streams your screen almost raw to your docker who should encode it for i.e. twitch. @Evidenz you have to enable it on your gaming system, basically just turn it on in plugins. Then you should see it on your docker to stream it to i.e. twitch There you need to add a source NDI and you will find it if you setup your docker in the same subnet like your streaming pc. (As far as I know, not working for Mac) Let's say your gaming pc has the IP 192.168.0.20 - Then your docker should have something like 192.168.0.XXX i.e. 192.168.0.220. @Wetterchen Yes and no - I checked the linux version of NDI 5 is not released yet. So I can't upgrade it right now. I have to wait for the release. I also found some problems with NDI on Ubuntu (base of the container) but there is no real fix yet. 1 Quote Link to comment
Evidenz Posted November 30, 2021 Share Posted November 30, 2021 @patrickstigler yes, the streaming works, I also get the input from my gaming PC - that's not the problem for me. My problem is that the container does not really utilize the GPU. When I stream or record the CPU usage goes up, the GPU usage sticks at around 1%-2%. And I can see it as well in the recording performance. Quote Link to comment
Evidenz Posted November 30, 2021 Share Posted November 30, 2021 On 11/29/2021 at 10:03 AM, ich777 said: Wait you transcode first on your PC or am I wrong? From my understanding you don't need to enable NVENC on the main machine where you actually capture the screen because you are "streaming" the raw footage over the NDI plugin, correct me if I'm wrong please... Also keep in mind that the low usage can be also caused because the card only has to encode the stream and not like it's the case on Plex where it has to decode/encode it again. You are right. NDI basically only captures what you can see on your screen and sends it over to a receiving end (the docker). There the whole work needs to be done to transform the data into a stream / media file. Quote Link to comment
patrickstigler Posted December 1, 2021 Author Share Posted December 1, 2021 At lease for me it seems to work fine. Have you tried these settings? Or what kind of settings are you running? Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.