Я люблю neofetch

Я уже пару недель мучался над тем, чтобы сделать себе стримилку на основе Owncast с аппаратным декодированием. Употребляю слово "мучался", потому что:

  1. Я впервые собирал ffmpeg, какие-то драйвера ставил для RKMPP и прочего зверинца,
  2. Делал это не лёгким путём на Ubuntu, где всё собрано до и за меня, а чуть более сложным - через Armbian,
  3. Пришлось редактировать исходный код Owncast

Касательно ffmpeg.

Итог - ffmpeg собран, но какой ценой...

На форуме 4PDA есть огромная ветка для серии Orange Pi 5 , в которой есть информация о сборке ffmpeg под Rockchip 35xx.

Orange Pi 5/5b/5Plus - 4PDA
Orange Pi 5/5b/5Plus, Одноплатный компьютер от Orange

На всякий случай ссылку дублирую на Гитхаб тут:

SBC_Playground/ffmpeg_rockchip.md at master · ProKn1fe/SBC_Playground
Contribute to ProKn1fe/SBC_Playground development by creating an account on GitHub.

С помощью этой инструкции у меня всё же удалось собрать ffmpeg с поддержкой rkmpp для h.264 и h.265. Правда, чтобы работало, нужны root-права - кажется, это связано с правами для /dev/dri/renderD128.

Использовал на вход следующую команду для теста сжатия видео:

ffmpeg

sudo ffmpeg -hwaccel drm -hwaccel_device /dev/dri/renderD128 -i /mnt/KC2500/jellyfin/movies/Hookbill\ vs\ Navy\ thrasher\ 2.mp4 -vf scale="720:480" ~/output.avi

За 02:41 минуты справился!

Касательно Owncast.

Там нет поддержки rkmpp, но добавить просто: надо по аналогии с уже написанным кодом для создания объектов-кодеков добавить для rkmpp. Я код писать не буду, т.к. не очень понятно, что с лицензией, да и, если честно, производительность просто чудовищно грустная - проверял.

На данный момент на Armbian у меня не удалось достичь хоть какой-то достойной производительности в Owncast, поэтому советую использовать опцию Video Passthrough и не страдать.

Не знаю, я всё же рад, что заморочился. Чувствую себя настоящим клавиатурным котом.

Edit: после перезагрузки сервера я получил вполне себе рабочий encoder, который справляется с входящим стримом в 3.5Mbps + 1920x1080 + 60FPS . А Video Passthrough не работает совсем.

speed=1.92x

Orange Pi 5 Plus, ffmpeg и Owncast