The credit goes all to Joao here. He’s the one doing magic on the video backend
I hope your tests go well! Let us know about anything.
We still have some improvements to be done on the video backend, regarding stuttering and resource leaking, but we think we are close to solve most of it. Cockpit video pipeline is getting closer to what we expect for the stable release.
@rafael.lehmkuhl I have completed a test today with our 4k camera, resulting in a 12gb 1hr 40min *.webm file and associated *.ass file.
There was about 10 seconds delay from ending recording to the file being available for download (no issue there). But the resulting file is still only viewable in both VLC and WMP as realtime playback only. It is not possible to jump to any point in the playback or scrub through it, it just reverts to the last viewed time. Tested on a couple of windows machines - this one RTX4090 GPU, AMD Ryzen 7 3800X 8-Core CPU 3.89 GHz, 64gb RAM and all data on PCIe 4.0 NVMe SSDs so I don’t think there’s a performance issue.
When playing we see no overload of CPU, GPU or excess RAM utilisation. It’s like there is an indexing issue in the file or similar.
BlueOS Master - as of today and Cockpit v1.0.0-beta.12
It would be interesting to have one of these long video files to analyse, and to see what is going wrong. I don’t see any reason as to why matroska (webm/mkv) should have problems seeking on longer files.
If you’re looking for alternate players, I would suggest trying MPV and MPC-HC (on github, clsid2)
Would also be very interesting to remux the file to mp4/mov, and see if that resolves the issue. It will not re-encode, and will happen at the max speed your disk can read/write. For instance with ffmpeg: ffmpeg -i orgFile.webm -c copy outFile.mp4
@mattcmgb was actually right in his understanding that the master version of BlueOS was already including the fix. It’s also on the latest versions (1.2.0+).
I’ve tested here and was able to still reproduce the issue with latest Cockpit version. What I think can be happening now is that the fix we have on the Cockpit side (that most of the time didn’t actually fix the video) is breaking the correct duration. I will take a look at that.
I think I’ve fixed the duration/seek problem in the videos! Please take a look at v1.0.0-beta13 and let me know if it’s working for you guys. I’ve tested it with 1, 5, 30 and 60 minutes recording and all went fine.
hi guys, i’ve had an error processing video, (actually the .ass file which we use for altitude, video ok) and followed the steps here and see both in the Indexedb - what next? save them?
Passing here to give an update about the current state of video recording with Cockpit.
Today we recommend you to do two things:
Install the Dashcam extension to record videos in the vehicle itself whenever armed. We will soon merge this functionality in BlueOS itself, but for now you should install the extension to do that.
Use the standalone version of Cockpit, with the automatic video processing disabled and record as many hours of video as you need. After you finish your recordings, open our online processing tool, upload your files there, click to process them, click to download the video slices and them merge them with a tool like LosslessCut (drag and drop and click to merge). You don’t have to worry about privacy as your recordings are not uploaded to any server of ours. The online processing tool runs the processing locally (you can check it under the browser inspector to confirm that).
I personally prefer to have both recordings going on, as the vehicle one can save you in cases where you lose connection to the vehicle or have a degraded connection, while the topside one save you in case you lose your vehicle.
But i had to restart the topside computer this morning and when i look in the IndexedDB now the files are no longer there. We are hoping the .ass information will be in the .BIN or .TLOG file. Though in binary?
To clarify, the different types of logs are generated by different parts of the software and hardware stack, and contain different (somewhat overlapping) information as a result.
Cockpit’s video recording subtitle overlays (.ass files) can include fields from specific MAVLink messages, as well as some other information that the application has access to (like its memory usage, and some information about BlueOS). One is generated for each video recording, with the fields the user has configured via the settings.
Telemetry logs (.tlog files), recorded by a MAVLink router or control station software, contain a history of all MAVLink messages in a given session (where the session start and endpoints are determined by the router - often just when it’s on, although sometimes there are log rotations if the current file gets too big, and some software only record them while the vehicle is armed). The rate of information in that
DataFlash logs (.bin files) are high frequency and resolution internal logs generated by the autopilot, and stored on the flight controller board’s storage (although in the case of a Navigator that storage is readily accessible within BlueOS). Their contents and recording periods can be controlled by the relevant autopilot parameters.