-
-
Notifications
You must be signed in to change notification settings - Fork 17
Camera Streaming
Quintin edited this page Sep 30, 2023
·
4 revisions
Context: At URC we are not allowed to look directly at the rover. Instead we are in a "basestation" which is sealed off. Thus we need a camera stream to view what is happening near the rover.
Problem: GStreamer is finicky and unreliable. At URC it cut out and we did not regain it. It also is such a general tool that it suffers performance issues - we could get a much faster and robust stream by writing some custom code for known hardware.
Solution:
- Use the NVIDIA Video Encoder API directly on the Jetson. Encode using H.265 (HVEC) which is better than H.264 (previously used).
- Connect a websocket on the basestation to a POSIX socket on the Jetson. Forward bytes outputed by the encoder to this stream.
- Use emscripten to compile a H.265 C library (such as libde265) that parses the input stream and converts it to a video directly in the browser. Draw it to a canvas.