Hardware Video Encode/Decode Support for RK3588

I currently own a NanoPi R6S equipped with an RK3588S and 8GB of RAM, which delivers excellent performance. Recently, I started exploring the possibility of using it as a media server (in addition to being my home router), but I immediately encountered a performance issue with encoding/decoding that pushes all 8 CPU cores to 100% usage. The media servers I tested (Plex, Emby, and Jellyfin) do not utilize the RK3588's hardware acceleration.

The only one that supports RK3588 hardware acceleration is Jellyfin. However, when installed on OpenWrt, it cannot use hardware acceleration due to the lack of support in OpenWrt. In contrast, when I use FriendlyWrt, Jellyfin successfully uses hardware acceleration without problems, reducing CPU usage to just 5-10%!

Some links

I found this repository which appears to be used by FriendlyWrt to enable hardware transcoding support: https://github.com/rockchip-linux/mpp

Here is a brief thread I opened confirming that FriendlyWrt successfully uses hardware acceleration: https://forum.jellyfin.org/t-solved-how-to-enable-hw-transcoding-on-the-rk3588-with-openwrt

Request

Would it be possible to add hardware transcoding acceleration in OpenWrt builds for RK3588-based devices. This feature would unlock significant functionality for many use cases beyond traditional routing, allowing users to fully leverage all the capabilities and resources of these powerful platforms.

Thank you for considering this feature request.

Is it possible, probably yes.
But does it make sense?

For router functionality this is useless and dead weight, but if you want to enable it, you also need to provide the surrounding userland (which is busywork, useless for OpenWrt's primary purpose. And when it comes to proprietary libraries, ffmpeg forks, etc. you're walking on quite thin ice (looots of rockchip specific work, difficult licensing).

Can it be done, probably, but it would need those with the hardware to provide patches and maintain it - to lift the maintenance burden from those who don't care all that much about non-routing tasks (or rockchip to begin with). I wouldn't hold my breath, at some point a general purpose/ desktop linux is a better choice.

2 Likes

You stand much better chance with debian/ubuntu kind of linux.