Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kubernetes Host Network and mDNS (.local) Resolution Issues on Jetson AGX Orin #1926

Open
Birkenpapier opened this issue Jan 20, 2025 · 1 comment

Comments

@Birkenpapier
Copy link

Birkenpapier commented Jan 20, 2025

Setup Details:

Device: NVIDIA Jetson AGX Orin
Base Docker Image Used: dustynv/jetson-inference:r36.2.0

Complete Dockerfile:

FROM --platform=linux/arm64 dustynv/jetson-inference:r36.2.0

RUN apt-get update && \
    apt-get install --assume-yes --no-install-recommends --quiet software-properties-common nginx

RUN add-apt-repository universe && \
    apt-get update && \
    apt-get install --assume-yes --no-install-recommends --quiet python3 python3-pip v4l-utils avahi-daemon avahi-utils && \
    apt-get clean all

WORKDIR /app

COPY requirements.txt .
RUN pip3 install -r requirements.txt

ADD ./ .

COPY nginx.conf /etc/nginx/nginx.conf

ENV CONFIG_PATH=/app/config.rnd.docker.json

# CMD service nginx start && python3 -u ./controller_module.py
CMD python3 -u ./controller_module.py

Kubernetes Setup:

  • Cluster: K3s, Managed with Azure Arc.
    Deployment Methods:
  • Standalone Docker (docker run) works as expected with the following command:
    clear && xhost +local:root && sudo docker build -t fastapi-jetson:latest . && sudo docker run --privileged -it --rm --net=host --runtime nvidia -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix fastapi-jetson:latest
  • Kubernetes runtime execution fails with host network and .local resolution issues as seen here:
onyx@accel-js1000:~/Desktop/rnd/StreamerBox/jetson_initialization$ kubectl logs fastapi-jetson-deployment-5cb5ffb4f6-v69qk
INFO:     Started server process [7]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
INFO:     192.168.0.178:57081 - "GET /get_devices HTTP/1.1" 200 OK
INFO:     192.168.0.178:57084 - "GET /get_devices HTTP/1.1" 200 OK
INFO:     192.168.0.178:57084 - "GET /get_devices HTTP/1.1" 200 OK
INFO:     192.168.0.178:57084 - "GET /get_devices HTTP/1.1" 200 OK
INFO:     192.168.0.178:57084 - "GET /get_devices HTTP/1.1" 200 OK
request.device_name /dev/video1
INFO:     127.0.0.1:49382 - "POST /start_stream HTTP/1.1" 200 OK
nvbufsurftransform: Could not get EGL display connection
EGL failed to initialize!  Exiting...
(Argus) Error FileOperationFailed: Connecting to nvargus-daemon failed: No such file or directory (in src/rpc/socket/client/SocketClientDispatch.cpp, function openSocketConnection(), line 204)
(Argus) Error FileOperationFailed: Cannot create camera provider (in src/rpc/socket/client/SocketClientDispatch.cpp, function createCameraProvider(), line 106)

(gst-plugin-scanner:91): GStreamer-WARNING **: 16:10:40.295: adding type GstEvent multiple times
sh: 1: lsmod: not found
sh: 1: modprobe: not found
[gstreamer] initialized gstreamer, version 1.20.3.0
[gstreamer] gstEncoder -- detected board 'NVIDIA Jetson AGX Orin Developer Kit'
[gstreamer] gstEncoder -- pipeline launch string:
[gstreamer] appsrc name=mysource is-live=true do-timestamp=true format=3 ! nvvidconv name=vidconv ! video/x-raw(memory:NVMM) ! nvv4l2h264enc name=encoder bitrate=4000000 insert-sps-pps=1 insert-vui=1 idrinterval=30 maxperf-enable=1 ! video/x-h264 ! rtph264pay config-interval=1 ! application/x-rtp,media=video,encoding-name=H264,clock-rate=90000,payload=96 ! tee name=videotee ! queue ! fakesink
nvbufsurftransform: Could not get EGL display connection
sh: 1: lsmod: not found
sh: 1: modprobe: not found
[webrtc] WebRTC server started @ http://accel-js1000:8500
[webrtc] WebRTC server thread running...
[webrtc] websocket route added /output
[video]  created gstEncoder from webrtc://@:8500/output
------------------------------------------------
gstEncoder video options:
------------------------------------------------
  -- URI: webrtc://@:8500/output
     - protocol:  webrtc
     - location:  0.0.0.0
     - port:      8500
  -- deviceType: ip
  -- ioType:     output
  -- codec:      H264
  -- codecType:  v4l2
  -- frameRate:  30
  -- bitRate:    4000000
  -- numBuffers: 4
  -- zeroCopy:   true
  -- latency     10
------------------------------------------------
[OpenGL] failed to open X11 server connection.
[OpenGL] failed to create X11 Window.
2025-01-20 16:10:40,564 - __main__ - INFO - Video output initialized with URI: webrtc://@:8500/output

(python3:66): GStreamer-CRITICAL **: 16:10:40.572: 
Trying to dispose element pipeline1, but it is in READY instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.

[ WARN:[email protected]] global cap_gstreamer.cpp:1679 open OpenCV | GStreamer warning: unable to start pipeline

(python3:66): GStreamer-CRITICAL **: 16:10:40.572: 
Trying to dispose element videoconvert0, but it is in PAUSED instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.

[ WARN:[email protected]] global cap_gstreamer.cpp:1164 isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created

(python3:66): GStreamer-CRITICAL **: 16:10:40.572: 
Trying to dispose element appsink0, but it is in READY instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.


(python3:66): GStreamer-WARNING **: 16:10:40.572: (../gst/gstinfo.c:556):gst_debug_log_valist: runtime check failed: (object == NULL || G_IS_OBJECT (object))

(python3:66): GStreamer-CRITICAL **: 16:10:40.572: gst_element_post_message: assertion 'GST_IS_ELEMENT (element)' failed
2025-01-20 16:10:40,632 - __main__ - WARNING - Requested FPS 60 not supported. Using 30 instead.
2025-01-20 16:10:40,633 - __main__ - INFO - Video capture initialized with input: /dev/video1
2025-01-20 16:10:40,798 - __main__ - INFO - Thumbnail saved to /app/thumbnails/_dev_video1.jpg
[cuda]   allocated 2 ring buffers (3110400 bytes each, 6220800 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 ==> capsfilter2
[gstreamer] gstreamer changed state from NULL to READY ==> rtph264pay0
[gstreamer] gstreamer changed state from NULL to READY ==> capsfilter1
[gstreamer] gstreamer changed state from NULL to READY ==> encoder
[gstreamer] gstreamer changed state from NULL to READY ==> capsfilter0
[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 ==> pipeline0
[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 ==> capsfilter2
[gstreamer] gstreamer changed state from READY to PAUSED ==> rtph264pay0
[gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter1
[gstreamer] gstreamer changed state from READY to PAUSED ==> encoder
[gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter0
[gstreamer] gstreamer changed state from READY to PAUSED ==> vidconv
[gstreamer] gstreamer stream status ENTER ==> src
[gstreamer] gstreamer stream status CREATE ==> src
[gstreamer] gstreamer changed state from READY to PAUSED ==> mysource
[gstreamer] gstreamer changed state from READY to PAUSED ==> pipeline0
[gstreamer] gstreamer message new-clock ==> pipeline0
[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 ==> capsfilter2
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> rtph264pay0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter1
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> encoder
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> vidconv
[gstreamer] gstreamer stream status ENTER ==> src
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> mysource
[gstreamer] gstEncoder -- new caps: video/x-raw, width=1920, height=1080, format=(string)I420, framerate=30/1
[gstreamer] gstreamer message stream-start ==> pipeline0
[gstreamer] gstreamer message latency ==> encoder
NvMMLiteOpen : Block : BlockType = 4 
===== NvVideo: NVENC =====
NvMMLiteBlockCreate : Block : BlockType = 4 
H264: extProfile = 2 Level = 0 
NVMEDIA: Need to set EMC bandwidth : 846000 
NvVideo: bBlitMode is set to TRUE 
[gstreamer] gstreamer stream status CREATE ==> src
[gstreamer] gstreamer stream status ENTER ==> src
[gstreamer] gstreamer changed state from READY to PAUSED ==> fakesink0
[gstreamer] gstreamer message async-done ==> pipeline0
[gstreamer] gstreamer message latency ==> fakesink0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> fakesink0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> pipeline0
INFO:     192.168.0.178:57084 - "GET /get_devices HTTP/1.1" 200 OK
[webrtc] HTTP 127.0.0.1 GET '/'
[webrtc] /
[webrtc] websocket /output -- new connection opened by 127.0.0.1 (peer_id=0)
[webrtc] new WebRTC peer connecting (127.0.0.1, peer_id=0)
[webrtc] HTTP 127.0.0.1 GET '/favicon.ico'
[webrtc] /favicon.ico
[gstreamer] gstreamer changed state from NULL to READY ==> queue-0
[gstreamer] gstreamer stream status CREATE ==> src
[gstreamer] gstreamer changed state from READY to PAUSED ==> queue-0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> queue-0
[gstreamer] gstreamer stream status ENTER ==> src
[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=- 1406655535341963596 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:CgnkaJ1n9rvmypmbtssMMtJYj5sVuBaw
a=ice-pwd:Lw3VSJTcqNjUQL1Fj7g2kEMzu7hzLFo0
a=rtcp-mux
a=rtcp-rsize
a=sendonly
a=rtpmap:96 H264/90000
a=rtcp-fb:96 nack pli
a=rtcp-fb:96 transport-cc
a=framerate:30
a=fmtp:96 packetization-mode=1;sprop-parameter-sets=Z0JAKJZUA8ARPyzUAAAVAAADAAEAAAMAPI8IhGo=,aM48gA==
a=ssrc:1898093927 msid:user27924364@host-1e234416 webrtctransceiver0
a=ssrc:1898093927 cname:user27924364@host-1e234416
a=mid:video0
a=fingerprint:sha-256 B8:C6:F1:45:95:0A:F9:E7:EF:11:93:AF:DA:51:F2:CE:31:0D:0D:EF:07:74:AD:4C:4F:38:EF:E2:EA:26:DD:BF
a=rtcp-mux-only

[webrtc] sending offer for /output to 127.0.0.1 (peer_id=0): 
{"type":"sdp","data":{"type":"offer","sdp":"v=0\r\no=- 1406655535341963596 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:CgnkaJ1n9rvmypmbtssMMtJYj5sVuBaw\r\na=ice-pwd:Lw3VSJTcqNjUQL1Fj7g2kEMzu7hzLFo0\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=sendonly\r\na=rtpmap:96 H264/90000\r\na=rtcp-fb:96 nack pli\r\na=rtcp-fb:96 transport-cc\r\na=framerate:30\r\na=fmtp:96 packetization-mode=1;sprop-parameter-sets=Z0JAKJZUA8ARPyzUAAAVAAADAAEAAAMAPI8IhGo=,aM48gA==\r\na=ssrc:1898093927 msid:user27924364@host-1e234416 webrtctransceiver0\r\na=ssrc:1898093927 cname:user27924364@host-1e234416\r\na=mid:video0\r\na=fingerprint:sha-256 B8:C6:F1:45:95:0A:F9:E7:EF:11:93:AF:DA:51:F2:CE:31:0D:0D:EF:07:74:AD:4C:4F:38:EF:E2:EA:26:DD:BF\r\na=rtcp-mux-only\r\n"}}
[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 ==> nicesink0
[gstreamer] gstreamer changed state from NULL to READY ==> transportsendbin0
[gstreamer] gstreamer message latency ==> nicesink0
[gstreamer] gstreamer changed state from READY to PAUSED ==> nicesink0
[gstreamer] gstreamer changed state from READY to PAUSED ==> transportsendbin0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> nicesink0
[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 ==> 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 ==> queue1
[gstreamer] gstreamer stream status ENTER ==> src
[gstreamer] gstreamer changed state from NULL to READY ==> capsfilter3
[gstreamer] gstreamer changed state from NULL to READY ==> transportreceivebin0
[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 stream status CREATE ==> src
[gstreamer] gstreamer changed state from READY to PAUSED ==> queue1
[gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter3
[gstreamer] gstreamer changed state from READY to PAUSED ==> transportreceivebin0
[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 ==> queue1
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter3
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> transportreceivebin0
[gstreamer] gstreamer stream status ENTER ==> src
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:1 1 UDP 2015363327 192.168.0.179 37117 typ host"}}
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:2 1 TCP 1015021823 192.168.0.179 9 typ host tcptype active"}}
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:3 1 TCP 1010827519 192.168.0.179 36739 typ host tcptype passive"}}
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:4 1 UDP 2015363583 10.42.0.0 58983 typ host"}}
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:5 1 TCP 1015022079 10.42.0.0 9 typ host tcptype active"}}
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:6 1 TCP 1010827775 10.42.0.0 49085 typ host tcptype passive"}}
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:7 1 UDP 2015363839 10.42.0.1 56492 typ host"}}
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:8 1 TCP 1015022335 10.42.0.1 9 typ host tcptype active"}}
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:9 1 TCP 1010828031 10.42.0.1 44945 typ host tcptype passive"}}
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:10 1 UDP 2015364095 fe80::36c4:b443:c77d:553b 56076 typ host"}}
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:11 1 TCP 1015022591 fe80::36c4:b443:c77d:553b 9 typ host tcptype active"}}
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:12 1 TCP 1010828287 fe80::36c4:b443:c77d:553b 39515 typ host tcptype passive"}}
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:13 1 UDP 2015364351 fe80::14e7:99ff:fe4e:b5d2 43638 typ host"}}
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:14 1 TCP 1015022847 fe80::14e7:99ff:fe4e:b5d2 9 typ host tcptype active"}}
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:15 1 TCP 1010828543 fe80::14e7:99ff:fe4e:b5d2 39469 typ host tcptype passive"}}
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:16 1 UDP 2015364607 fe80::b42d:99ff:fe57:13a8 52199 typ host"}}
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:17 1 TCP 1015023103 fe80::b42d:99ff:fe57:13a8 9 typ host tcptype active"}}
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:18 1 TCP 1010828799 fe80::b42d:99ff:fe57:13a8 34009 typ host tcptype passive"}}
[webrtc] websocket /output -- recieved message from 127.0.0.1 (peer_id=0) (668 bytes)

(python3:66): GLib-CRITICAL **: 16:10:46.004: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
[webrtc] received SDP message for /output from 127.0.0.1 (peer_id=0)
v=0
o=- 2249352144363214270 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:A0Ec
a=ice-pwd:EFCptjDtEqGVtsDn1wFHiEQ4
a=ice-options:trickle
a=fingerprint:sha-256 C9:B5:D9:61:28:D2:72:A6:6B:3B:3B:B5:67:BB:B3:9F:D9:B9:EB:70:79:91:29:51:01:B6:FC:59:94:40:36:C8
a=setup:active
a=mid:video0
a=recvonly
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 H264/90000
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 nack pli
a=fmtp:96 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f

[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:19 1 UDP 1679819007 95.91.230.205 6215 typ srflx raddr 192.168.0.179 rport 37117"}}
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:20 1 TCP 847249663 95.91.230.205 9 typ srflx raddr 192.168.0.179 rport 9 tcptype active"}}
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:21 1 TCP 843055359 95.91.230.205 36739 typ srflx raddr 192.168.0.179 rport 36739 tcptype passive"}}
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:22 1 UDP 1679819263 95.91.230.205 6227 typ srflx raddr 10.42.0.0 rport 58983"}}
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:23 1 TCP 847249919 95.91.230.205 9 typ srflx raddr 10.42.0.0 rport 9 tcptype active"}}
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:24 1 TCP 843055615 95.91.230.205 49085 typ srflx raddr 10.42.0.0 rport 49085 tcptype passive"}}
[webrtc] websocket /output -- recieved message from 127.0.0.1 (peer_id=0) (236 bytes)
[webrtc] received ICE message on /output from 127.0.0.1 (peer_id=0) with mline index 0; candidate: 
candidate:3256164195 1 udp 2113937151 b20b1fa0-1666-4d27-93e9-219dde03d249.local 55203 typ host generation 0 ufrag A0Ec network-cost 999
[gstreamer] gstreamer changed state from NULL to READY ==> clocksync0
[gstreamer] gstreamer changed state from READY to PAUSED ==> clocksync0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> clocksync0
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:25 1 UDP 1679819519 95.91.230.205 6298 typ srflx raddr 10.42.0.1 rport 56492"}}
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:26 1 TCP 847250175 95.91.230.205 9 typ srflx raddr 10.42.0.1 rport 9 tcptype active"}}
[webrtc] sending ICE candidate for /output to 127.0.0.1 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:27 1 TCP 843055871 95.91.230.205 44945 typ srflx raddr 10.42.0.1 rport 44945 tcptype passive"}}
[network] getHostByName() trying to resolve host 'b20b1fa0-1666-4d27-93e9-219dde03d249.local' (retry 1 of 10)
[network] getHostByName() trying to resolve host 'b20b1fa0-1666-4d27-93e9-219dde03d249.local' (retry 2 of 10)
[network] getHostByName() trying to resolve host 'b20b1fa0-1666-4d27-93e9-219dde03d249.local' (retry 3 of 10)
[network] getHostByName() trying to resolve host 'b20b1fa0-1666-4d27-93e9-219dde03d249.local' (retry 4 of 10)
[network] getHostByName() trying to resolve host 'b20b1fa0-1666-4d27-93e9-219dde03d249.local' (retry 5 of 10)
[network] getHostByName() trying to resolve host 'b20b1fa0-1666-4d27-93e9-219dde03d249.local' (retry 6 of 10)
[network] getHostByName() trying to resolve host 'b20b1fa0-1666-4d27-93e9-219dde03d249.local' (retry 7 of 10)
[network] getHostByName() trying to resolve host 'b20b1fa0-1666-4d27-93e9-219dde03d249.local' (retry 8 of 10)
[network] getHostByName() trying to resolve host 'b20b1fa0-1666-4d27-93e9-219dde03d249.local' (retry 9 of 10)
[network] getHostByName() trying to resolve host 'b20b1fa0-1666-4d27-93e9-219dde03d249.local' (retry 10 of 10)
[network] getHostByName() unable to resolve host 'b20b1fa0-1666-4d27-93e9-219dde03d249.local'
[webrtc] couldn't resolve b20b1fa0-1666-4d27-93e9-219dde03d249.local from SDP candidate string

(python3:66): GLib-CRITICAL **: 16:10:46.106: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
INFO:     192.168.0.178:57084 - "GET /get_devices HTTP/1.1" 200 OK

Same logs for standalone docker runtime:

onyx@accel-js1000:~/Desktop/rnd/StreamerBox/jetson_initialization$ sudo docker run --privileged -it --rm --net=host --runtime nvidia -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix fastapi-jetson:latest
INFO:     Started server process [19]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
INFO:     192.168.0.178:57481 - "GET /get_devices HTTP/1.1" 200 OK
INFO:     192.168.0.178:57481 - "GET /get_running_servers HTTP/1.1" 200 OK
request.device_name /dev/video1
INFO:     192.168.0.178:57484 - "POST /start_stream HTTP/1.1" 200 OK
INFO:     192.168.0.178:57481 - "GET /get_devices HTTP/1.1" 200 OK

(gst-plugin-scanner:65): GLib-GObject-WARNING **: 16:20:03.380: cannot register existing type 'GstRtpSrc'

(gst-plugin-scanner:65): GLib-GObject-CRITICAL **: 16:20:03.380: g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed

(gst-plugin-scanner:65): GLib-CRITICAL **: 16:20:03.380: g_once_init_leave: assertion 'result != 0' failed

(gst-plugin-scanner:65): GStreamer-CRITICAL **: 16:20:03.380: gst_element_register: assertion 'g_type_is_a (type, GST_TYPE_ELEMENT)' failed

(gst-plugin-scanner:65): GLib-GObject-WARNING **: 16:20:03.380: cannot register existing type 'GstRtpSink'

(gst-plugin-scanner:65): GLib-GObject-CRITICAL **: 16:20:03.380: g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed

(gst-plugin-scanner:65): GLib-CRITICAL **: 16:20:03.380: g_once_init_leave: assertion 'result != 0' failed

(gst-plugin-scanner:65): GStreamer-CRITICAL **: 16:20:03.380: gst_element_register: assertion 'g_type_is_a (type, GST_TYPE_ELEMENT)' failed

(gst-plugin-scanner:65): GStreamer-WARNING **: 16:20:03.449: adding type GstEvent multiple times
(Argus) Error FileOperationFailed: Connecting to nvargus-daemon failed: No such file or directory (in src/rpc/socket/client/SocketClientDispatch.cpp, function openSocketConnection(), line 204)
(Argus) Error FileOperationFailed: Cannot create camera provider (in src/rpc/socket/client/SocketClientDispatch.cpp, function createCameraProvider(), line 106)
sh: 1: lsmod: not found
sh: 1: modprobe: not found
[gstreamer] initialized gstreamer, version 1.20.3.0
[gstreamer] gstEncoder -- detected board 'NVIDIA Jetson AGX Orin Developer Kit'
[gstreamer] gstEncoder -- pipeline launch string:
[gstreamer] appsrc name=mysource is-live=true do-timestamp=true format=3 ! nvvidconv name=vidconv ! video/x-raw(memory:NVMM) ! nvv4l2h264enc name=encoder bitrate=4000000 insert-sps-pps=1 insert-vui=1 idrinterval=30 maxperf-enable=1 ! video/x-h264 ! rtph264pay config-interval=1 ! application/x-rtp,media=video,encoding-name=H264,clock-rate=90000,payload=96 ! tee name=videotee ! queue ! fakesink
sh: 1: lsmod: not found
sh: 1: modprobe: not found
[webrtc] WebRTC server started @ http://accel-js1000:8501
[webrtc] WebRTC server thread running...
[webrtc] websocket route added /output
[video]  created gstEncoder from webrtc://@:8501/output
------------------------------------------------
gstEncoder video options:
------------------------------------------------
  -- URI: webrtc://@:8501/output
     - protocol:  webrtc
     - location:  0.0.0.0
     - port:      8501
  -- deviceType: ip
  -- ioType:     output
  -- codec:      H264
  -- codecType:  v4l2
  -- frameRate:  30
  -- bitRate:    4000000
  -- numBuffers: 4
  -- zeroCopy:   true
  -- latency     10
------------------------------------------------
[OpenGL] glDisplay -- X screen 0 resolution:  2560x1440
[OpenGL] glDisplay -- X window resolution:    2560x1440
[OpenGL] glDisplay -- display device initialized (2560x1440)
[video]  created glDisplay from display://0
------------------------------------------------
glDisplay video options:
------------------------------------------------
  -- URI: display://0
     - protocol:  display
     - location:  0
  -- deviceType: display
  -- ioType:     output
  -- width:      2560
  -- height:     1440
  -- frameRate:  0
  -- numBuffers: 4
  -- zeroCopy:   true
------------------------------------------------
2025-01-20 16:20:03,926 - __main__ - INFO - Video output initialized with URI: webrtc://@:8501/output
[ WARN:[email protected]] global cap_gstreamer.cpp:2784 handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module source reported: Could not read from resource.
[ WARN:[email protected]] global cap_gstreamer.cpp:1679 open OpenCV | GStreamer warning: unable to start pipeline
[ WARN:[email protected]] global cap_gstreamer.cpp:1164 isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
2025-01-20 16:20:03,997 - __main__ - WARNING - Requested FPS 60 not supported. Using 30 instead.
2025-01-20 16:20:03,998 - __main__ - INFO - Video capture initialized with input: /dev/video1
2025-01-20 16:20:04,180 - __main__ - INFO - Thumbnail saved to /app/thumbnails/_dev_video1.jpg
[OpenGL] glDisplay -- set the window size to 1920x1080
[OpenGL] creating 1920x1080 texture (GL_RGB32F format, 24883200 bytes)
[cuda]   registered openGL texture for interop access (1920x1080, GL_RGB32F, 24883200 bytes)
[cuda]   allocated 2 ring buffers (3110400 bytes each, 6220800 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 ==> capsfilter2
[gstreamer] gstreamer changed state from NULL to READY ==> rtph264pay0
[gstreamer] gstreamer changed state from NULL to READY ==> capsfilter1
[gstreamer] gstreamer changed state from NULL to READY ==> encoder
[gstreamer] gstreamer changed state from NULL to READY ==> capsfilter0
[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 ==> pipeline0
[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 ==> capsfilter2
[gstreamer] gstreamer stream status ENTER ==> src
[gstreamer] gstreamer changed state from READY to PAUSED ==> rtph264pay0
[gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter1
[gstreamer] gstreamer changed state from READY to PAUSED ==> encoder
[gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter0
[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 ==> pipeline0
[gstreamer] gstreamer message new-clock ==> pipeline0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> queue0
[gstreamer] gstreamer stream status ENTER ==> src
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> videotee
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter2
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> rtph264pay0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter1
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> encoder
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter0
[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=1920, height=1080, format=(string)I420, framerate=30/1
[gstreamer] gstreamer message stream-start ==> pipeline0
NvMMLiteOpen : Block : BlockType = 4 
===== NvVideo: NVENC =====
NvMMLiteBlockCreate : Block : BlockType = 4 
H264: extProfile = 2 Level = 0 
NVMEDIA: Need to set EMC bandwidth : 846000 
NvVideo: bBlitMode is set to TRUE 
[gstreamer] gstreamer message latency ==> encoder
[gstreamer] gstreamer stream status CREATE ==> src
[gstreamer] gstreamer stream status ENTER ==> src
[gstreamer] gstreamer changed state from READY to PAUSED ==> fakesink0
[gstreamer] gstreamer message async-done ==> pipeline0
[gstreamer] gstreamer message latency ==> fakesink0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> fakesink0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> pipeline0
[webrtc] websocket /output -- new connection opened by 192.168.0.178 (peer_id=0)
[webrtc] new WebRTC peer connecting (192.168.0.178, peer_id=0)
[gstreamer] gstreamer changed state from NULL to READY ==> queue-0
[gstreamer] gstreamer stream status CREATE ==> src
[gstreamer] gstreamer changed state from READY to PAUSED ==> queue-0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> queue-0
[gstreamer] gstreamer stream status ENTER ==> src
[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=- 3990476361883354142 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:PYMXlmtkTqNJAlwGKeVfSP6+PR+3Ibdp
a=ice-pwd:bLFKYSR+JxK3IQfNzoVtnI+Q6xPT0/OA
a=rtcp-mux
a=rtcp-rsize
a=sendonly
a=rtpmap:96 H264/90000
a=rtcp-fb:96 nack pli
a=rtcp-fb:96 transport-cc
a=framerate:30
a=fmtp:96 packetization-mode=1;sprop-parameter-sets=Z0JAKJZUA8ARPyzUAAAVAAADAAEAAAMAPI8IhGo=,aM48gA==
a=ssrc:3254771096 msid:user2606271389@host-7693e2b3 webrtctransceiver0
a=ssrc:3254771096 cname:user2606271389@host-7693e2b3
a=mid:video0
a=fingerprint:sha-256 29:B1:35:BB:1E:B0:44:11:6C:19:79:71:A3:9F:20:CD:E9:E6:77:18:57:16:9F:08:FF:2F:BA:86:81:53:5F:C6
a=rtcp-mux-only

[webrtc] sending offer for /output to 192.168.0.178 (peer_id=0): 
{"type":"sdp","data":{"type":"offer","sdp":"v=0\r\no=- 3990476361883354142 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:PYMXlmtkTqNJAlwGKeVfSP6+PR+3Ibdp\r\na=ice-pwd:bLFKYSR+JxK3IQfNzoVtnI+Q6xPT0/OA\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=sendonly\r\na=rtpmap:96 H264/90000\r\na=rtcp-fb:96 nack pli\r\na=rtcp-fb:96 transport-cc\r\na=framerate:30\r\na=fmtp:96 packetization-mode=1;sprop-parameter-sets=Z0JAKJZUA8ARPyzUAAAVAAADAAEAAAMAPI8IhGo=,aM48gA==\r\na=ssrc:3254771096 msid:user2606271389@host-7693e2b3 webrtctransceiver0\r\na=ssrc:3254771096 cname:user2606271389@host-7693e2b3\r\na=mid:video0\r\na=fingerprint:sha-256 29:B1:35:BB:1E:B0:44:11:6C:19:79:71:A3:9F:20:CD:E9:E6:77:18:57:16:9F:08:FF:2F:BA:86:81:53:5F:C6\r\na=rtcp-mux-only\r\n"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:1 1 UDP 2015363327 192.168.0.179 42195 typ host"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:2 1 TCP 1015021823 192.168.0.179 9 typ host tcptype active"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:3 1 TCP 1010827519 192.168.0.179 35895 typ host tcptype passive"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:4 1 UDP 2015363583 10.42.0.0 47581 typ host"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:5 1 TCP 1015022079 10.42.0.0 9 typ host tcptype active"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:6 1 TCP 1010827775 10.42.0.0 40607 typ host tcptype passive"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:7 1 UDP 2015363839 10.42.0.1 46797 typ host"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:8 1 TCP 1015022335 10.42.0.1 9 typ host tcptype active"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:9 1 TCP 1010828031 10.42.0.1 56221 typ host tcptype passive"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:10 1 UDP 2015364095 fe80::36c4:b443:c77d:553b 45676 typ host"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:11 1 TCP 1015022591 fe80::36c4:b443:c77d:553b 9 typ host tcptype active"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:12 1 TCP 1010828287 fe80::36c4:b443:c77d:553b 55911 typ host tcptype passive"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:13 1 UDP 2015364351 fe80::14e7:99ff:fe4e:b5d2 38488 typ host"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:14 1 TCP 1015022847 fe80::14e7:99ff:fe4e:b5d2 9 typ host tcptype active"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:15 1 TCP 1010828543 fe80::14e7:99ff:fe4e:b5d2 41147 typ host tcptype passive"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:16 1 UDP 2015364607 fe80::b42d:99ff:fe57:13a8 53255 typ host"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:17 1 TCP 1015023103 fe80::b42d:99ff:fe57:13a8 9 typ host tcptype active"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:18 1 TCP 1010828799 fe80::b42d:99ff:fe57:13a8 50357 typ host tcptype passive"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:19 1 UDP 1679819007 95.91.230.205 6285 typ srflx raddr 192.168.0.179 rport 42195"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:20 1 TCP 847249663 95.91.230.205 9 typ srflx raddr 192.168.0.179 rport 9 tcptype active"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:21 1 TCP 843055359 95.91.230.205 35895 typ srflx raddr 192.168.0.179 rport 35895 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 ==> nicesink0
[gstreamer] gstreamer changed state from NULL to READY ==> transportsendbin0
[gstreamer] gstreamer message latency ==> nicesink0
[gstreamer] gstreamer changed state from READY to PAUSED ==> nicesink0
[gstreamer] gstreamer changed state from READY to PAUSED ==> transportsendbin0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> nicesink0
[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 ==> srtpdec0
[gstreamer] gstreamer changed state from NULL to READY ==> dtlsdec0
[gstreamer] gstreamer stream status ENTER ==> src
[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 ==> queue1
[gstreamer] gstreamer changed state from NULL to READY ==> capsfilter3
[gstreamer] gstreamer changed state from NULL to READY ==> transportreceivebin0
[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 stream status CREATE ==> src
[gstreamer] gstreamer changed state from READY to PAUSED ==> queue1
[gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter3
[gstreamer] gstreamer changed state from READY to PAUSED ==> transportreceivebin0
[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 ==> queue1
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter3
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> transportreceivebin0
[gstreamer] gstreamer stream status ENTER ==> src
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:22 1 UDP 1679819263 95.91.230.205 6190 typ srflx raddr 10.42.0.0 rport 47581"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:23 1 TCP 847249919 95.91.230.205 9 typ srflx raddr 10.42.0.0 rport 9 tcptype active"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:24 1 TCP 843055615 95.91.230.205 40607 typ srflx raddr 10.42.0.0 rport 40607 tcptype passive"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:25 1 UDP 1679819519 95.91.230.205 6192 typ srflx raddr 10.42.0.1 rport 46797"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:26 1 TCP 847250175 95.91.230.205 9 typ srflx raddr 10.42.0.1 rport 9 tcptype active"}}
[webrtc] sending ICE candidate for /output to 192.168.0.178 (peer_id=0): 
{"type":"ice","data":{"sdpMLineIndex":0,"candidate":"candidate:27 1 TCP 843055871 95.91.230.205 56221 typ srflx raddr 10.42.0.1 rport 56221 tcptype passive"}}
[webrtc] websocket /output -- recieved message from 192.168.0.178 (peer_id=0) (721 bytes)
[webrtc] received SDP message for /output from 192.168.0.178 (peer_id=0)
v=0
o=- 6231169706234647458 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:0eoz
a=ice-pwd:s6hRj/RofxrzQJ2DL6Ux21JH
a=ice-options:trickle
a=fingerprint:sha-256 24:26:6F:D7:27:4A:8D:A1:46:07:FF:46:E0:E1:D9:82:75:AE:40:53:63:8A:1F:EF:64:B7:9A:D2:9B:30:AB:47
a=setup:active
a=mid:0
a=recvonly
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 H264/90000
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 nack pli
a=fmtp:96 implementation_name=NvCodec;level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f


(python3:35): GLib-CRITICAL **: 16:20:06.914: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
[gstreamer] gstreamer changed state from NULL to READY ==> clocksync0
[gstreamer] gstreamer changed state from READY to PAUSED ==> clocksync0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> clocksync0
[webrtc] websocket /output -- recieved message from 192.168.0.178 (peer_id=0) (258 bytes)
[webrtc] received ICE message on /output from 192.168.0.178 (peer_id=0) with mline index 0; candidate: 
candidate:1420012641 1 udp 2122260223 192.168.0.178 64664 typ host generation 0 ufrag 0eoz network-id 1 network-cost 10

(python3:35): GLib-CRITICAL **: 16:20:06.960: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
[webrtc] websocket /output -- recieved message from 192.168.0.178 (peer_id=0) (290 bytes)
[webrtc] received ICE message on /output from 192.168.0.178 (peer_id=0) with mline index 0; candidate: 
candidate:1436802631 1 udp 1686052607 95.91.230.205 6312 typ srflx raddr 192.168.0.178 rport 64664 generation 0 ufrag 0eoz network-id 1 network-cost 10

(python3:35): GLib-CRITICAL **: 16:20:06.963: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
[webrtc] websocket /output -- recieved message from 192.168.0.178 (peer_id=0) (273 bytes)
[webrtc] received ICE message on /output from 192.168.0.178 (peer_id=0) with mline index 0; candidate: 
candidate:711741177 1 tcp 1518280447 192.168.0.178 57488 typ host tcptype passive generation 0 ufrag 0eoz network-id 1 network-cost 10

(python3:35): GLib-CRITICAL **: 16:20:07.021: g_atomic_ref_count_dec: assertion 'old_value > 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 ==> clocksync_0
[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 changed state from READY to PAUSED ==> dtlsenc0
[gstreamer] gstreamer changed state from READY to PAUSED ==> clocksync_0
[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 ==> clocksync_0
[gstreamer] gstreamer stream status ENTER ==> src
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> srtpenc0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> dtlssrtpenc0
[gstreamer] gstreamer message latency ==> nicesink0
INFO:     192.168.0.178:57481 - "GET /get_devices HTTP/1.1" 200 OK

Steps to Reproduce:

  • here is the deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: fastapi-jetson-deployment
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: fastapi-jetson
  template:
    metadata:
      labels:
        app: fastapi-jetson
    spec:
      hostNetwork: true
      dnsPolicy: ClusterFirstWithHostNet
      containers:
      - name: fastapi-jetson
        image: <YOURCR>-/fastapi-jetson:latest
        resources:
          limits:
            nvidia.com/gpu: 1
        securityContext:
          privileged: true
        env:
        - name: DISPLAY
          value: ":0"
        - name: NVIDIA_VISIBLE_DEVICES
          value: "all"
        - name: NVIDIA_DRIVER_CAPABILITIES
          value: "all"
        - name: LD_LIBRARY_PATH
          value: "/usr/lib/aarch64-linux-gnu:/usr/lib/aarch64-linux-gnu/tegra:/usr/lib/aarch64-linux-gnu/tegra-egl"
        - name: GST_PLUGIN_PATH
          value: "/usr/lib/aarch64-linux-gnu/gstreamer-1.0"
        volumeMounts:
        - name: nvidia-libraries
          mountPath: /usr/lib/aarch64-linux-gnu/
          readOnly: true
        - name: nvidia-tegra
          mountPath: /usr/lib/aarch64-linux-gnu/tegra/
          readOnly: true
        - name: nvidia-tegra-egl
          mountPath: /usr/lib/aarch64-linux-gnu/tegra-egl/
          readOnly: true
        - name: x11-unix-socket
          mountPath: /tmp/.X11-unix
        - name: devices
          mountPath: /dev
        ports:
        - containerPort: 8000
          hostPort: 8000
        - containerPort: 8500
          hostPort: 8500
        - containerPort: 8501
          hostPort: 8501
        - containerPort: 8502
          hostPort: 8502
        securityContext:
          privileged: true
      volumes:
      - name: tesseract-libraries
        hostPath:
          path: /usr/lib/aarch64-linux-gnu/
          type: Directory
      - name: blas-libraries
        hostPath:
          path: /usr/lib/aarch64-linux-gnu/
          type: Directory
      - name: nvidia-libraries
        hostPath:
          path: /usr/lib/aarch64-linux-gnu/
          type: Directory
      - name: nvidia-tegra
        hostPath:
          path: /usr/lib/aarch64-linux-gnu/tegra/
          type: Directory
      - name: nvidia-tegra-egl
        hostPath:
          path: /usr/lib/aarch64-linux-gnu/tegra-egl/
          type: Directory
      - name: x11-unix-socket
        hostPath:
          path: /tmp/.X11-unix
          type: Directory
      - name: devices
        hostPath:
          path: /dev
          type: Directory
      imagePullSecrets:
        - name: acr-secret

Unfortunately all of the solutions mentioned in the other issues:

didn't solve this issue.

In addition to that the RAM gets filled when the host resolution fails until the device crashes.
I'll post a video soon.

Does anyone has an idea?

@Birkenpapier Birkenpapier changed the title Kubernetes Host Network and mDNS (.local) Resolution Issues with Jetson-Inference on Jetson AGX Orin Kubernetes Host Network and mDNS (.local) Resolution Issues on Jetson AGX Orin Jan 20, 2025
@Birkenpapier
Copy link
Author

Here is the RAM filling up video:

2025-01-20_17-51-26.mp4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant