• Login
  • Register
  • Login Register
    Login
    Username/Email:
    Password:
    Or login with a social network below
  • Forum
  • Website
  • GitHub
  • Status
  • Translation
  • Features
  • Team
  • Rules
  • Help
  • Feeds
User Links
  • Login
  • Register
  • Login Register
    Login
    Username/Email:
    Password:
    Or login with a social network below

    Useful Links Forum Website GitHub Status Translation Features Team Rules Help Feeds
    Jellyfin Forum Support Troubleshooting Transcoding issues and hardware acceleration

     
    • 0 Vote(s) - 0 Average

    Transcoding issues and hardware acceleration

    Hardware acceleration doens't seem to work
    glassy
    Offline

    Junior Member

    Posts: 3
    Threads: 1
    Joined: 2025 Mar
    Reputation: 0
    #1
    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:

    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]


    Any ideas what could be wrong?
    TheDreadPirate
    Offline

    Community Moderator

    Posts: 15,374
    Threads: 10
    Joined: 2023 Jun
    Reputation: 460
    Country:United States
    #2
    2025-03-02, 05:35 PM
    Can you share your ffmpeg log via privatebin.net? One guess is that you have HEVC unchecked. Meaning you are CPU decoding videos that are 8-bit HEVC.

    You could also be audio transcoding and/or burning in subtitles. Both of which occur on the CPU.

    But your ffmpeg log would show us what is going on.

    Also, you are many versions behind.
    Jellyfin 10.10.7 (Docker)
    Ubuntu 24.04.2 LTS w/HWE
    Intel i3 12100
    Intel Arc A380
    OS drive - SK Hynix P41 1TB
    Storage
        4x WD Red Pro 6TB CMR in RAIDZ1
    [Image: GitHub%20Sponsors-grey?logo=github]
    glassy
    Offline

    Junior Member

    Posts: 3
    Threads: 1
    Joined: 2025 Mar
    Reputation: 0
    #3
    2025-03-02, 06:21 PM
    (2025-03-02, 05:35 PM)TheDreadPirate Wrote: Can you share your ffmpeg log via privatebin.net?  One guess is that you have HEVC unchecked.  Meaning you are CPU decoding videos that are 8-bit HEVC.

    You could also be audio transcoding and/or burning in subtitles.  Both of which occur on the CPU.

    But your ffmpeg log would show us what is going on.

    Also, you are many versions behind.


    Thanks,
    my ffmpeg logs are here https://privatebin.net/?520f273c6fe0576f#cpjpK1PhgBYEVT8ScuzVG1jtMpTJsvPrbwUUeAKUxK7


    As for the version, I thought I was only a minor version behind (9 vs 10)?
    TheDreadPirate
    Offline

    Community Moderator

    Posts: 15,374
    Threads: 10
    Joined: 2023 Jun
    Reputation: 460
    Country:United States
    #4
    2025-03-03, 12:37 PM
    The third digit is a minor version. Bug fixes and security patches only, usually. Each 10.# version is a fairly major version change for Jellyfin with new features, API changes, and dependency upgrades. For example, going from 10.9 to 10.10 comes with a major ffmpeg upgrade from 6.1 to 7.0.2. There were 4 additional 10.9.X releases (10.9.11) and we are up to 10.10.6.

    But the log you shared doesn't appear to match your screenshot. In your screenshot you checked HEVC 10-bit decoding (you should also have HEVC checked) but the ffmpeg log doesn't indicate that it is hardware decoding this video. Nor does it show you have tone mapping checked (NOT VPP tone mapping).
    Jellyfin 10.10.7 (Docker)
    Ubuntu 24.04.2 LTS w/HWE
    Intel i3 12100
    Intel Arc A380
    OS drive - SK Hynix P41 1TB
    Storage
        4x WD Red Pro 6TB CMR in RAIDZ1
    [Image: GitHub%20Sponsors-grey?logo=github]
    glassy
    Offline

    Junior Member

    Posts: 3
    Threads: 1
    Joined: 2025 Mar
    Reputation: 0
    #5
    2025-03-03, 10:23 PM
    (2025-03-03, 12:37 PM)TheDreadPirate Wrote: The third digit is a minor version.  Bug fixes and security patches only, usually.  Each 10.# version is a fairly major version change for Jellyfin with new features, API changes, and dependency upgrades.  For example, going from 10.9 to 10.10 comes with a major ffmpeg upgrade from 6.1 to 7.0.2.  There were 4 additional 10.9.X releases (10.9.11) and we are up to 10.10.6.

    But the log you shared doesn't appear to match your screenshot.  In your screenshot you checked HEVC 10-bit decoding (you should also have HEVC checked) but the ffmpeg log doesn't indicate that it is hardware decoding this video.  Nor does it show you have tone mapping checked (NOT VPP tone mapping).

    Hey, thanks, upgrading my jellyfin image to 10.10.6 seem to have done the trick! Only thing is now every time I switch a view (i.e. going from /dashboard to /dashboard/settings) I have to do a hard refresh. I can see in the logs that my token is invalid each time
    Code:
    jellyfin2  | [22:23:11] [INF] [22] Jellyfin.Api.Auth.CustomAuthenticationHandler: CustomAuthentication was not authenticated. Failure message: Invalid token.
    jellyfin2  | [22:23:11] [INF] [22] Jellyfin.Api.Auth.CustomAuthenticationHandler: AuthenticationScheme: CustomAuthentication was challenged.
    I doubt this is related to the transcoding I've issues but is it possible it is a known issue with this version?
    TheDreadPirate
    Offline

    Community Moderator

    Posts: 15,374
    Threads: 10
    Joined: 2023 Jun
    Reputation: 460
    Country:United States
    #6
    2025-03-04, 01:59 PM
    You probably need to clear your browser cache and you may need to purge old tokens in Dashboard > Devices. This will likely force you to log back in, creating a new token.
    Jellyfin 10.10.7 (Docker)
    Ubuntu 24.04.2 LTS w/HWE
    Intel i3 12100
    Intel Arc A380
    OS drive - SK Hynix P41 1TB
    Storage
        4x WD Red Pro 6TB CMR in RAIDZ1
    [Image: GitHub%20Sponsors-grey?logo=github]
    « Next Oldest | Next Newest »

    Users browsing this thread: 1 Guest(s)


    • View a Printable Version
    • Subscribe to this thread
    Forum Jump:

    Home · Team · Help · Contact
    © Designed by D&D - Powered by MyBB
    L


    Jellyfin

    The Free Software Media System

    Linear Mode
    Threaded Mode