Issues with WebRTC on Jetson Orin Nano - [gstreamer] gstEncoder -- pipeline full, skipping frame

Guided by [1] and [2], I was able to implement a simple object detection and allow at least one client to connect to the stream.

However, trying to allow 2 or more clients to connect has proven to be a challenge - The below are the steps followed.

  1. Added the --output flag as in It did not resolve it.
  2. Running headless mode, no success neither.

System Setup:

  • Camera: Logitech BRIO 100 (USB Camera)
  • Board: Jetson Orin Nano
  • JetPack: 4.5.2
  • Pre-built Jetson-Inference Docker image: r35.4.1

Are there restrictions as to how many clients could connect to the WebRTC server?

Attached is a copy of the log.
In this case, the client are a M2 (MacBook computer) and a mobile device (iPhone) both on the same LAN.
While in the M2 Safari browser (--headless mode), 30fps can be seen being reported, whenever a phone or any other device attempts to connect, an error such as the one below is reported.

[gstreamer] gstEncoder -- pipeline full, skipping frame 62150 (1280x720, 1382400 bytes)

NB: I could not find any thread that addresses the above so far - If any exists, kindly redirect me to it.

@dusty_nv - I hope it does not bother you to be tagged for such queries.

gstreamer_orin_nano.txt (550.0 KB)

There is no hardware encoder in Orin Nano, so it may be software encoder cannot encode the frames quick enough. Please run sudo jetson_clocks to enable CPU cores at maximum frequency, and see if there is further improvement.

Greetings @DaneLLL

Thanks for the above - No success, I am still having the same issue though I managed to get 2 devices to be connected this time (Mobile and Computer). Once the third device (computer) attempted to connect, the same error was reported and streaming stopped.

Attached is the log.

gstreamer_orin_nano_3.txt (236.9 KB)

Note, a second attempt to replicate the above yielded no success as I was back to square one i.e., only one device/client connected at a time.

This link mentions the support of multiple clients (sharing the encoded video between them), multiple streams…

Hi @pierrepatrick.tswa, on the client side I have tested this mostly through Chrome, and if you are having connection issues I would recommend trying to set chrome://flags#enable-webrtc-hide-local-ips-with-mdns to see if that helps. That said, yes the GStreamer plugins available to use for WebRTC do not seem super robust and in general the streaming negotiation with WebRTC is quite complex, although the code in jetson-utils using them is open source so you are welcome to dig into it further if desired.

Noted - Thank you @dusty_nv

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.