Jellyfin Forum
Issues with HW transcoding - RK3588 - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+--- Thread: Issues with HW transcoding - RK3588 (/t-issues-with-hw-transcoding-rk3588)



Issues with HW transcoding - RK3588 - krimanas - 2025-01-02

Hi, I am having issues with getting HW transcoding to work. Some hints on what is causing the transcoding to fail would be great!

Error description: After enabling Hardware acceleration, and trying to play a HDR video on my Iphone, It fails with error
Code:
The AVPlayerItem instance has failed with error code -1008 and domain "NSURLErrorDomain".

Logs:

.txt   logfile.txt (Size: 22.42 KB / Downloads: 7)

Transcoding logs:

.txt   transcoding logs.txt (Size: 59.62 KB / Downloads: 7)

Docker Compose.yaml:
Code:
services:
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    network_mode: 'host'
    command: 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`
    volumes:
      - /srv/dev-disk-by-uuid-0c682871-98c7-43e2-a8aa-e930b5b3aed4/jellyfin/config:/config
      - /srv/dev-disk-by-uuid-0c682871-98c7-43e2-a8aa-e930b5b3aed4/jellyfin/cache:/cache
      - type: bind
        source:  /srv/dev-disk-by-uuid-0c682871-98c7-43e2-a8aa-e930b5b3aed4/Home_NAS/Media
        target: /media
    ports:
      - "8096:8096"
    restart: 'unless-stopped'

Setup:
HW:
  • SoC: Rockchip RK3588
    • CPU: Quad-core ARM Cortex-A76(up to 2.4GHz) and quad-core Cortex-A55 CPU (up to 1.8GHz)
    • GPU: Mali-G610 MP4, compatible with OpenGLES 1.1, 2.0, and 3.2, OpenCL up to 2.2 and Vulkan1.2
    • VPU: 8K@60fps H.265 and VP9 decoder, 8K@30fps H.264 decoder, 4K@60fps AV1 decoder, 8K@30fps H.264 and H.265 encoder
    • NPU: 6TOPs, supports INT4/INT8/INT16/FP16
  • RAM: 64-bit 4GB
SW:
  • OS: Debian 12 Core
  • Jellyfin 10.10.3 ran with Docker compose



RE: Issues with HW transcoding - RK3588 - TheDreadPirate - 2025-01-02

What kernel are you running?


RE: Issues with HW transcoding - RK3588 - krimanas - 2025-01-02

(2025-01-02, 01:38 PM)TheDreadPirate Wrote: What kernel are you running?

Debian-bookworm-core-6.1-arm64 6.1.57


RE: Issues with HW transcoding - RK3588 - TheDreadPirate - 2025-01-02

You need to be using the Rockchip BSP kernel.

https://jellyfin.org/docs/general/administration/hardware-acceleration/rockchip/#linux-setups


RE: Issues with HW transcoding - RK3588 - krimanas - 2025-01-02

(2025-01-02, 02:48 PM)TheDreadPirate Wrote: You need to be using the Rockchip BSP kernel.

https://jellyfin.org/docs/general/administration/hardware-acceleration/rockchip/#linux-setups

Ah, I think I am?
I am using rk3588-XYZ-debian-bookworm-core-6.1-arm64-YYYYMMDD.img.gz
From https://wiki.friendlyelec.com/wiki/index.php/CM3588#Official_image


RE: Issues with HW transcoding - RK3588 - TheDreadPirate - 2025-01-02

@nyanmisaka - Any ideas, Nyan?


RE: Issues with HW transcoding - RK3588 - kanron - 2025-01-04

To piggyback off of this, I also can't get hardware decode/encode to work on the Rockchip 3588.

My setup is as follows.
* Hardware
  * FriendlyElec CM3588 Plus with the NAS SDK (32 GB RAM)
  * 4x NVMe drives
* Software
  * Debian 12 base (installed from vendor-provided image, rk3588-eflasher-debian-bookworm-core-6.1-arm64-20241225.img.gz)
  * Kernel 6.1.57
  * ZFS on Linux
  * Openmediavault 7.4.17-2
  * omv-compose and omv-extras docker repo activated
  * Jellyfin docker container pulled through the "Add from examples" option in omv-compose

I have completed the steps outlined in the documentation, namely
* Checked for the existence of dma_heap, dri, mpp_service and rga in /dev on my host system -> OK
* Installed the ARM Mali OpenCL runtime (libmali) on host (v1.9-1-55611b0 since I'm neither on Ubuntu nor Armbian - I hope this was correct?
* Passed the relevant devices into the container (namely dma_heap, dri, mpp_service and rga, plus mali0 during troubleshooting attempts).

My docker-compose file looks as follows:

Code:
---
# https://hub.docker.com/r/linuxserver/jellyfin
services:
  jellyfin:
    image: lscr.io/linuxserver/jellyfin:latest
    container_name: jellyfin
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - JELLYFIN_PublishedServerUrl=omv-nas.fritz.box:8096/ #optional
    volumes:
      - CHANGE_TO_COMPOSE_DATA_PATH/jellyfin/library:/config
      - CHANGE_TO_COMPOSE_DATA_PATH/jellyfin/tvseries:/data/tvshows
      - CHANGE_TO_COMPOSE_DATA_PATH/jellyfin/movies:/data/movies
      - type: bind
        source: /zfs-nvme/media/Medien/Filme
        target: /movies
        read_only: true
      - type: bind
        source: /zfs-nvme/media/Medien/Serien
        target: /tvshows
        read_only: true
    devices:
      - "/dev/dma_heap:/dev/dma_heap"
      - "/dev/dri:/dev/dri"
      - "/dev/mpp_service:/dev/mpp_service"
      - "/dev/rga:/dev/rga"
      - "dev/mali0:/dev/mali0"
    ports:
      - 8096:8096
    restart: unless-stopped

I have attached the output of clinfo on the host (file 01...), the output of the test command inside the container (file 02...) and the corresponding logs from when the web player tells me playback had to be stopped due to a problem.

I've tried to troubleshoot this to the best of my abilities, using google and GPT alike, but so far, no dice. The ffmpeg log says something about a failed device initialisation:

Code:
[hevc_rkmpp @ 0x5591452cb0] Failed to init MPP context: -1
[vist#0:0/hevc @ 0x559140ef30] [dec:hevc_rkmpp @ 0x5591444190] Error while opening decoder: Generic error in an external library
[vost#0:0/h264_rkmpp @ 0x5591442ae0] Error initializing a simple filtergraph
Error opening output file /config/cache/transcodes/b809758c684ae89f5e1068c983d5ac77.m3u8.
Error opening output files: Generic error in an external library

The jellyfin log talks about an ffmpeg error code 187.

The output of the ffmpeg debug command inside the container looks to me like it might indicate some problem:

Code:
[AVHWDeviceContext @ 0x5599053460] Failed to get number of OpenCL platforms: -1001.
Device creation failed: -19.
Failed to set value 'opencl=ocl@rk' for option 'init_hw_device': No such device
Error parsing global options: No such device

Did I screw up the setup for my GPU passthrough to the container somehow? They are, however, showing up inside the container:

Code:
root@24a170bd6af7:/# ls /dev
core  dma_heap  dri  fd  full  mali0  mpp_service  mqueue  null  ptmx  pts  random  rga  shm  stderr  stdin  stdout  tty  urandom  zero

Any help would be very much appreciated.