2025-03-02, 04:29 PM
Hello All,
I've been having issues with transcoding during a recent re-install of jellyfin through docker. The issue appears on any player that I've tried so far (web player on localhost, jellyfin app on webOS).
My host system is running arch, on an intel 10700K and an 7800XT (with mesa drivers). Jellyfin version is 10.9.7
What I am noticing is extremely high cpu usage even in 1080p videos, and 4k videos are almost unplayable (lets 5s buffering for 1s of playback).
My docker-compose looks like this:
I've followed this guide (https://jellyfin.org/docs/general/administration/hardware-acceleration/amd/) and I can see the following outputs for the commands listed towards the virtualization section.
My configuration on the dashboard looks like this
![[Image: 3apaqyEwQcFp.png]](https://pasteboard.co/3apaqyEwQcFp.png)
Any ideas what could be wrong?
I've been having issues with transcoding during a recent re-install of jellyfin through docker. The issue appears on any player that I've tried so far (web player on localhost, jellyfin app on webOS).
My host system is running arch, on an intel 10700K and an 7800XT (with mesa drivers). Jellyfin version is 10.9.7
What I am noticing is extremely high cpu usage even in 1080p videos, and 4k videos are almost unplayable (lets 5s buffering for 1s of playback).
My docker-compose looks like this:
Code:
services:
jellyfin:
image: jellyfin/jellyfin
container_name: jellyfin
user: 1000:1000
network_mode: 'host'
security_opt:
- no-new-privileges:true
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
group_add:
- "989"
volumes:
- /home/iakovos/Git/config:/jellyfin-config
- /home/iakovos/Git/cache:/jellyfin-cache
- /mnt/MediaA/Series:/Series2
- /mnt/MediaA/Movies:/Movies2
- /mnt/one_tb_storage/home/iakovos/Downloads/Series:/Series
- /mnt/one_tb_storage/home/iakovos/Downloads/Movies:/Movies
- /mnt/one_tb_storage/home/iakovos/Downloads/Books:/Books
- /mnt/one_tb_storage/home/iakovos/Downloads/AudioBooks:/AudioBooks
restart: 'unless-stopped'
extra_hosts:
- "host.docker.internal:host-gateway"
I've followed this guide (https://jellyfin.org/docs/general/administration/hardware-acceleration/amd/) and I can see the following outputs for the commands listed towards the virtualization section.
Code:
sudo docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/vainfo --display drm --device /dev/dri/renderD128
Trying display: drm
libva info: VA-API version 1.21.0
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_21
amdgpu: os_same_file_description couldn't determine if two DRM fds reference the same file description.
If they do, bad things may happen!
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.21 (libva 2.21.0)
vainfo: Driver version: Mesa Gallium driver 24.0.8 for AMD Radeon RX 7800 XT (radeonsi, navi32, LLVM 16.0.6, DRM 3.59, 6.13.2-arch1-1)
vainfo: Supported profile and entrypoints
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointEncSlice
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLD
VAProfileAV1Profile0 : VAEntrypointVLD
VAProfileAV1Profile0 : VAEntrypointEncSlice
VAProfileNone : VAEntrypointVideoProc
Code:
sudo docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -v debug -init_hw_device vulkan
ffmpeg version 6.0.1-Jellyfin Copyright (c) 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-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=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
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
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with argument 'debug'.
Reading option '-init_hw_device' ... matched as option 'init_hw_device' (initialise hardware device) with argument 'vulkan'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument debug.
Applying option init_hw_device (initialise hardware device) with argument vulkan.
[AVHWDeviceContext @ 0x5bf1a6b33500] Supported validation layers:
[AVHWDeviceContext @ 0x5bf1a6b33500] VK_LAYER_MESA_device_select
[AVHWDeviceContext @ 0x5bf1a6b33500] VK_LAYER_MESA_overlay
[AVHWDeviceContext @ 0x5bf1a6b33500] GPU listing:
[AVHWDeviceContext @ 0x5bf1a6b33500] 0: AMD Radeon RX 7800 XT (RADV NAVI32) (discrete) (0x747e)
[AVHWDeviceContext @ 0x5bf1a6b33500] Device 0 selected: AMD Radeon RX 7800 XT (RADV NAVI32) (discrete) (0x747e)
[AVHWDeviceContext @ 0x5bf1a6b33500] Queue families:
[AVHWDeviceContext @ 0x5bf1a6b33500] 0: graphics compute transfer (queues: 1)
[AVHWDeviceContext @ 0x5bf1a6b33500] 1: compute transfer (queues: 4)
[AVHWDeviceContext @ 0x5bf1a6b33500] 2: sparse (queues: 1)
[AVHWDeviceContext @ 0x5bf1a6b33500] Using device extension VK_KHR_push_descriptor
[AVHWDeviceContext @ 0x5bf1a6b33500] Using device extension VK_KHR_sampler_ycbcr_conversion
[AVHWDeviceContext @ 0x5bf1a6b33500] Using device extension VK_KHR_synchronization2
[AVHWDeviceContext @ 0x5bf1a6b33500] Using device extension VK_KHR_external_memory_fd
[AVHWDeviceContext @ 0x5bf1a6b33500] Using device extension VK_EXT_external_memory_dma_buf
[AVHWDeviceContext @ 0x5bf1a6b33500] Using device extension VK_EXT_image_drm_format_modifier
[AVHWDeviceContext @ 0x5bf1a6b33500] Using device extension VK_KHR_external_semaphore_fd
[AVHWDeviceContext @ 0x5bf1a6b33500] Using device extension VK_EXT_external_memory_host
[AVHWDeviceContext @ 0x5bf1a6b33500] Using device: AMD Radeon RX 7800 XT (RADV NAVI32)
[AVHWDeviceContext @ 0x5bf1a6b33500] Alignments:
[AVHWDeviceContext @ 0x5bf1a6b33500] optimalBufferCopyRowPitchAlignment: 1
[AVHWDeviceContext @ 0x5bf1a6b33500] minMemoryMapAlignment: 4096
[AVHWDeviceContext @ 0x5bf1a6b33500] minImportedHostPointerAlignment: 4096
[AVHWDeviceContext @ 0x5bf1a6b33500] Using queue family 0 (queues: 1) for graphics
[AVHWDeviceContext @ 0x5bf1a6b33500] Using queue family 1 (queues: 4) for compute transfers
Successfully parsed a group of options.
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full help or, even better, run 'man ffmpeg'
exit status 1
My configuration on the dashboard looks like this
![[Image: 3apaqyEwQcFp.png]](https://pasteboard.co/3apaqyEwQcFp.png)
Any ideas what could be wrong?