Skip to content

Camera Streaming

Quintin edited this page Sep 28, 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.

Solution:

  • Use the NVIDIA Video Encoder API directly. Encode using H265 (HVEC) which is better than H264 (previously used).
  • Write a custom network protocol between the rover and the basestation.
  • Write a node that runs on the basestation which decodes H265 and sends it to the web browswer
  • Write Vue.js code to set up a websocket and parse this video. Display it to a canvas or video tag
Clone this wiki locally