BlueOS camera manager RTSP feed from IP camera

I’m a bit stumped. We have an IP camera (downward looking) mounted to the BlueROV2. It has two streams available: A main stream and a low-res sub-stream (both highly configurable). My intention was to integrate the low-res sub-stream into a Cockpit display so could monitor what the downward looking camera sees. We’ll most likely use something like VLC to capture the high-res main stream.

The Sheen camera we’re using has these URLs:
rtsp://192.168.2.108:554/cam/realmonitor?channel=1&subtype=0|1 where 0 is the main stream and 1 is the substream. I’ve verified in VLC that both of these work and return the appropriate streams.

Here’s how it looks on the BlueOS video manager:

The substream is set to H.264, 640x480, 15fps, CBR, 1024 bit rate

Any advice appreciated!

1 Like

Hi @PeterM,

Do you mind sharing what is your BlueOS version, as well as the version of your ground station software (is it QGroundControl?)?

The setup seems correct to me. If you can reach the IP camera with VLC using that same address, and your vehicle is also in the same network (192.168.2.x), then you should be able to receive it in QGC or another MAVlink ground station software.

Can you check if your ground station can receive another RTSP from BlueOS? If you don’t have a USB camera connected, you can enable the pirate mode and add a Fake stream (please select h264 at the lowers resolution possible, and 30fps), select RTSP, just like the image below:

image

Then you should be able to receive it on your ground station software. If not, the problem is with your MAVlink setup. To set it up, enable Pirate Mode and go to MAVLink Endpoints (http://blueos.local/vehicle/endpoints). You need a UDP Client pointed to the IP of your topside computer, which is usually 192.168.2.1 (documentation is here)

Another test that can be helpful is to try our WebRTC: you can go to our WebRTC developer testing page (http://blueos.local:6020/webrtc/index.html), add a consumer, then check if your IP Camera shows as an available producer, and then start a session and see if the stream plays?

Thanks

1 Like

Thanks for the fast response @joaoantoniocardoso.

BlueOS 1.1.1.
QGC v4.1.6

I setup the Fake stream and managed to get that to work, and then switched to the Redirect Source stream and actually it is working… I was just put off by the message “source unavailable”.

We have added the IP camera to look down as we fly the ROV horizontally. The plan was to use the low-res sub-feed to view as we fly while recording the high-res IP camera stream. I managed to set this up on Cockpit to look like this:

Looks to be working - but gives this message when you first open Cockpit.

Of course it would be nice to be able to record via QGC or Cockpit, but I can’t see a way to configure both IP camera streams (only one Redirect Stream) and I’m not sure what the CPU burden would be… I’d be happy with VLC recording on the high-res stream and QGC or Cockpit getting the low-res monitor view.

Any further advice appreciated. Loving Cockpit!

1 Like

Hi, happy to see that it is working!

I’ll take note of that deceiving “No source available” message, thanks for the feedback :slight_smile:

So, for the Cockpit, that message is expected. Try to follow those instructions, they are made so we guarantee that the video will be sent through your tether/cabled connection and not via WiFi/radio, meaning that for your setup, you’d have to select only the 192.168.2.2.

About adding more redirect videos, this can be done, but for now, not in the BlueOS interface (you’ll be able to on the next BlueOS beta), so you need to use the development/test interface for the video service. You can access it at http://blueos.local/mavlink-camera-manager. On this interface, each column represents a possible video source, and the column on most right shows the configured streams.

To add a new redirect source, find the “Camera: Redirect source” one, which should be on the right. Choose a unique name, and add the RTSP endpoint there, and click “Configure stream”, ending up with something like this:

And in BlueOS video page:

image

Regarding CPU usage, I’ve used 2 redirected IP cameras in the past and it was working fine.

In Cockpit, I’d suggest you only try to record one of the video streams, there is an issue regarding recording multiple video streams (which should be possible using two “Video recorder” MiniWidgets). We’ll be working on this to make it possible in the next two weeks.

Note that each recording will act as a new streaming, consuming an additional bandwidth usage. This is something that is also on top of our priority list, and soon it will not result in more bandwidth use :slight_smile:

Of course, you can use the VLC or other software to record each of your streams directly from the RTSP endpoint, but this will have the same additional bandwidth usage implication as today’s Cockpit.

I hope it helps, feel free to ask further questions!

I now get it - and that worked, thanks. This is truly fantastic functionality out of the box. Well done all those involved!

As I’m working on this I’m finding a few instability issues and UI problems etc. How would you like feedback? In the appropriate GitHub project? or in a forum post? other? I’m keen to help get this to a point where it’s stable enough to use reliably in the field (and it feels really close!).

Awesome, thanks for being interested in making it better!

For this kind of feedback and involvement with the development team, the best place is directly on Github, by creating issues there. Here are the two relevant repositories:

Feel free and welcome to post anything there :smiley:

1 Like