I have a vehicle with 4 exploreHD cameras. The tilt camera is set to 1280x720px @ 30fps and the other three are set at 640 x 360px @ 20fps. I am getting a 3 second delay so I deleted 3 of the cameras from the Video Manager in BlueOS but it didn’t make any difference.
I’m using BlueOS Version 1.1.0 Beta 18.
Thanks for contacting. While we cannot offer support for BlueOS, from our experience it should not be causing delay of the cameras. Since you are using 4 exploreHDs, how are you distributing the USB power form the Pi? Are all 4 cameras connected directly to the Pi?
Also, is the reason for the lowered resolution/FPS to lower bandwidth? The Pi with the 2 wire tether interface board should allow 1080 to be streamed on 4 cameras without any issues.
What software are you using to view the streams and if you can, send the gst pipeline for it.
You can also consider using DWE OS which can install alongside of BlueOS and offers further camera controls such as bitrate and true color.
There is a 100w 5v, power supply in the enclosure that powers the Pi, Navigator and the 4 cameras. The 5v supply for each camera doesn’t come from the Pi’s USB port, they are each connected to a fused 5v terminal block.
Yes, I lowered the resolution to reduce the bandwidth. I did delete 3 of the cameras from the Video Manager in BlueOS but it still has the delay. I am using the latest beta version of BlueOS that has a preview image of each camera even if it hasn’t been set up yet. I checked the PI’s processes and they didn’t look like they were working hard. The Tether is fiber so bandwidth isn’t a problem.
One camera is viewed in QGC.
The others are streamed to VLC.
Does DWE OS work with BlueOS or is it only for the old Companion operating system?
You don’t need to lower the bitrate of any cameras or resolution for 4 cameras even with the Blue Robotics Tether Interface board. Each camera default H264 stream is only 10Mb/s and 4 would only be 40 where the tether can handle 80.
DWE OS can be installed alongside BlueOS. Unsure about compatibility with old companion.
While it uses a similar protocol when it comes to streaming as BlueOS, it does offer a wide range of control. Since you are using Fiber, you may not need H264 altogether which is preferred because there will be less compression artifacts and processing needed on the PC viewing the streams from decoding each H264 streams. With DWE OS, you can turn on Variable Bitrate mode which will remove H264 and produce the highest res images. This will also result in less latency.
The problem you are facing here is VLC. VLC has packets that can cause latency. We suggest OBS and OBS also makes it easier to show 3 streams at once. Our documentation site goes into detail on how to use OBS.
Here is a documentation on how to install DWE OS. You will need to SSH into the Pi but that should already be preset thanks to BlueOS. From there you can use Putty to run commands for installation. Afterwards, you can delete the streams form BlueOS and use DWE OS for camera management.
I’ve installed DWE OS to manage the cameras and turned off H.264 and turned the Variable Bit Rate on for all 4 cameras.
QGC doesn’t recognize any cameras now - am I supposed to go back to Blue OS Video Manager and recreate the streams there? If I do that, I have to turn on H.264.
Occasionally I can see a camera on QGC, but it’s random which camera shows up, and then it will usually disappear after a few minutes.
At the moment the 4 cameras are set to 192.168.2.1 5600, 5601, 5602 & 5603.
I am still using VLC to stream the other camera for the moment. Now I can only view one stream at a time. Before I could view all cameras in 4 different VLC windows.
I have installed OBS but can’t get it to work. I have a succesfull installation on my laptop, but have never had success getting it to work on any clients computers.
For QGC, you will need to start the streams via BlueOS because they communicate via MavLink Camera Manager. I have tried to contact Blue to solve this issue but so far it seems like they haven’t responded.
For streaming, you need to make sure BlueOS stream does not conflict with DWE OS. You can use either, they use the same pipelines. For QGC use BlueOS for MavLink Camera Manager purposes.
The most likely cause for Gstreamer to not work with OBS is because of environment variables.
Check out this guide below that goes over how to setup your environment variables for GStreamer.
Hope this helps!
Thanks for your quick response.
If I have one DWE camera, I have been able to set it up in DWE OS and QGC view the image with low latency in QGC. Shouldn’t I be able to install the other 3 cameras and view each stream in VLC? The latency doesn’t matter so much for the extra cameras.
Are the streams deleted on BlueOS? You can use VLC we are just not familiar with it and I think having OBS gives you more flexibility. Let me look into VLC pipelines and I will get back to you.
In the meantime, if you can, send me the pipeline you are using for VLC and I will test it on my end.
Yes, the streams were deleted from BlueOS.
The pipeline I used for VCL is the sdp file generated by BlueOS (before deleting the camera from BlueOS):
This is the script that opens VLC:
c=IN IP4 0192.168.2.2
m=video 5610 RTP/AVP 96
Unfortunately, we werent able to find a method of optimizing VLC. We will continue to look into that.
That being said, we recently made a video on setting up OBS with Gstreamer.
Thought you may find this useful!
If you go to VLC and Open Media, you can select the sdp file and change the Caching to lower latency. Default is 1000ms but you can go as low as 1.
Thanks Joseph. The video was very useful and we got the cameras working nicely with minimal latency.