Я уже пару недель мучался над тем, чтобы сделать себе стримилку на основе Owncast с аппаратным декодированием. Употребляю слово "мучался", потому что:
- Я впервые собирал ffmpeg, какие-то драйвера ставил для RKMPP и прочего зверинца,
- Делал это не лёгким путём на Ubuntu, где всё собрано до и за меня, а чуть более сложным - через Armbian,
- Пришлось редактировать исходный код Owncast
Касательно ffmpeg.
На форуме 4PDA есть огромная ветка для серии Orange Pi 5 , в которой есть информация о сборке ffmpeg под Rockchip 35xx.
На всякий случай ссылку дублирую на Гитхаб тут:
С помощью этой инструкции у меня всё же удалось собрать 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
Касательно Owncast.
Там нет поддержки rkmpp, но добавить просто: надо по аналогии с уже написанным кодом для создания объектов-кодеков добавить для rkmpp. Я код писать не буду, т.к. не очень понятно, что с лицензией, да и, если честно, производительность просто чудовищно грустная - проверял.
На данный момент на Armbian у меня не удалось достичь хоть какой-то достойной производительности в Owncast, поэтому советую использовать опцию Video Passthrough и не страдать.
Не знаю, я всё же рад, что заморочился. Чувствую себя настоящим клавиатурным котом.
Edit: после перезагрузки сервера я получил вполне себе рабочий encoder, который справляется с входящим стримом в 3.5Mbps + 1920x1080 + 60FPS . А Video Passthrough не работает совсем.