Imaging company utilizes MPlatform SDK for underwater recording system

Imaging company utilizes MPlatform SDK for underwater recording system

This company requested that we don’t disclose its name due to competition in the underwater inspection space. We would love to identify the customer, but will respect their wish to remain anonymous, and besides — this type of reference is an even greater endorsement to our product. The quotes in this post are from one of the co-owners of the company.


In this use case, MPlatform was utilized to build a video recording system for underwater inspection—a narrow but highly competitive and demanding space where specialized organizations perform inspections for companies that operate expensive ocean equipment, usually in the oil and gas space.

We started with and underwater camera system, that offered a unique set of capabilities at a time when nothing else existed. Once we gained initial success with the camera, we decided to expand our portfolio of products, and the main complementary one was our recording system, our video management system, which is based from Medialooks.

Today, the company also offers accessory equipment such as high-output LED lights, batteries and lasers for underwater image acquisition.

Photo by A. Lebedev.

Typically, a large ship would carry a team that remotely operates and underwater vehicle with cameras installed and no personnel on board. Some ships are big enough to carry up to 11 km of tether with optical and copper cables for data transfer and power supply to the ROV.

In addition to cameras, the submersible would also carry sensors and provide a large amount of data: depth, heading, pressure, temperature, etc. The video stream from the camera system is received in the control room on the ship and recorded to disk with some of the sensor data burned into the video. All of this, including live preview, is handled by our MPlatform SDK.

During the inspection there would be about 20 people viewing the operation live via their web browsers, which they prefer to being stuck in the crowded control room. This is possible due to the streaming feature, enabled by our SDK. Being based on RTMP at first, it was later switched to WebRTC, which instantly allowed people to view the inspection remotely—even if they are miles away from the ship.

Streaming allows anyone on the vessel to view the operation in real time without having to run coaxial cable everywhere from the control station.

At first, this capability was added because it was an interesting area to explore and also could be implemented quickly with the built-in features of the SDK. Streaming later became an important part of the product and sets it apart from the competition: offering lower latency and up to 4K encoding.

Streaming wasn’t an initial requirement but when we got into it and we’ve seen that capability, that was something that we leveraged early on as well. That was a technical thing that we hadn’t even thought of that using Medialooks allowed us to achieve.

Building from scratch

At the start of development around 2011, the goal of the new product was to take in video sources, overlay sensor data, display it and record to disk.

We were looking for more lower-level stuff, DirectShow filters, and then we found a product that did everything that we were looking for and more. We could focus on application development… When we found Medialooks, we stopped looking: it integrated so perfectly with what we were doing that we stopped there. That’s what we’ve been using for a long time.

If it handled recording and overlaying reliably, our client thought, that would satisfy the requirements. To his advantage, building a proof of concept wasn’t too difficult:

With the examples that you guys provided in the SDK it made it a breeze. It was fantastic, actually. I remember because 10 years ago I hadn’t been programming for that long, I wasn’t a top skilled programmer at the time… And reading documentation… I don’t really like reading documentation… The fact you guys had sample applications that I could just take a look at and see how it all worked together and then use that to build my own, was fantastic. It was a piece of cake.

MPlatform has been the video engine since then and helped our client increase revenue and profitability for his business. The product has “definitely met goals”, and WebRTC was an area where it exceeded expectations:

That just kind of blew the doors off a bunch of stuff. We were using RTMP previous to that and then made the switch over to WebRTC, and it was just superior in every way.

The process of implementing WebRTC did not take any time at all:

The way that we have our code structured… we were using the RTMP streaming output. I think to use WebRTC I had to change two lines of code, and one of them was just a string for the server that you’re streaming to. That was huge… that I could just drop in a new thing and then… we’ve abandoned RTMP and we’re completely using WebRTC. That exceeded my expectations.

With MPlatform, our client was able to develop multiple features while spending most of his efforts serving customers and improving his business:

What Medialooks allows us to do is to work at a higher level. We can focus on the user experience of the application without having to worry about the lower-level encoding processes and that functionality — you guys can handle that, and then we handle the front end.

See also