WebRTC on Jetson? to provide video stream (adaptive bitrate)

WebRTC provides several features that make it appealing as a means to stream image data to a client. The two biggest for my needs are adaptive bit rate and low latency to a remotely network connected client.

What is the recommended way to run webrtc on jetson? I’m presuming I can setup my jeston software to compress to h.265 and then use webrtc to transport my video to a remote client.

Looking at
https://docs.nvidia.com/jetson/archives/r35.2.1/DeveloperGuide/text/SD/HardwareAccelerationInTheWebrtcFramework.html
I notice only supports h.264

Hi @briandleair, in my (limited) experience with WebRTC, I’ve noticed that most browser clients seem to prefer H264 (and to an extent VP8). I’ve not gotten H265 working on the client side (not that it’s not possible especially were you to control the browser, but just seems to be a moving target)

I’ve messed around with the GStreamer webrtcbin plugin, here’s a Python example I found which integrates it into a pipeline: https://github.com/goodrobots/visiond/blob/master/modules/webrtc.py

I’ve also integrated GStreamer-based webrtc with hw-accelerated encode/decode in the dev branch of jetson-inference. It’s not documented yet but on my todo list.

1 Like

H265 WebRTC is only supported by Safari. I believe VP9 is supported by all

It looks like chrome support of HEVC / h.265 might be more widely available now

https://bugs.chromium.org/p/chromium/issues/detail?id=460703

Yes, Chrome added support for HEVC playback but of mp4 files not WebRTC. It might work if you bypass the browser altogether. If you manage to get it working, please share.

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