Handling custom camera feeds (without MAVLink?)

Is there any way to disable, in BlueOS, the automatic camera code. I have a need to provide my own camera feeds to QGC, but with BlueOS announcing to QGC the IP:port, I cannot get my feeds to show.

I would rather not interfere with the MavLink. It would be better if I could just tell BlueOS to not enumerate the video devices.

Thanks for your help.

Mark Kozikowski

Hi @mark, I think this question would be better in fresh topic since this topic is marked as solved (maybe @EliotBR could move it?), but anyways, here is the answer:

BlueOS is not yet capable of disabling automatic mavlink stream advertising (tracked here), however, I can offer two advanced ideas here:

  1. Instead of dealing with mavlink advertising by yourself, you can make use of mavlink-camera-manager’s Redirect streams, which is a way to advertise streams to mavlink that weren’t managed by mavlink-camera-manager itself. We usually use this when we want to integrate an external IP camera or a custom pipeline.

  2. You can also use the same mavlink-camera-manager’s Redirect streams to act as a placeholder to avoid having zero configured streams at the startup, which is the condition that triggers the automatic camera enumeration.

Soon we’ll be adding redirect streams management to our BlueOS UI (tracked here), but for now, you’d have to access the mavlink-camera-manager dev UI (http://blueos.local:6020) to create them:


Note that the configured endpoint for a Redirect Stream is exactly what mavlink-camera-manager will advertise, no IP translation or data processing will happen, meaning that localhost would be the device QGC is running on, not the raspberry.

Let me know if any of these options can be used in your case, otherwise, I could reply here when we implement the ability to disable the automatic mavlink stream advertising.


Thanks João,

I will look into your suggestions. Need to educate myself on their use.


Curious. Will this fix the camera feed choice disappearing from QGC setup when there is a USB camera plugged into the companion RPi? I have a USB and an IP camera, and I used to be able to switch between the two by choosing the UDP, or RTSP feed in QGC. That option seems to be gone now after the move to BlueOS. For now, I unplugged the USB camera, and running just the RTSP feed. I’m running stable versions of BlueOS and QGC.


Yes, if both/all camera streams are being sent via the BlueOS camera manager then they will be enumerated via MAVLink, so QGC will be able to toggle/switch between them (regardless of if they’re using UDP or RTSP), including via a joystick button function :slight_smile:

QGC has unfortunately been set up such that if one or more video stream is presented via MAVLink then that takes priority over any other potential streams, and the interface changes to only allow accessing cameras through MAVLink, so it’s basically an all-or-none requirement.


Wow, thanks. This is working as you describe. Works great.

1 Like