Jellyfin open-source media server has recently added support for Rockchip RK3588 MPP hardware acceleration, which means the software supports video hardware decoding and encoding, hardware scalers, and other features.
The GitHub request lists the following changes:
- Add full HWA transcoding pipeline for Rockchip RKMPP
- HW decoder (MPEG1, MPEG2, MPEG4, H264, HEVC, VP8, VP9, AV1)
- HW encoder (H264, HEVC) up to 1080p @ 480fps / 4k @ 120fps on RK3588
- HW scaler, format conversion, and subtitle burn-in
- HW HDR-to-SDR tone-mapping (requires OpenCL, RK3588 only)
- The OpenCL runtime can be downloaded and installed from libmali-valhall-g610-g13p0-x11-wayland-gbm_1.9-1_arm64.deb
- Support lossless AFBC (Arm frame buffer compression) to save memory bandwidth and improve FPS
- Support async RGA filter and MPP encoder
If indeed decoding and encoding can be performed simultaneously, that would mean video transcoding can be offloaded to the Rockchip RK3588’s VPU. The changes has been tested with Linux 5.10 and Linux 6.1, but do not work with mainline Linux at this time.
nyanmisaka also provided a docker image for testing last month:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
docker run -d \ --name jellyfin \ --privileged \ --net=host \ --restart=unless-stopped \ --volume /path/to/config:/config \ --volume /path/to/cache:/cache \ --volume /path/to/media:/media \ `for dev in dri dma_heap mali0 rga mpp_service \ iep mpp-service vpu_service vpu-service \ hevc_service hevc-service rkvdec rkvenc vepu h265e ; do \ [ -e "/dev/$dev" ] && echo " --device /dev/$dev"; \ done` \ nyanmisaka/jellyfin:latest-rockchip |
But it’s likely not needed anymore since Jellyfin-ffmpeg 6.0.1-2 already implements the changes and requires Jellyfin 10.8.10 or newer. It’s available for a range of operating systems including Debian 10/11/12 and Ubuntu 20.04/22.04/23.04, and you’d need to select the Jellyfin arm64 images for MPP hardware decoding/encoding to work on Rockchip RK3588.
Thanks to mecobutnot for the tip.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
I see that Frigate NVR also has specific support for various Rockchip CPU/NPU hardware: https://docs.frigate.video/frigate/hardware/
It’s going to be available in Jellyfin 10.9. Per https://github.com/jellyfin/jellyfin-ffmpeg/issues/34#issuecomment-1914392752
In case anyone doesn’t know, RK3588 is the first ARM SBC chip that can compete with Intel in video transcoding performance. In this regard, its energy efficiency is much higher than that of the competing Intel N100 (ADL-N).
Aw, I just got Plex set up on my RK3588 NAS. I guess I should switch to Jellyfin as I found I couldn’t transcode 4k h.265 to 1080p h.264 in real time on the CPU. The space savings from switching to h.265 would also be nice.
Good riddance. Plex has become malware already a while ago.
I hope that we can see Kodi and LibreELEC have similar hardware accelerated functionality soon.
Kodi already does, if you use the amazingfate repository for Ubuntu Jammy.