Comments (13)
First thing up my mind: you must expose the relay ports that you have set in the coturn configuration.
from docker-nvidia-egl-desktop.
Yes i have exposed coturn ports (both stun and turn forwaring ports) with host-network.
Also i saw [app] using TURN servers: turn:192.168.1.12:3478?transport=tcp
on the web GUI, which is correct.
From the /tmp/selk....log
I can see the same IP and port (3478) but there is no logs about the forwarding ports(49160, etc.).
from docker-nvidia-egl-desktop.
Ah. I see the issue.
One problem is, you are using an internal IP as the TURN server host. That IP is used both for the client and the host. If any if the two is outside that internal network, no way it's going to find the TURN server. It should (somehow) resolve differently inside and outside to work. An example is using a (sub)domain to do that.
from docker-nvidia-egl-desktop.
Ah. I see the issue.
One problem is, you are using an internal IP as the TURN server host. That IP is used both for the client and the host. If any if the two is outside that internal network, no way it's going to find the TURN server. It should (somehow) resolve differently inside and outside to work. An example is using a (sub)domain to do that.
But I am testing from an internal laptop, 192.168.1.225.
Coturn and selkies are both on 192.168.1.12, but selkies is on a bridged network 172.10.0.5. From the selkies docker container I can also ping coturn docker container (192.168.1.12).
I also used Wireshark and found out that the browser never connects to 192.168.1.12:49160, it talks to 192.168.1.12:3478 and always try 172.10.0.5 which is not accessible outside the computer(192.168.1.12) which hosts the docker.
from docker-nvidia-egl-desktop.
I think there was a setting in coturn to choose which IP to bind to, if so.
from docker-nvidia-egl-desktop.
coturn binds to 192.168.1.12 already. and I set "--external-ip=192.168.1.12","--relay-ip=192.168.1.12"
It seems that either coturn did not send the relay port to browser/selkies, or they did not ask for one. Is there any way to tell selkies to prefer relay instead of stun?
from docker-nvidia-egl-desktop.
There is a "Force relay connection" option in the web ui.
from docker-nvidia-egl-desktop.
I enabled this and now it stuck forever at Rejecting non-relay ICE candidate
. So the coturn is not sending any relay at all.
from docker-nvidia-egl-desktop.
@xhejtman
I think we discussed a similar issue around 8 months ago?
from docker-nvidia-egl-desktop.
@xhejtman I think we discussed a similar issue around 8 months ago?
I do not think so. However, @nick008a, would you be able to split networks with turn and selkies to be different? Like add another network for coturn and use it? Maybe there is some heuristics that thinks that selkies is directly connected. Btw, any chance to run browser on the node that runs coturn to check, if it works from the same host?
from docker-nvidia-egl-desktop.
I managed to get it working by setting selkies to use udp, and set coturn to run with no password. (the selkies still need a dummy username and password). I wonder if you could share a config for coturn with passwords? I never get it working properly,
Surprisingly, the udp video traffic to my browser is not going through any relay port, but the 192.168.1.12:3478 port directly.
However, the connection in UDP will be lost every 5 minutes, and I have to restart the selkies cotainer to get it working again. I am confused because the connection can't be that bad in a local network.
Like add another network for coturn and use it?
I tried putting coturn into a new bridged network with 172.11.0.5 and mapped the ports to 192.168.1.12, but it stops working as my browser cannot connect to 172...* ip.
Btw, any chance to run browser on the node that runs coturn to check, if it works from the same host?
Unfortunately, the host is a headless server.
from docker-nvidia-egl-desktop.
@nick008a I believe you could ask the folks at https://github.com/coturn/coturn.
A trick I can tell you is that --rtc_config_json
is the WebRTC configuration used for the client, while --turn_host
is used for the server. It's possible to use different hosts for the web client and the server.
from docker-nvidia-egl-desktop.
Thanks!
from docker-nvidia-egl-desktop.
Related Issues (20)
- Video stream issue HOT 1
- How to have GPU-based rendering in docker console? HOT 5
- Choosing a specific GPU device rendering in docker console? / VGL_DISPLAY for VirtualGL HOT 8
- Question regarding building a pod based on this image HOT 2
- ASK: how to start single window application HOT 6
- Google Chrome with GPU HOT 6
- Instruction to test HOT 13
- Test issue. HOT 2
- Enhancement request - AArch64 support HOT 13
- Will this work without i386 ? HOT 1
- SIGKILL/SIGSTOP can not be trapped HOT 2
- Missing gstreamer plugins nice, webrtc, dtls, ... HOT 11
- NVIDIA headless drivers do not support the container HOT 19
- The screen locker is broken and unlocking is not possible anymore HOT 11
- Unity 3d-Rendering app does not recognize the display/desktop in Docker env HOT 7
- replace noVNC to KasmVNC HOT 8
- selkies-gstream hit 100% CPU HOT 19
- NVIDIA Drivers required with nvidia-headless HOT 14
- Unable to choose node affinity HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from docker-nvidia-egl-desktop.