Troubleshooting unidirectional stream behind NATs
pimentgabriel at gmail.com
Sun May 29 17:58:22 UTC 2022
(Also posted on gstreamer-java maliling list)
I have set up a one-way WebRTC stream from a Java server (running
gstreamer) to a browser client. It all worked fine when streaming locally
to clients, but it doesnt work when the browser client is in a different
network behind a NAT.
I thought that adding a TURN server to the client's RTCPeerConnection
object would solve it, but it didnt. The logs from gstreamer show that
there was a connectivity issue between the peers, without any further
Peer connection state change from connecting(1) to failed(4)"
I have a couple of questions that might help me with troubleshooting:
1. Is adding a TURN server really the only thing that needs to be done
regarding enabling streaming through NAT holes? Is there anything else to
be done related to WebRTCBin config in order to make it work?
2. It seems that WebRTCBin tries the peer connection on the first
candidate that arrives, and stops after the first failure. Shouldnt it
retry with every possible remote candidate?
3. Is there anywhere else I can get more information about the
connectivity issue that is happening other than gstreamer/browser client
Relevant information about my setup:
- The TURN server I have been using is a public one: turn:
numb.viagenie.ca, as listed here
was tested here
returns relay candidates as expected.
- The streaming server is also running in a private network but exposed
via 8080 port-forwarding to the internet.
- Source code <https://github.com/gpr-indevelopment/gote-game-server-2> of
it all, if anyone is interested. It is a java app currently using bindings
Any help is appreciated. Thank you in advance.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the gstreamer-devel