Accessing Embedded Audio Channel on BlueROV2 via BlueOS

I am trying to access and record the embedded audio channel from the camera installed inside our BlueROV2 electronics enclosure. The camera module natively supports an audio track, and we need to pull this live feed to our topside control computer.

I wanted to know if:

If there is an officially supported GStreamer pipeline configuration within BlueOS that can bundle and stream this camera’s specific audio codec (e.g., AAC, Opus) over a designated UDP port?

If a native pipeline isn’t supported, do you recommend managing this via a specific BlueOS Bazaar extension, such as MediaMTX (for RTSP/WebRTC streaming) or VirtualHere (for USB encapsulation over IP)

Hi @atanu585 -

A custom extension is the best way to record the audio from the USB camera’s microphone. The dropcam branch of this extension records audio, see this file - however in general it needs the video stream device removed from BlueOS, so is not compatible with recording audio/video while also receiving the stream normally for ROV operation…

Can you share what’s motivating your application for audio recording? Are your electronics controlling an ROV? You’re going to hear quite a lot of high-pitched noise coming from the tilt servo, and the motors of the vehicle if they are operated…

Hi @tony-white ,

We are conducting an underwater percussion experiment to assess structural integrity and identify loose connections on subsea flanges. To train our machine learning model, we are capturing the audio signatures generated during these impacts. A Python-based script helps to drive the ROV to the position of the flange.

What is the best way that you suggest to record the Audio in our usecase?

Hi @atanu585 -

Very cool!

The noise from the camera tilt servo is likely going to make any subtle audio signals you’re after very difficult to detect. It can be quite hard to filter out! Here is an example:

audio sample servo whine.wav.zip (7.1 MB)

A hydrophone connected to a USB sound card may provide a better signal. To eliminate thruster noise, you could use a newton gripper to attach the system to some stationary object like a rope, or maybe the flange itself, and then disarm the system to stop thruster operation.

Thank you for your response. We need to process the Audio from the ROV itself. Placing a hydrophone on the flange is a good solution for an experimental setup but is not a good viable practical solution, since a hydrphone cannot be palced on all flanges in the subsea level.

Hi @atanu585 -

I intended the hydrophone mentioned to be placed on the ROV, and maneuvered close to your flange by it. This will provide better audio than using audio from a microphone on the USB-Camera located in the housing, next to a very noisy servo! Comparing this audio to audio from a flange-mounted hydrophone in a test setup would also be interesting…

@tony-white That is a really cool idea. Can you suggest a way to mount the hydrophone on the ROV so that we record minimal noise coming from the ROV?

Hi @atanu585 -

I would guess that hanging it or suspending it in o-rings or a soft TPU 3D printer filament would impart less motor vibrations from the ROV frame compared to a rigid, clamp-style mount. Those Aquarian hydrophones are pretty small and easy to work with - you will need to cut off the headphone jack to pass the cable through an appropriately sized WetLink Penetrator, but you can splice the wires back together inside the enclosure and connect it without to much hassle!