How to access BlueROV2 camera stream

Hello,
I am trying to run an object detection model on the top side computer in real time but I am having trouble connecting to the BlueROV2 camera stream. I tested the udp://192.168.2.1:5600 on VLC media player and no video showed up from the camera. If I missed something and cannot access it this way is there a way to access it from the qgroundcontrol camera stream instead?

Thank you

Hi @ssicari -
Was the QGround Control application open with video displayed when you tried to open the stream in VLC? Only one player may be able to access the stream at a time…

It was so that was probably it. However I will need to be able to access the stream while I have qgroundcontrol open. Is there a way to prioritize my application and not have qgroundcontrol get the stream. I will still need qgroundcontrol for joystick control.

Hi @ssicari -
You can change the default port the video stream is sent to from the Video Streams page, this will then make it available to your application as QGround Control won’t receive it by default. I hope that does the trick for you!

Thanks I’ll give it a try. Is the video streams page located on BlueOS or qgroundcontrol?

BlueOS!

I tried changing the port and still no luck. I then changed the port back to 5600 and closed qgroundcontrol and tried to see it through a network stream on VLC media player. This time I can see the play bar loaded but still no video. Any ideas?

Hi @ssicari
I was mistaken before - both QGC and VLC should be able to work simultaneously. You can add another UDP destination for the video from the camera configuration page - I missed the plus sign to click. You’d change the IP to the static IP you setup for your target computer (if not present already)
then, click the download SDP button

image.png

Save the file, and open with VLC on your connected computer - you should be all set! Recording via VLC seems to be straightforward.

I added a new ip address and port (udp://192.168.2.1:5602) to the UDP stream 0. I don’t see a download SDP button and the image you sent won’t load.
EDIT: BlueOS was failing to pull the newest version and I am updating now, I should have the option their after I update to the new version.


Hi @ssicari -
I can see the SDP download button in your first screenshot, below the image preview? Just up and to the left of the red trash-can button…

Sorry I should have clarified the screenshot with the SDP download was from the documentation you linked not from my setup. My BlueOS version was before the SDP was introduced according to the docs so I am updating it now. Thank you

I can get the stream working now with the SDP file through VLC. However I still have no luck with it with things like ffmpeg or opening the udp stream and using VideoCapture with opencv. I also will note I can only getting it working on VLC with the sdp file and not through a normal network stream where I manually input the ip and port number

Hi @ssicari,

You can use our documentation here about how to access the video using python or C++.
https://www.ardusub.com/developers/opencv.html

1 Like

Hey, I was having similar issues, all I had to do is delete the stream, add a new one and switch to rtsp and if that doesn’t work delete the stream create a new one and leave it on udp.

Just gave this a shot, still not working when trying to open via opencv. I am planning checking out the documentation they linked above

The documentation mentions changing udp to multiudp in the gstreamer options but the link brings me to BlueOS and I can’t find any gstreamer options or extensions there. Do you know where the option is? Also the stream we are getting is very slow and drops frames quite often. Is this to be expected because currently it will not be fast enough to use the video stream for my object detection model

Hi @ssicari,

The instruction was written for our older companion system, but the python code should work out of the box with our system.
For C++, you should be able to compile and run using the following command:

g++ -g main.cpp `pkg-config --cflags --libs opencv4 gstreamer-1.0 gstreamer-app-1.0` -o example && ./example

If you are having problems, you should go on the camera manager page, click in the gear icon and restart settings.

The python code does work out of box. However I get about 1 frame every few seconds with how bad the latency is. Is this expected to be this slow? Could something be causing this problem?

Any update on this?

Hi @ssicari,

Did you change something on the code ? What is your setup ? Where are you running the code ?
The code should work just fine with real video feed in the surface computer.