Software Overview for Camera Streaming in OpenROV


I had about 2 hours of free time while my kid took a nap, so I made this video to help shine some light on how the software works for streaming video from the ROV to the browser. It is just a brief overview, but hopefully it has enough information to get people interested in playing around with the code - or even just to get people interested in understanding how we chose to implement video capture. There will be much more extensive documentation on the wiki once we get that up (should be very soon now - thanks for your patience).

Also, we've received many inquiries about the video quality. Previously, we were able to get a resolution of 320x240 at 15fps which we then upscaled on the client side to 640x480. Now that we've updated to Node v0.8, we're seeing 640x480 at 30fps (though we have yet to test that over our 10baseT-limited tether).

Eric and I will be going to Moss Landing tomorrow to test the video at depth - we're going to see just how deep it can go (mainly to test the reliability of the tether under water). You can expect another blog post and video on how that goes.

Wish us luck!

-- Bran


Why do you want to process the video on robot? Wouldn't it be easier to use a camera with a network port, send the video over the tether up to the surface and and do all the processing there. Even doing it in javascript in a modern browser might provide more option then on a "slow" robot.

The only time I would think it would be useful is if the robot works without a tether, but if it is tethered anyway, why not use the hardware on the other end of the tether (apart from the fact that it is obviously cool to do it on the robot)


Great question Christian and worthy of a healthy discussion. It's something we've talked a lot about and decided that there is a cooler and more interesting future for the ROV if we can process the video there. It opens up the world of computer vision. Plus it makes it easier to make the jump to tetherless and autonomous.


Hello, with this solution the BeagleBone must not do any image processing at all and the bandwidth of 10MBit/s should be enough for 1080p/30fps with H.264: Build BeagleBone HD IP Camera