Interfacing Cameras with Companion Computer

Hi @yvesyves,

Auto Streaming (H264)

Companion is set up to auto-stream the first H264-encoded video source that it detects (an encoding that’s efficient for streaming). The expected H264 camera output is shown in our Software Components diagram :slight_smile:

Non-H264 Cameras

By the looks of things the HP KQ246AA doesn’t support H264 output, which means to get it to stream video to the topside would require encoding to a streaming format on the Raspberry Pi. That’s technically possible to do, but it’s quite resource-heavy so you likely would have quite a bit of latency, wouldn’t be able to achieve the full framerate, and the performance of the rest of the companion software would likely also suffer.

Available Options

Because of those limitations, companion isn’t set up to automatically stream from non-H264 cameras. Our Low-Light HD USB Camera “has an onboard H.264 compression chip so that all of the video compression is done onboard and doesn’t place much load on the main computer.” Other H264 cameras should also work well automatically, and Raspberry Pi cameras can also be used (there’s some special hardware on the Raspberry Pi that’s specifically able to do the encoding efficiently for them - unfortunately it can’t be used for other cameras).

Other Streaming Formats

Some cameras have other streaming-compatible output formats available, such as MJPEG or H265. From a network data transfer standpoint those should also be fine for companion to use, but some modifications/additions to the current companion software would be necessary to stream them.

IP Cameras (Bypass Companion)

Yet another alternative is using IP cameras, which connect directly to an ethernet network so companion doesn’t even need to know they exist. The easiest way to connect an IP camera is via a network switch, such as our recently released Ethernet Switch, which mounts directly over the Fathom-X. Other network switches can of course also be used, or routers, but they tend to be larger and/or generally more difficult to set up in an ROV enclosure.

Accessing the Stream

When the companion computer is streaming it does so over UDP to the topside computer (IP 192.168.2.1) at port 5600, as shown in the Camera page in your second screenshot. QGroundControl is set to look for a stream at that port by default, but if you want you can instead go to http://192.168.2.1:2770/vlc.sdp to access an sdp file that can be run using VideoLAN (VLC), or you can view it through any other application that’s capable of receiving and displaying a H264 stream over UDP (see here for a list of a few options).


As a side note, is there a reason this was posted privately? While I understand some information is sensitive and shouldn’t/can’t be shared with the general community, your post doesn’t seem to contain anything like that, and others who are interested in the topic could likely benefit from both the question and response. If there’s no particular reason that it’s private please let me know and I’ll convert it to a public post :slight_smile:

1 Like