Suggestion for WebRTC streaming solution from Jetson to any Browser

I have been looking ways to figure out streaming 4-8 videos using WebRTC from my Xavier NX device to general purpose laptop’s browser. I am posting this to ask for some suggestions to achieve GPU encoding for videos while working with WebRTC without needing to reinvent the wheel with congestion control and bitrate adaption. Currently here are what I found:

  • JetPack 5.1.3 only has GPU accelerated plugins compiled against Gstreamer 1.16. In order to use webrtcsink plugin, it requires Gstreamer >=1.22. While I was able to install Gstreamer 1.24 in a separate location from native Gstreamer 1.16, it lacks GPU acceleration. One solution may be using Gstreamer 1.16 for encoding and somehow stream to the source for Gstreamer 1.24. This really lacks scalability in my opinion. Do you guys have any other suggestions?
  • Another solution stepping away from Gstreamer is that using accelerated webrtc package that Nvidia provides. However, the package is only out for JetPack 4 as far as I know, and the (closed source) executables are designed to run on two Jetson devices. Is there any way for me to work out this package so that I can use webrtc stream executable (peerconnection_server) on the Jetson and then easily view on my laptop’s browser using some JS and some default ports?
  • Then, it all leads to dusty-nv repo. I haven’t tried it out yet but let me know if any of you have worked this one out.

Hi,
For running WRTC on Jetson platforms, we suggest run this as a reference setup:

jetson-inference/docs/webrtc-server.md at master · dusty-nv/jetson-inference · GitHub
jetson-inference/docs/webrtc-html.md at master · dusty-nv/jetson-inference · GitHub

And refer to it to develop your use-case.

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