Автоматический скринкаст форматер webm > mp4 для Ubuntu 22.04
В Ubuntu 20.04 появился штатный скринкастер для записи экрана. Активируется на ctrl+alt+shift+r
. В 22.04 подвезли неплохой интерфейс и пользоваться этим при нажатии на PrintScr стало приятно и удобно.
Но есть проблема, пишет он в каталог /home/<user>/Videos/Screencasts/ файл в формате webm с кодеком vp8, переопределить это нельзя, скорее всего так сделано в угоду свободным технологиям и лицензиям. Но при отправке файла к примеру в телеграм, он не играется встроенным плеером, ибо в мире всё заточено на h264 и mp4(не свободные стандарты), так исторически сложилось.
И так, нам нужно конвертировать webm(vp8) в mp4(h264). Смена контейнера, операция копеечная, а вот транскодирование это дорого для CPU. Тут надо сделать отступление, что я работаю на Lenovo ThinkPad e490 с встроенной графикой (iGPU) от intel. Рас у меня есть GPU значит смену кодека(транскодирование) vp8>h264 можно сделать аппаратно.
Пишем небольшой скрипт и кладём его в /home/<user>/.bin/
Что тут происходит? Утилита inotifywait
следит за появлением в каталоге новых файлов и как только файл закончил писаться, в работу вступает ffmpeg и конвертирует наш файл, затем старый файл удаляется.
Можно обойтись без докера, самостоятельно собрать ffmpeg с поддержкой vaapi и положить его локально, но зачем, когда есть готовая сборка, а девайз можно спокойно пробросить.
Далее добавляем в автозапуск через Startup Applications и перелгиниваемся.
Теперь конвертация будет автоматической и для коротких видео, практически моментальной.