ICE fails on local network

Hey, complete newbie here.
I’m trying to set up Janus to restream a local rtsp stream to the browser.
I managed to set up the server, but I’m getting an ICE error when running the multistream sample.
The stream starts to load, but then fails and the sample cleans up.
I’m running janus inside a docker container with default config, here is the output it gives.
Any ideas?

[3934462469276920] There are 0 audio, 1 video and 0 data m-lines
[3934462469276920] Setting ICE locally: got ANSWER
[3934462469276920] Creating ICE agent (ICE Full mode, controlling)
[3934462469276920] Adding 172.21.0.2 to the addresses to gather candidates for
[3934462469276920] Component state changed for component 1 in stream 1: 1 (gathering)
[3934462469276920] Gathering done for stream 1

Anonymized


[3934462469276920] We have 1 candidates for Stream #1, Component #1
[3934462469276920] Address: 172.21.0.2:33979
[3934462469276920] Priority: 2015363327
[3934462469276920] Foundation: 1
[3934462469276920] 1 1 udp 2015363327 172.21.0.2 33979 typ host

Merged (1014 bytes)


[3934462469276920] Sending event to transport…

Pushing event: 0 (Success)
Got a Janus API request from janus.transport.http (0x7f108801e930)
[3934462469276920] Trickle candidate (v): candidate:1071010765 1 udp 2113937151 bd288656-7796-4b7a-8a22-4f66f3821509.local 53886 typ host generation 0 ufrag EsFJ network-cost 999
[3934462469276920] Resolving mDNS address (bd288656-7796-4b7a-8a22-4f66f3821509.local) asynchronously
Got a Janus API request from janus.transport.http (0x7f1088009060)
Session 3837070874136554 found… returning up to 10 messages
Got a keep-alive on session 3837070874136554
Got a Janus API request from janus.transport.http (0x7f1088015830)
[3934462469276920] Trickle candidate (v): candidate:3540669378 1 udp 1677729535 77.127.111.143 53886 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag EsFJ network-cost 999
[3934462469276920] Adding remote candidate component:1 stream:1 type:srflx 0.0.0.0:0 → 77.127.111.143:53886
[3934462469276920] Transport: UDP
[3934462469276920] ICE already started for this component, setting candidates we have up to now
[3934462469276920] ## Setting remote candidates: stream 1, component 1 (1 in the list)
[3934462469276920] Queueing candidate 0x7f108c033670 (startup)
[3934462469276920] Processing candidate 0x7f108c033670
[3934462469276920] Component state changed for component 1 in stream 1: 2 (connecting)
[3934462469276920] 1 remote candidate added
Got a Janus API request from janus.transport.http (0x7f1088016280)
No more remote candidates for handle 3934462469276920!
[WARN] [3934462469276920] Error resolving mDNS address (bd288656-7796-4b7a-8a22-4f66f3821509.local): Error resolving “bd288656-7796-4b7a-8a22-4f66f3821509.local”: Name or service not known
[3934462469276920] Component state changed for component 1 in stream 1: 5 (failed)
[WARN] [3934462469276920] ICE failed for component 1 in stream 1, but let’s give it some time… (trickle received, answer received, alert not set)
[3934462469276920] Creating ICE state check timer with ID 6
[ERR] [ice.c:janus_ice_check_failed:2021] [3934462469276920] ICE failed for component 1 in stream 1…
[3934462469276920] Hanging up PeerConnection because of a ICE failed
[3934462469276920] Telling the plugin about the hangup (JANUS Streaming plugin)
[janus.plugin.streaming-0x55a6687761b0] No WebRTC media anymore
– Removing the session from the mountpoint viewers
– – Found!
[3934462469276920] Removing stream 1 from agent 0x7f108c00a000
[3934462469276920] Closing nice agent 0x7f108c00a000
[3934462469276920] Notifying WebRTC hangup; 0x7f10bc0020e0
[3934462469276920] Sending event to transport…; 0x7f10bc0020e0
[3934462469276920] Disposing nice agent 0x7f108c00a000
[3934462469276920] WebRTC resources freed; 0x7f10bc0020e0 0x7f10bc0018e0

Please check this presentation for more insight:

Thanks for the quick reply Lorenzo!
I forgot to mention I’m doing this for a windows environment (!), and it looks like the macvlan and pipework won’t work here.
Is there an alternative? Maybe setting up a STUN server as a service? I’m really out of my depth here.
Thanks!