Hi @MemeOverload, welcome to the forum
It’s definitely better to use gstreamer or ffmpeg or similar here, reading in the data with Python (and especially decoding + re-encoding it with OpenCV) will certainly slow things down unnecessarily. The only reason you might want Python+OpenCV involved is if you want to do some processing on the video, otherwise I’d recommend one of the other alternatives for receiving a stream.
On our stable Companion software
.companion.rc
starts thevideo
servicestreamer.py
is in charge of restarting the video stream if it fails/closesstart_video.sh
confirms the camera is valid and working and starts the gstreamer pipeline
In our new Companion Beta software
core
runs the mavlink camera manager tool- the camera manager handles video streams, and presents them via MAVLink to the ground control station for switching between them (requires the QGC
master
, and requires the user to specify which cameras they want to stream, via the web interface)