Project

General

Profile

coordination #68923

Updated by okurz about 1 year ago

## Motivation
os-autoinst supports "external videoencoder" where we can configure command lines to call other commands. With more efficient video encoders we can save storage space and hence avoid space issues and can store results for a longer time which helps especially for bug investigation discovered by openQA tests.

## Acceptance criteria

* **AC1:** *DONE* One worker runs with an external video encoder configured -> #77839
* **AC2:** *DONE* The configured external video encoder provides significantly smaller video files instead of the default ones -> #77839
* **AC3:** *DONE* The worker is not overstressed by the external video encoder, i.e. not more jobs failing or incompleting due to an overstressed worker -> #77839
* **AC4:** All o3 workers run the same (exceptions allowed if required and documented) -> #77842
* **AC5:** The same as above for OSD -> #77845
* **AC6:** No more workarounds in OSD due to inefficient video encoder -> #77848

## Suggestions

* Install ffmpeg on the worker.
* Try to find a good encoder setting. Likely VP9 would make sense so `ffmpeg -hide_banner -nostats -r 24 -f image2pipe -vcodec ppm -i - -pix_fmt yuv420p -c:v libvpx-vp9 -crf 35 -b:v 1500k -cpu-used 0` would be a start. Also consider AV1 (see #75256).
* Check whether the resulting videos work (including seeking).
* Try it on one worker host first. As not all worker hosts have the same hardware the setting might need to be tweaked per worker host.
* Monitor the CPU usage of ffmpeg e.g. via `htop` and also the overall performance of the worker, e.g. check for incomplete jobs due to performance issues.
* I'd refrain from using non-royalty free formats to avoid any legal problems.
* Adopt any special handling of videos in our production instances:
* https://gitlab.suse.de/openqa/salt-states-openqa/-/blob/master/etc/master/cron.d/SLES.CRON

Back