Cockpit v1.17 release - Video recording done right

The old and bad times

Video recording has been a long-standing source of challenges with Cockpit - making it work well required short recordings, especially for high resolution cameras.

Clicking to stop the recording was always a tense moment, as the processing could go well or poorly, and the application would usually hang for a while the video was being processed. It was also quite common for the processing to fail from a lack of memory, which required using a separate tool to merge the recording chunks.

The new and good times

We are happy to say those times are now in the past. We just released Cockpit 1.17.0, and the application can now record indefinitely (or until you run out of storage), without memory constraints. The video is now remuxed to .mp4 in real time, meaning the processing overhead is very low and will never cause hangs or lag. We’ve stress-tested this new pipeline for almost 2 months, with recording tests up to 3 hours long with 4K cameras, without any problems!

Recordings are also saved directly to an .mp4 file now (instead of the previous .webm files). This means the video is always playable, in any video player, even while the the recording is still going on!

The video library interface (which opens from an icon in the recorder widget) has been completely refactored, and now has three tabs:

Ready to watch!

The “Processed” tab shows your videos which are ready for you to play or copy. As the video is processed in real-time, you can click to watch it while you’re still recording, and make sure everything is going according to plan.

:bulb: NOTE: to prevent performance problems we were having with the built-in player, we removed it and the play button now plays the file in the default video player of your OS.

Chunky backups

You see the “Raw” tab? It shows you your backup chunks. To be certain your videos are safe, we’re keeping around the raw data files recorded by the application. You should clean it from time to time to make sure it doesn’t take precious space from your system.

In the Standalone version (the desktop application) the backup chunks can help recover recorded video from a processing failure. That said, we’ve never needed to use it with the new recording pipeline.

Cockpit Lite (a.k.a the Web version)

As Cockpit has grown, we’ve run into some limitations with current browser technology that make it less great than running Cockpit as a desktop application. To reflect that, the Cockpit BlueOS Extension has been rebranded as Cockpit Lite - it can do most of the same things, but some challenges haven’t been solvable, so some features aren’t available.

To avoid performance issues, video recordings in Cockpit Lite only save the backup chunks, with no real-time processing. That means to have a playable video you’ll have to download the zipped chunks file (with the download button in the middle of each recording group in this Raw tab) and use the Standalone version to process it. That’s where the third tab comes into play…

The “Processing” tab is there for exactly that: process the chunks from a recording made with the Web version of the application. You just select the downloaded ZIP file and it will process everything in a couple of seconds. And there’s a very good news with that: you can download ZIPs of chunks from previous versions of Cockpit and process them in that same tab, and everything will work as if they were recorded with the latest version!

There’s a lot more

Of course, there’s more to this new version than just the improved video recording experience. A few highlights include mission estimates for BlueBoat users, Command Waypoints for those performing advanced missions, native TCP/UDP connections for non-BlueOS users, many bug and stability fixes, and a lot more.

:bulb: NOTE: See the release notes for the change log - more detailed docs are coming soon!

We invite you to give it a try and let us know how it goes. Happy piloting!

6 Likes

Hi @rafael.lehmkuhl,

Sounds really great! I’d noticed the Cockpit Lite and wondered what the change was for so thanks for the info!

2 Likes

There’s a feature comparison table in the README for the full set of differences :slight_smile:

We’re still trying to get all the features we can into the browser version, but not everything makes sense in a “this is served from a specific vehicle” context, and other things are just not possible with available browser APIs.

Aside from memory limitations for recordings, background joystick usage was the other major reason for the name change - clicking a different window and losing joystick control is problematic for some use-cases, but browser sandboxing loses access to inputs when the browser tab is not in view (and sometimes just when not in focus). For lots of users that’s fine (especially when everything relevant is in Cockpit / an iframe), but for some people it’s a dealbreaker, so we wanted to be clear that there are some differences between the versions :slight_smile:

1 Like