Open TadayukiOkada opened 6 months ago
@TadayukiOkada it looks like these can be disabled like this: https://stackoverflow.com/questions/30742431/webrtc-on-isolated-lan-without-ice-stun-turn-server
That is on the javascript/client side. However on the server side, I'm not sure if gstreamer webrtcbin will work without STUN server. Here are the references to it in jetson_utils: https://github.com/search?q=repo%3Adusty-nv%2Fjetson-utils%20stun&type=code
I would get jetson_utils working first without STUN, and then the javascript in NanoLLM can be updated to reflect it. It may be tricky however to support both ways.
Hi @dusty-nv,
I've tried to disable STUN server on both javascript and gstreamer by commenting out the STUN part and it works when the server(gstreamer) side is not connected to Internet.
However, it still fails to connect when viewed from a PC (same LAN) that doesn't connect to the Internet.
@manhntm3 have you tried setting up a local TURN/STUN server such as coturn? It shouldn't be necessary but it might be helpful to move forward.
@manhntm3 I am having the same problem, I can't view the video from an other device on the lan if not connected to internet. My jetson also crashes because the queue frames fills up all the RAM. Have you found a fix?
@manhntm3 I am also having the same problem. This is very problematic.
Can you try this attempted fix from jetson-utils? https://github.com/dusty-nv/jetson-utils/commit/72c4e095f0575091992a5803d79af08e138e3369
video-viewer /dev/video0 webrtc://@:8554/output --stun-server disabled
Then navigate your browser to http://JETSON_IP:8554
When it is set to disabled, I set the ice-servers in the built-in HTML/Javascript to empty array as suggested here:
https://groups.google.com/g/discuss-webrtc/c/s7WsDPjHIj4/m/v8a6jPWtF8QJ
It worked for me both with it disabled and the default server (stun.l.google.com:19302
)
The web-side changes are only for the jetson-utils built-in debug viewer on port 8554 so far.
For me, it only works when the computer that views Jetson's webpage is connected to the Internet. If we disable the Internet from the laptop that runs the browser and see Jetson's webpage through port 8554, it still doesn't work.
Can you confirm in the clientside HTML/Javascript that the ICE stun servers are in fact being set to empty?
From: Manh Nguyen @.> Sent: Monday, June 24, 2024 2:18:21 AM To: dusty-nv/jetson-containers @.> Cc: Dustin Franklin @.>; Mention @.> Subject: Re: [dusty-nv/jetson-containers] local_llm: no way to change or disable ICE server for webrtc (Issue #535)
For me, it only works when the computer that views Jetson's webpage is connected to the Internet. If we disable the Internet from the laptop that runs the browser and see Jetson's webpage through port 8554, it still doesn't work. Screenshot.2024-06-24.at.13.15.52.png (view on web)https://github.com/dusty-nv/jetson-containers/assets/53960609/a21f44f0-ea48-4201-9883-3037224456f7
— Reply to this email directly, view it on GitHubhttps://github.com/dusty-nv/jetson-containers/issues/535#issuecomment-2185698667, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADVEGK5HQVZV2W56CYZQUNLZI6223AVCNFSM6AAAAABIEEFNGSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOBVGY4TQNRWG4. You are receiving this because you were mentioned.Message ID: @.***>
It seems to be working for me, I made a new connection mechanism client side directly with a websocket and with a local adapter-latest.js, as I think this import doesn't work without access to the internet : line 44 of WebrtcServer.cpp
Can you confirm in the clientside HTML/Javascript that the ICE stun servers are in fact being set to empty? … ____ From: Manh Nguyen @.> Sent: Monday, June 24, 2024 2:18:21 AM To: dusty-nv/jetson-containers @.> Cc: Dustin Franklin @.>; Mention @.> Subject: Re: [dusty-nv/jetson-containers] local_llm: no way to change or disable ICE server for webrtc (Issue #535) For me, it only works when the computer that views Jetson's webpage is connected to the Internet. If we disable the Internet from the laptop that runs the browser and see Jetson's webpage through port 8554, it still doesn't work. Screenshot.2024-06-24.at.13.15.52.png (view on web)https://github.com/dusty-nv/jetson-containers/assets/53960609/a21f44f0-ea48-4201-9883-3037224456f7 — Reply to this email directly, view it on GitHub<#535 (comment)>, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADVEGK5HQVZV2W56CYZQUNLZI6223AVCNFSM6AAAAABIEEFNGSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOBVGY4TQNRWG4. You are receiving this because you were mentioned.Message ID: @.***>
Yes, I can confirm the clientside HTML/Javascript is being set to empty.
What I did to stop Internet from my laptop and keep the LAN connection is change to static IP and empty the router box. It might affect only on my side. On your side, does the WebRTC video work when you disable Internet on the client machine or both Jetson and client?
-- URI: v4l2:///dev/video0
-- URI: webrtc://@:8554/output
No protocol specified [OpenGL] failed to open X11 server connection. [OpenGL] failed to create X11 Window. [gstreamer] opening gstCamera for streaming, transitioning pipeline to GST_STATE_PLAYING [gstreamer] gstreamer changed state from NULL to READY ==> mysink [gstreamer] gstreamer changed state from NULL to READY ==> capsfilter0 [gstreamer] gstreamer changed state from NULL to READY ==> v4l2src0 [gstreamer] gstreamer changed state from NULL to READY ==> pipeline0 [gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter0 [gstreamer] gstreamer stream status CREATE ==> src [gstreamer] gstreamer changed state from READY to PAUSED ==> v4l2src0 [gstreamer] gstreamer changed state from READY to PAUSED ==> pipeline0 [gstreamer] gstreamer message new-clock ==> pipeline0 [gstreamer] gstreamer stream status ENTER ==> src [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter0 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> v4l2src0 [gstreamer] gstreamer message stream-start ==> pipeline0 [gstreamer] gstCamera -- onPreroll [gstreamer] gstBufferManager recieve caps: video/x-raw, format=(string)YUY2, width=(int)1280, height=(int)720, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)2:4:5:1, interlace-mode=(string)progressive [gstreamer] gstBufferManager -- recieved first frame, codec=raw format=yuyv width=1280 height=720 size=1843200 [cuda] allocated 4 ring buffers (1843200 bytes each, 7372800 bytes total) [cuda] allocated 4 ring buffers (8 bytes each, 32 bytes total) [gstreamer] gstreamer changed state from READY to PAUSED ==> mysink [gstreamer] gstreamer message async-done ==> pipeline0 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> mysink [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> pipeline0 [gstreamer] gstreamer message qos ==> v4l2src0 [cuda] allocated 4 ring buffers (2764800 bytes each, 11059200 bytes total) video-viewer: captured 0 frames (1280x720) [cuda] allocated 2 ring buffers (1382400 bytes each, 2764800 bytes total) [gstreamer] gstEncoder -- starting pipeline, transitioning to GST_STATE_PLAYING Opening in BLOCKING MODE [gstreamer] gstreamer changed state from NULL to READY ==> fakesink0 [gstreamer] gstreamer changed state from NULL to READY ==> queue0 [gstreamer] gstreamer changed state from NULL to READY ==> videotee [gstreamer] gstreamer changed state from NULL to READY ==> capsfilter3 [gstreamer] gstreamer changed state from NULL to READY ==> rtph264pay0 [gstreamer] gstreamer changed state from NULL to READY ==> capsfilter2 [gstreamer] gstreamer changed state from NULL to READY ==> encoder [gstreamer] gstreamer changed state from NULL to READY ==> capsfilter1 [gstreamer] gstreamer changed state from NULL to READY ==> vidconv [gstreamer] gstreamer changed state from NULL to READY ==> mysource [gstreamer] gstreamer changed state from NULL to READY ==> pipeline1 [gstreamer] gstreamer stream status CREATE ==> src [gstreamer] gstreamer changed state from READY to PAUSED ==> queue0 [gstreamer] gstreamer changed state from READY to PAUSED ==> videotee [gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter3 [gstreamer] gstreamer changed state from READY to PAUSED ==> rtph264pay0 [gstreamer] gstreamer stream status ENTER ==> src [gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter2 [gstreamer] gstreamer changed state from READY to PAUSED ==> encoder [gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter1 [gstreamer] gstreamer changed state from READY to PAUSED ==> vidconv [gstreamer] gstreamer stream status CREATE ==> src [gstreamer] gstreamer changed state from READY to PAUSED ==> mysource [gstreamer] gstreamer changed state from READY to PAUSED ==> pipeline1 [gstreamer] gstreamer message new-clock ==> pipeline1 [gstreamer] gstreamer stream status ENTER ==> src [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> queue0 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> videotee [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter3 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> rtph264pay0 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter2 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> encoder [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter1 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> vidconv [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> mysource [gstreamer] gstEncoder -- new caps: video/x-raw, width=1280, height=720, format=(string)I420, framerate=30/1 video-viewer: captured 1 frames (1280x720) NvMMLiteOpen : Block : BlockType = 4 ===== NvVideo: NVENC ===== NvMMLiteBlockCreate : Block : BlockType = 4 [gstreamer] gstreamer message stream-start ==> pipeline1 [gstreamer] gstreamer message latency ==> encoder H264: Profile = 66, Level = 0 NVMEDIA: Need to set EMC bandwidth : 376000 NvVideo: bBlitMode is set to TRUE video-viewer: captured 2 frames (1280x720) [gstreamer] gstreamer stream status CREATE ==> src [gstreamer] gstreamer stream status ENTER ==> src video-viewer: captured 3 frames (1280x720) [gstreamer] gstreamer changed state from READY to PAUSED ==> fakesink0 [gstreamer] gstreamer message async-done ==> pipeline1 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> fakesink0 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> pipeline1 video-viewer: captured 4 frames (1280x720) video-viewer: captured 5 frames (1280x720) video-viewer: captured 6 frames (1280x720) video-viewer: captured 7 frames (1280x720) video-viewer: captured 8 frames (1280x720) video-viewer: captured 9 frames (1280x720) video-viewer: captured 10 frames (1280x720) video-viewer: captured 11 frames (1280x720) video-viewer: captured 12 frames (1280x720) video-viewer: captured 13 frames (1280x720) video-viewer: captured 14 frames (1280x720) video-viewer: captured 25 frames (1280x720) video-viewer: captured 50 frames (1280x720) video-viewer: captured 75 frames (1280x720) [webrtc] websocket /output -- new connection opened by 192.168.1.3 (peer_id=0) [webrtc] new WebRTC peer connecting (192.168.1.3, peer_id=0)
(video-viewer:427): GLib-GObject-WARNING **: 13:56:59.411: g_object_set_is_valid_property: object class 'GstWebRTCBin' has no property named 'latency'
(video-viewer:427): GLib-GObject-WARNING **: 13:56:59.412: g_object_set_is_valid_property: object class 'WebRTCTransceiver' has no property named 'direction' [gstreamer] gstreamer changed state from NULL to READY ==> queue-0 [gstreamer] gstreamer stream status CREATE ==> src [gstreamer] gstreamer stream status ENTER ==> src [gstreamer] gstreamer changed state from READY to PAUSED ==> queue-0 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> queue-0 [gstreamer] gstreamer changed state from NULL to READY ==> rtpbin [gstreamer] gstreamer changed state from NULL to READY ==> webrtcbin-0 [gstreamer] gstreamer changed state from READY to PAUSED ==> rtpbin [gstreamer] gstreamer changed state from READY to PAUSED ==> webrtcbin-0 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> rtpbin [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> webrtcbin-0 [webrtc] negotiation offer created: v=0 o=- 5165330002172136569 0 IN IP4 0.0.0.0 s=- t=0 0 a=ice-options:trickle m=video 9 UDP/TLS/RTP/SAVPF 96 c=IN IP4 0.0.0.0 a=setup:actpass a=ice-ufrag:cKpqtlZMAwVNOmJ1U2/QN7bqCRwB33tv a=ice-pwd:wJwTmi7hWwjsEYsmaUMrpD/3fc0QFkfh a=rtcp-mux a=rtcp-rsize a=sendrecv a=rtpmap:96 H264/90000 a=rtcp-fb:96 nack pli a=framerate:30 a=fmtp:96 packetization-mode=1;sprop-parameter-sets=Z0JAH5ZUAoAt01AAAFQAAAMABAAAAwDyPCIRqA==,aM48gA== a=ssrc:429030689 msid:user1092243828@host-59c7f2be webrtctransceiver0 a=ssrc:429030689 cname:user1092243828@host-59c7f2be a=mid:video0 a=fingerprint:sha-256 F8:B7:4A:9E:57:47:26:82:9D:DE:2E:94:74:CA:7C:83:A0:08:AF:22:17:14:89:A3:C9:8C:1A:4B:6B:CB:AA:94
[webrtc] sending offer for /output to 192.168.1.3 (peer_id=0): {"type":"sdp","data":{"type":"offer","sdp":"v=0\r\no=- 5165330002172136569 0 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\na=ice-options:trickle\r\nm=video 9 UDP/TLS/RTP/SAVPF 96\r\nc=IN IP4 0.0.0.0\r\na=setup:actpass\r\na=ice-ufrag:cKpqtlZMAwVNOmJ1U2/QN7bqCRwB33tv\r\na=ice-pwd:wJwTmi7hWwjsEYsmaUMrpD/3fc0QFkfh\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=sendrecv\r\na=rtpmap:96 H264/90000\r\na=rtcp-fb:96 nack pli\r\na=framerate:30\r\na=fmtp:96 packetization-mode=1;sprop-parameter-sets=Z0JAH5ZUAoAt01AAAFQAAAMABAAAAwDyPCIRqA==,aM48gA==\r\na=ssrc:429030689 msid:user1092243828@host-59c7f2be webrtctransceiver0\r\na=ssrc:429030689 cname:user1092243828@host-59c7f2be\r\na=mid:video0\r\na=fingerprint:sha-256 F8:B7:4A:9E:57:47:26:82:9D:DE:2E:94:74:CA:7C:83:A0:08:AF:22:17:14:89:A3:C9:8C:1A:4B:6B:CB:AA:94\r\n"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:2 1 TCP 1015023871 fe80::1 9 typ host tcptype active"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:4 1 UDP 2013266431 fe80::9d20:9a85:984d:7677 38510 typ host"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:5 1 TCP 1015023870 fe80::9d20:9a85:984d:7677 9 typ host tcptype active"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:6 1 TCP 1010829567 fe80::9d20:9a85:984d:7677 45219 typ host tcptype passive"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:7 1 UDP 2013266430 172.17.0.1 35018 typ host"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:8 1 TCP 1015022335 172.17.0.1 9 typ host tcptype active"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:9 1 TCP 1010828031 172.17.0.1 36369 typ host tcptype passive"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:10 1 UDP 2013266429 172.18.0.1 53070 typ host"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:11 1 TCP 1015022591 172.18.0.1 9 typ host tcptype active"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:12 1 TCP 1010828287 172.18.0.1 57727 typ host tcptype passive"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:13 1 UDP 2013266428 192.168.55.1 45369 typ host"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:14 1 TCP 1015022847 192.168.55.1 9 typ host tcptype active"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:15 1 TCP 1010828543 192.168.55.1 59469 typ host tcptype passive"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:16 1 UDP 2013266427 192.168.1.2 43815 typ host"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:17 1 TCP 1015023103 192.168.1.2 9 typ host tcptype active"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:18 1 TCP 1010828799 192.168.1.2 55427 typ host tcptype passive"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:2 2 TCP 1015023870 fe80::1 9 typ host tcptype active"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:4 2 UDP 2013266430 fe80::9d20:9a85:984d:7677 44483 typ host"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:5 2 TCP 1015023869 fe80::9d20:9a85:984d:7677 9 typ host tcptype active"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:6 2 TCP 1010829566 fe80::9d20:9a85:984d:7677 42245 typ host tcptype passive"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:7 2 UDP 2013266429 172.17.0.1 40655 typ host"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:8 2 TCP 1015022334 172.17.0.1 9 typ host tcptype active"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:9 2 TCP 1010828030 172.17.0.1 43297 typ host tcptype passive"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:10 2 UDP 2013266428 172.18.0.1 57644 typ host"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:11 2 TCP 1015022590 172.18.0.1 9 typ host tcptype active"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:12 2 TCP 1010828286 172.18.0.1 55323 typ host tcptype passive"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:13 2 UDP 2013266427 192.168.55.1 59382 typ host"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:14 2 TCP 1015022846 192.168.55.1 9 typ host tcptype active"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:15 2 TCP 1010828542 192.168.55.1 44499 typ host tcptype passive"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:16 2 UDP 2013266426 192.168.1.2 44148 typ host"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:17 2 TCP 1015023102 192.168.1.2 9 typ host tcptype active"}} [webrtc] sending ICE candidate for /output to 192.168.1.3 (peer_id=0): {"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:18 2 TCP 1010828798 192.168.1.2 49517 typ host tcptype passive"}} [gstreamer] gstreamer changed state from NULL to READY ==> rtpssrcdemux0 [gstreamer] gstreamer changed state from READY to PAUSED ==> rtpssrcdemux0 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> rtpssrcdemux0 [gstreamer] gstreamer changed state from NULL to READY ==> rtpsession0 [gstreamer] gstreamer changed state from READY to PAUSED ==> rtpsession0 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> rtpsession0 [gstreamer] gstreamer changed state from NULL to READY ==> rtpstorage0 [gstreamer] gstreamer changed state from READY to PAUSED ==> rtpstorage0 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> rtpstorage0 [gstreamer] gstreamer changed state from NULL to READY ==> nicesink1 [gstreamer] gstreamer changed state from NULL to READY ==> nicesink0 [gstreamer] gstreamer changed state from NULL to READY ==> outputselector0 [gstreamer] gstreamer changed state from NULL to READY ==> transportsendbin0 [gstreamer] gstreamer changed state from READY to PAUSED ==> nicesink1 [gstreamer] gstreamer changed state from READY to PAUSED ==> nicesink0 [gstreamer] gstreamer changed state from READY to PAUSED ==> outputselector0 [gstreamer] gstreamer changed state from READY to PAUSED ==> transportsendbin0 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> nicesink1 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> nicesink0 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> outputselector0 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> transportsendbin0 [gstreamer] gstreamer changed state from NULL to READY ==> nicesrc0 [gstreamer] gstreamer stream status CREATE ==> src [gstreamer] gstreamer changed state from READY to PAUSED ==> nicesrc0 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> nicesrc0 [gstreamer] gstreamer changed state from NULL to READY ==> nicesrc1 [gstreamer] gstreamer stream status CREATE ==> src [gstreamer] gstreamer changed state from READY to PAUSED ==> nicesrc1 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> nicesrc1 [gstreamer] gstreamer changed state from NULL to READY ==> funnel4 [gstreamer] gstreamer changed state from NULL to READY ==> funnel3 [gstreamer] gstreamer changed state from NULL to READY ==> funnel2 [gstreamer] gstreamer stream status ENTER ==> src [gstreamer] gstreamer changed state from NULL to READY ==> srtpdec0 [gstreamer] gstreamer changed state from NULL to READY ==> dtlsdec0 [gstreamer] gstreamer changed state from NULL to READY ==> dtlssrtpdemux0 [gstreamer] gstreamer changed state from NULL to READY ==> dtlssrtpdec0 [gstreamer] gstreamer changed state from NULL to READY ==> srtpdec1 [gstreamer] gstreamer changed state from NULL to READY ==> dtlsdec1 [gstreamer] gstreamer stream status ENTER ==> src [gstreamer] gstreamer changed state from NULL to READY ==> dtlssrtpdemux1 [gstreamer] gstreamer changed state from NULL to READY ==> dtlssrtpdec1 [gstreamer] gstreamer changed state from NULL to READY ==> queue1 [gstreamer] gstreamer changed state from NULL to READY ==> queue2 [gstreamer] gstreamer changed state from NULL to READY ==> capsfilter4 [gstreamer] gstreamer changed state from NULL to READY ==> capsfilter5 [gstreamer] gstreamer changed state from NULL to READY ==> transportreceivebin0 [gstreamer] gstreamer changed state from READY to PAUSED ==> funnel4 [gstreamer] gstreamer changed state from READY to PAUSED ==> funnel3 [gstreamer] gstreamer changed state from READY to PAUSED ==> funnel2 [gstreamer] gstreamer changed state from READY to PAUSED ==> srtpdec0 [gstreamer] gstreamer changed state from READY to PAUSED ==> dtlsdec0 [gstreamer] gstreamer changed state from READY to PAUSED ==> dtlssrtpdemux0 [gstreamer] gstreamer changed state from READY to PAUSED ==> dtlssrtpdec0 [gstreamer] gstreamer changed state from READY to PAUSED ==> srtpdec1 [gstreamer] gstreamer changed state from READY to PAUSED ==> dtlsdec1 [gstreamer] gstreamer changed state from READY to PAUSED ==> dtlssrtpdemux1 [gstreamer] gstreamer changed state from READY to PAUSED ==> dtlssrtpdec1 [gstreamer] gstreamer stream status CREATE ==> src [gstreamer] gstreamer changed state from READY to PAUSED ==> queue1 [gstreamer] gstreamer stream status CREATE ==> src [gstreamer] gstreamer changed state from READY to PAUSED ==> queue2 [gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter4 [gstreamer] gstreamer stream status ENTER ==> src [gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter5 [gstreamer] gstreamer changed state from READY to PAUSED ==> transportreceivebin0 [gstreamer] gstreamer stream status ENTER ==> src [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> funnel4 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> funnel3 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> funnel2 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> srtpdec0 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> dtlsdec0 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> dtlssrtpdemux0 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> dtlssrtpdec0 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> srtpdec1 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> dtlsdec1 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> dtlssrtpdemux1 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> dtlssrtpdec1 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> queue1 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> queue2 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter4 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter5 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> transportreceivebin0 [webrtc] websocket /output -- recieved message from 192.168.1.3 (peer_id=0) (639 bytes) [webrtc] received SDP message for /output from 192.168.1.3 (peer_id=0) v=0 o=- 5229930509654848782 2 IN IP4 127.0.0.1 s=- t=0 0 a=msid-semantic: WMS m=video 9 UDP/TLS/RTP/SAVPF 96 c=IN IP4 0.0.0.0 a=rtcp:9 IN IP4 0.0.0.0 a=ice-ufrag:YlRT a=ice-pwd:Sojju+H7eB3uz2eEkUC7k3KV a=ice-options:trickle a=fingerprint:sha-256 83:F5:70:B0:84:8C:23:97:8E:68:AF:69:31:88:F1:87:7A:82:BC:CE:C5:78:29:2C:12:1F:2E:BA:47:FC:C2:6D a=setup:active a=mid:video0 a=recvonly a=rtcp-mux a=rtcp-rsize a=rtpmap:96 H264/90000 a=rtcp-fb:96 nack pli a=fmtp:96 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
(video-viewer:427): GLib-CRITICAL **: 13:56:59.529: g_atomic_ref_count_dec: assertion 'g_atomic_int_get (arc) > 0' failed [gstreamer] gstreamer changed state from NULL to READY ==> funnel0 [gstreamer] gstreamer changed state from NULL to READY ==> dtlsenc0 [gstreamer] gstreamer changed state from NULL to READY ==> srtpenc0 [gstreamer] gstreamer changed state from NULL to READY ==> dtlssrtpenc0 [gstreamer] gstreamer changed state from READY to PAUSED ==> funnel0 [gstreamer] gstreamer stream status CREATE ==> src [gstreamer] gstreamer stream status ENTER ==> src [gstreamer] gstreamer changed state from READY to PAUSED ==> dtlsenc0 [gstreamer] gstreamer changed state from READY to PAUSED ==> srtpenc0 [gstreamer] gstreamer changed state from READY to PAUSED ==> dtlssrtpenc0 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> funnel0 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> dtlsenc0 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> srtpenc0 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> dtlssrtpenc0 [gstreamer] gstreamer changed state from NULL to READY ==> funnel1 [gstreamer] gstreamer changed state from NULL to READY ==> dtlsenc1 [gstreamer] gstreamer changed state from NULL to READY ==> srtpenc1 [gstreamer] gstreamer changed state from NULL to READY ==> dtlssrtpenc1 [gstreamer] gstreamer changed state from READY to PAUSED ==> funnel1 [gstreamer] gstreamer stream status CREATE ==> src [gstreamer] gstreamer stream status ENTER ==> src [gstreamer] gstreamer changed state from READY to PAUSED ==> dtlsenc1 [gstreamer] gstreamer changed state from READY to PAUSED ==> srtpenc1 [gstreamer] gstreamer changed state from READY to PAUSED ==> dtlssrtpenc1 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> funnel1 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> dtlsenc1 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> srtpenc1 [gstreamer] gstreamer changed state from PAUSED to PLAYING ==> dtlssrtpenc1 video-viewer: captured 100 frames (1280x720) video-viewer: captured 125 frames (1280x720) video-viewer: captured 150 frames (1280x720) video-viewer: captured 175 frames (1280x720) video-viewer: captured 200 frames (1280x720) video-viewer: captured 225 frames (1280x720) video-viewer: captured 250 frames (1280x720) video-viewer: captured 275 frames (1280x720)
I'd like to run live llava completely locally on Jetson including a web browser. However, if I turn off wifi before starting live llava, the video won't play on the browser. If I turn off wifi after starting it, the video continues to play. I'm guessing this is because the default ICE server is set to google's STUN server. I tried to find a way to change or disable it but it seems there's no way to change it using option flags right now. I'm willing to create a PR for this, but not sure what's the cleanest way to set it.