BlueOS Cockpit MJPEG Recording Solutions

Hello,

I am looking for some guidance on streaming and recording MJPG via cockpit.

As an overview of the current setup, I am using a separate RPI4 to stream footage from a RPI HQ Cam (IMX477) via an RTSP server (mediamtx). I am aiming to be able to record high-resolution, low-FPS MJPG.
To try reduce the reliance on the IMX477 camera and separate RPI, I would like to leverage the cockpit extension recording feature. I am aware that WebRTC does not allow for MJPG [Protocol] (Codecs used by WebRTC - Web media technologies | MDN).

In this application, we are after a series of still images, so MJPG (with no frame-to-frame compression) which feels like a better solution than H264. Note that we would be keen to dual stream - so have a low resolution H264 for monitoring as well as a low-frame rate, high-res MJPG stream for recording.

Any guidance on what steps/solutions I could take to leverage cockpit or any existing capabilities (i.e. cockpit recording) would be greatly appreciated.

Thanks in advance for any help, and I am glad to elaborate further if need be.

Cheers

I think @joaoantoniocardoso will be better able to help you, but I can say in advance that the current stream functionality, including recording, is highly tied to the WebRTC solution.

Playing the video on Cockpit thought, I have seen @williangalvani do already using the URLVideoPlayer widget, or the ImageViewer widget, pointing to an url with a MJPG video stream from ESP32Cam.

Hi @samuel_reedy,

currently, the Mavlink Camera Manager (MCM - the software that manages the streams on BlueOS) does not yet have recording capabilities. The good news is that we plan to work on this feature until the end of the year!

If you are in a hurry, the alternatives today are:

  1. Contribute to MCM to accelerate this feature
  2. Make a BlueOS extension to run some 3rd party library/software capable of recording the video you want, like VLC or MPV.
  3. Make a BlueOS extension to run a custom GStreamer pipeline

Thanks!