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.rcstarts thevideoservicestreamer.pyis in charge of restarting the video stream if it fails/closesstart_video.shconfirms the camera is valid and working and starts the gstreamer pipeline
In our new Companion Beta software
coreruns 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)