Jellyfin Forum
SOLVED: RK3588 Hardware Acceleration - 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: SOLVED: RK3588 Hardware Acceleration (/t-solved-rk3588-hardware-acceleration)

Pages: 1 2 3


RK3588 Hardware Acceleration - wiguelito - 2024-08-31

Hi everyone,
I’m having trouble with Jellyfin transcoding in my Docker setup on an Orange Pi 5 Max. I’m seeing issues specifically with playback on Android devices and PC, although it initially seemed to work fine without transcoding.
Setup Details:
Device: Orange Pi 5 Max
Jellyfin Docker Image: jellyfin/jellyfin
Docker Compose Version: 3.8
Hardware Acceleration Devices:
/dev/dri
/dev/dma_heap
/dev/mali0
/dev/rga
/dev/mpp_service

When transcoding is enabled, playback fails on Android devices and PCs.
When transcoding is turned off, playback works fine on Android devices and PC but struggling.
I have the required driver like libmali-valhall-g610-g6p0-wayland-gbm_1.9-1_arm64.deb and  mali-g610-firmware rockchip-multimedia-config
my kernel is Linux 6.1.43-rockchip-rk3588
i attempted to write about this on the jellyfin discord troubleshooting but got no answer.

version: '3.8'
services:
jellyfin:
image: jellyfin/jellyfin
container_name: jellyfin
privileged: true
network_mode: host
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=America/Puerto_Rico
volumes:
- /srv/dev-disk-by-uuid-d24cd59e-767d-4797-bbf6-8bb3880daaab/Storage_and_Cache/Jellyfin_Config/configConfused-faceconfig
- /srv/dev-disk-by-uuid-d24cd59e-767d-4797-bbf6-8bb3880daaab/Storage_and_Cache/Jellyfin_CacheConfused-facecache
- /srv/dev-disk-by-uuid-86098e54-c23d-4309-9414-51ffe19bd9f4/Data/SeriesConfused-facedata/tvshows
- /srv/dev-disk-by-uuid-86098e54-c23d-4309-9414-51ffe19bd9f4/Data/PeliculasConfused-facedata/movies

ports:
- 8096:8096
- 7359:7359/udp #optional
- 1900:1900/udp #optional


RE: RK3588 Hardware Acceleration - wiguelito - 2024-08-31

devices:
- /dev/driConfused-facedev/dri
- /dev/dma_heapConfused-facedev/dma_heap
- /dev/mali0Confused-facedev/mali0
- /dev/rgaConfused-facedev/rga
- /dev/mpp_serviceConfused-facedev/mpp_service
- /dev/iepConfused-facedev/iep
- /dev/mpp-serviceConfused-facedev/mpp-service
- /dev/vpu_serviceConfused-facedev/vpu_service
- /dev/vpu-serviceConfused-facedev/vpu-service
- /dev/hevc_serviceConfused-facedev/hevc_service


RE: RK3588 Hardware Acceleration - wiguelito - 2024-08-31

- /dev/hevc-serviceConfused-facedev/hevc-service
- /dev/rkvdecConfused-facedev/rkvdec
- /dev/rkvencConfused-facedev/rkvenc
- /dev/vepuConfused-facedev/vepu
- /dev/h265eConfused-facedev/h265e


RE: RK3588 Hardware Acceleration - nyanmisaka - 2024-08-31

Please provide the ffmpeg logs otherwise no one will know what happened.


RE: RK3588 Hardware Acceleration - wiguelito - 2024-08-31

{"Protocol":0,"Id":"0f36565be677f08bbc085f49f48e3dcd","Path":"/data/movies/Musical/El Gran Showman (2017).mp4","EncoderPath":null,"EncoderProtocol":null,"Type":0,"Container":"mov,mp4,m4a,3gp,3g2,mj2","Size":7341658357,"Name":"El Gran Showman (2017)","IsRemote":false,"ETag":"5cfec00710f8747c0f48554b85d3b451","RunTimeTicks":62893120000,"ReadAtNativeFramerate":false,"IgnoreDts":false,"IgnoreIndex":false,"GenPtsInput":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":true,"IsInfiniteStream":false,"RequiresOpening":false,"OpenToken":null,"RequiresClosing":false,"LiveStreamId":null,"BufferMs":null,"RequiresLooping":false,"SupportsProbing":true,"VideoType":0,"IsoType":null,"Video3DFormat":null,"MediaStreams":[{"Codec":"av1","CodecTag":"av01","Language":"und","ColorRange":null,"ColorSpace":"bt709","ColorTransfer":"bt709","ColorPrimaries":"bt709","DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/90000","CodecTimeBase":null,"Title":null,"VideoRange":1,"VideoRangeType":1,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":null,"LocalizedDefault":null,"LocalizedForced":null,"LocalizedExternal":null,"LocalizedHearingImpaired":null,"DisplayTitle":"4K AV1 SDR","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":null,"BitRate":3035108,"BitDepth":8,"RefFrames":1,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":true,"IsForced":false,"IsHearingImpaired":false,"Height":2160,"Width":3840,"AverageFrameRate":23.976025,"RealFrameRate":23.976025,"Profile":"Main","Type":1,"AspectRatio":"16:9","Index":0,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":"yuv420p","Level":14,"IsAnamorphic":false},{"Codec":"dts","CodecTag":"mp4a","Language":"spa","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/48000","CodecTimeBase":null,"Title":"Castellano DTS 5.1","VideoRange":0,"VideoRangeType":0,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":null,"LocalizedDefault":"Default","LocalizedForced":null,"LocalizedExternal":"External","LocalizedHearingImpaired":null,"DisplayTitle":"Castellano DTS 5.1 - Spanish - Default","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":"5.1","BitRate":768000,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":6,"SampleRate":48000,"IsDefault":true,"IsForced":false,"IsHearingImpaired":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":"DTS","Type":0,"AspectRatio":null,"Index":1,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"ac3","CodecTag":"ac-3","Language":"spa","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/48000","CodecTimeBase":null,"Title":"Castellano AC3 5.1","VideoRange":0,"VideoRangeType":0,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":null,"LocalizedDefault":"Default","LocalizedForced":null,"LocalizedExternal":"External","LocalizedHearingImpaired":null,"DisplayTitle":"Castellano AC3 5.1 - Spanish - Dolby Digital","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":"5.1","BitRate":448000,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":6,"SampleRate":48000,"IsDefault":false,"IsForced":false,"IsHearingImpaired":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":0,"AspectRatio":null,"Index":2,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"ac3","CodecTag":"ac-3","Language":"spa","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/48000","CodecTimeBase":null,"Title":"Latino AC3 5.1","VideoRange":0,"VideoRangeType":0,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":null,"LocalizedDefault":"Default","LocalizedForced":null,"LocalizedExternal":"External","LocalizedHearingImpaired":null,"DisplayTitle":"Latino AC3 5.1 - Spanish - Dolby Digital","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":"5.1","BitRate":448000,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":6,"SampleRate":48000,"IsDefault":false,"IsForced":false,"IsHearingImpaired":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":0,"AspectRatio":null,"Index":3,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"truehd","CodecTag":"mlpa","Language":"eng","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/48000","CodecTimeBase":null,"Title":"English TrueHD 7.1","VideoRange":0,"VideoRangeType":0,"VideoDoViTitle":null,"AudioSpatialFormat":1,"LocalizedUndefined":null,"LocalizedDefault":"Default","LocalizedForced":null,"LocalizedExternal":"External","LocalizedHearingImpaired":null,"DisplayTitle":"English TrueHD 7.1","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":"7.1","BitRate":4572106,"BitDepth":24,"RefFrames":null,"PacketLength":null,"Channels":8,"SampleRate":48000,"IsDefault":false,"IsForced":false,"IsHearingImpaired":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":"Dolby TrueHD \u002B Dolby Atmos","Type":0,"AspectRatio":null,"Index":4,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"bin_data","CodecTag":"text","Language":"eng","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":0,"VideoRangeType":0,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":null,"LocalizedDefault":null,"LocalizedForced":null,"LocalizedExternal":null,"LocalizedHearingImpaired":null,"DisplayTitle":null,"NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":null,"BitRate":null,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":false,"IsForced":false,"IsHearingImpaired":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":4,"AspectRatio":null,"Index":5,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null}],"MediaAttachments":[],"Formats":[],"Bitrate":9338583,"Timestamp":null,"RequiredHttpHeaders":{},"TranscodingUrl":null,"TranscodingSubProtocol":0,"TranscodingContainer":null,"AnalyzeDurationMs":null,"DefaultAudioStreamIndex":null,"DefaultSubtitleStreamIndex":null}

/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -init_hw_device rkmpp=rk -hwaccel rkmpp -hwaccel_output_format drm_prime -noautorotate -i file:"/data/movies/Musical/El Gran Showman (2017).mp4" -noautoscale -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_rkmpp -b:v 6070216 -maxrate 6070216 -bufsize 12140432 -g:v:0 72 -keyint_min:v:0 72 -vf "setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_rkrga=format=nv12:afbc=1" -codec:a:0 libfdk_aac -ac 2 -ab 256000 -af "volume=2" -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 0 -hls_segment_filename "/cache/transcodes/523db5cf75a4020654ee872539bfedc3%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/cache/transcodes/523db5cf75a4020654ee872539bfedc3.m3u8"


ffmpeg version 6.0.1-Jellyfin Copyright © 2000-2023 the FFmpeg developers
built with gcc 12 (Debian 12.2.0-14)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=arm64 --cross-prefix=/usr/bin/aarch64-linux-gnu- --toolchain=hardened --enable-cross-compile --enable-rkmpp --enable-rkrga
libavutil 58. 2.100 / 58. 2.100
libavcodec 60. 3.100 / 60. 3.100
libavformat 60. 3.100 / 60. 3.100
libavdevice 60. 1.100 / 60. 1.100
libavfilter 9. 3.100 / 9. 3.100
libswscale 7. 1.100 / 7. 1.100
libswresample 4. 10.100 / 4. 10.100
libpostproc 57. 1.100 / 57. 1.100
[libdav1d @ 0x55a34422f0] libdav1d 1.4.3-0-ge9986de
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'fileConfused-facedata/movies/Musical/El Gran Showman (2017).mp4':
Metadata:
major_brand : mp42
minor_version : 512
compatible_brands: mp42av01dby1iso2mp41
creation_time : 2024-08-15T22:48:25.000000Z
encoder : HandBrake 1.8.2 2024081000
Duration: 01:44:49.31, start: 0.000000, bitrate: 9338 kb/s
Chapters:
Chapter #0:0: start 0.000000, end 201.910000
Metadata:
title : Chapter 1
Chapter #0:1: start 201.910000, end 695.904000
Metadata:
title : Chapter 2
Chapter #0:2: start 695.904000, end 982.106000
Metadata:
title : Chapter 3
Chapter #0:3: start 982.106000, end 1274.190000
Metadata:
title : Chapter 4
Chapter #0:4: start 1274.190000, end 1505.504000
Metadata:
title : Chapter 5
Chapter #0:5: start 1505.504000, end 1930.887000
Metadata:
title : Chapter 6
Chapter #0:6: start 1930.887000, end 2170.043000
Metadata:
title : Chapter 7
Chapter #0:7: start 2170.043000, end 2499.372000
Metadata:
title : Chapter 8
Chapter #0:8: start 2499.372000, end 2681.679000
Metadata:
title : Chapter 9
Chapter #0:9: start 2681.679000, end 2905.152000
Metadata:
title : Chapter 10
Chapter #0:10: start 2905.152000, end 3191.355000
Metadata:
title : Chapter 11
Chapter #0:11: start 3191.355000, end 3381.503000
Metadata:
title : Chapter 12
Chapter #0:12: start 3381.503000, end 3695.150000
Metadata:
title : Chapter 13
Chapter #0:13: start 3695.150000, end 4053.883000
Metadata:
title : Chapter 14
Chapter #0:14: start 4053.883000, end 4322.443000
Metadata:
title : Chapter 15
Chapter #0:15: start 4322.443000, end 4704.700000
Metadata:
title : Chapter 16
Chapter #0:16: start 4704.700000, end 4928.173000
Metadata:
title : Chapter 17
Chapter #0:17: start 4928.173000, end 5345.715000
Metadata:
title : Chapter 18
Chapter #0:18: start 5345.715000, end 5829.907000
Metadata:
title : Chapter 19
Chapter #0:19: start 5829.907000, end 6289.283000
Metadata:
title : Chapter 20
Stream #0:0[0x1](und): Video: av1 (Main) (av01 / 0x31307661), yuv420p(tv, bt709), 3840x2160, 3035 kb/s, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 90k tbn (default)
Metadata:
creation_time : 2024-08-15T22:48:25.000000Z
handler_name : VideoHandler
vendor_id : [0][0][0][0]
Stream #0:1[0x2](spa): Audio: dts (DTS) (mp4a / 0x6134706D), 48000 Hz, 5.1(side), fltp, 768 kb/s (default)
Metadata:
creation_time : 2024-08-15T22:48:25.000000Z
handler_name : Castellano DTS 5.1
vendor_id : [0][0][0][0]
Stream #0:2[0x3](spa): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side), fltp, 448 kb/s
Metadata:
creation_time : 2024-08-15T22:48:25.000000Z
handler_name : Castellano AC3 5.1
vendor_id : [0][0][0][0]
Side data:
audio service type: main
Stream #0:3[0x4](spa): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side), fltp, 448 kb/s
Metadata:
creation_time : 2024-08-15T22:48:25.000000Z
handler_name : Latino AC3 5.1
vendor_id : [0][0][0][0]
Side data:
audio service type: main
Stream #0:4[0x5](eng): Audio: truehd (Dolby TrueHD + Dolby Atmos) (mlpa / 0x61706C6D), 48000 Hz, 7.1, s32 (24 bit), 4572 kb/s
Metadata:
creation_time : 2024-08-15T22:48:25.000000Z
handler_name : English TrueHD 7.1
vendor_id : [0][0][0][0]
Stream #0:5[0x6](eng): Data: bin_data (text / 0x74786574)
Metadata:
creation_time : 2024-08-15T22:48:25.000000Z
handler_name : SubtitleHandler
[av1_rkmpp @ 0x55a349a2b0] Failed to init MPP context: -1
Stream mapping:
Stream #0:0 -> #0:0 (av1 (av1_rkmpp) -> h264 (h264_rkmpp))
Stream #0:1 -> #0:1 (dts (dca) -> aac (libfdk_aac))
Error while opening decoder for input stream #0:0 : Generic error in an external library


RE: RK3588 Hardware Acceleration - wiguelito - 2024-08-31

just in case https://pastebin.com/P2xkVUWn


RE: RK3588 Hardware Acceleration - wiguelito - 2024-09-01

i attempted to make an output file with the jellyfin ffmpeg and it works but the transcoding dosent.


RE: RK3588 Hardware Acceleration - wiguelito - 2024-09-01

This was the code used for the output

ffmpeg -i "/data/movies/Musical/El Gran Showman (2017).mp4" -c:v h264_rkmpp -c:a aac output.mp4


RE: RK3588 Hardware Acceleration - nyanmisaka - 2024-09-01

Where did you get the system image you are using? It may not have the av1d node enabled.


RE: RK3588 Hardware Acceleration - wiguelito - 2024-09-01

I got it from the jellyfin git
services:
jellyfin:
image: jellyfin/jellyfin
container_name: jellyfin
privileged: true
network_mode: host
restart: unless-stopped
environment: