Low latency Jetbot teleop with WebRTC

Hello,

I would like to pilot my Jetbot from a distant web browser, so I’d need a low latency video feed solution. The robot has a Raspberry camera V2 connected through CSI to the Jetson Nano.
To do that with a CSI camera connected to a Raspberry Pi based robot, I am using the great UV4L WebRTC streaming server: https://www.linux-projects.org/uv4l/. Thanks to WebRTC, it allows to display the camera feed on the web browser with extremelly low latency (less than 80ms in a local network and less than 200ms from the internet @720p 15fps).

I guess this use case is pretty common, that’s why I think a good solution might already exist for the Jetbot.

If not, what would be the best way to achieve such a low latency with the Jetson Nano.

  1. Setting up a WebRTC server on the Nano, but as it is said here: https://devtalk.nvidia.com/default/topic/1068485/jetson-nano/webrtc-on-jetson-nano/post/5418378/#5418378, only USB camera are supported on the Jetson Nano with WebRTC… Driver need to be modified? Is it planned?
  2. Custom implementation of gstreamer to WebRTC using GstWebRTC https://lazka.github.io/pgi-docs/GstWebRTC-1.0/index.html?
  3. Using DeepStream SDK to output a RTSP stream and read the stream in the browser with something like https://github.com/Streamedian/html5_rtsp_player/wiki/HTML5-RTSP-Player? but in this case I am not sure about the latency we could hope for…

Thanks for your insights.

Have a reference to below vendor for the WebRTC

https://developer.ridgerun.com/wiki/index.php?title=GstWebRTC_-Video_Examples-_TX1/TX2

For the RTSP latency you may need to take time to try.

@ShaneCCC
Is it possible to use the webRTC framework for Jetson with non-USB cameras? I’d like to get a low latency stream from a Geneie Nano camera which is a camera that works through ehternet, not USB, so it doesn’t show up as /dev/video* . As the source code for the video_playback binary isn’t provided, I can’t modify it to take data from the camera. What are my options? Cheers!

You can check with camera partner to get YUV sensor and use rtsp protocol to streaming through ethernet.

What if I’d like to webRTC with the cameras I’ve got currently? Is that not possible?

Hi @farbod1277,

I have an ethernet camera connected to my Jetson Nano and can display that video using gstreamer.

I also want to build up a webRTC server on my nano to stream the video (RTP, H264) in the browser. Did you find a working solution?

Thanks.