Hardware acceleration for Jellyfin container

  • Hello,

    I am very new to OMV, and am just now setting up a box to serve as an NAS.

    My setup: 7.7.9-1 (Sandworm); Intel(R) N150; Linux 6.12.27+bpo-amd64.


    The problem I ran into has been described in several other old threads:

    Jellyfin (linuxserver.io docker container), while running fine out of the box was refusing to use hardware acceleration.


    What worked for me:

    sudo apt-get install firmware-linux

    and ...

    sudo apt-get install firmware-intel-graphics


    That finally allowed me to reach the hardware and get past the errors thrown by vainfo.


    Prior to that, I did a lot of things, some of which may not have been strictly necessary (listed below in no particular order):

    • since in my setup dockeruser is the designate for the container execution, I added this user to the "render" and "video" groups
    • in my docker-compose file, I added the render group (105 on my setup) using the group_add clause, and passed the devices to the container (as usual)...
    Code
    group_add:
          - "105" # render group
    devices:
          - /dev/dri:/dev/dri
    • Added the DOCKER_MODS to the environment, as required by the linuxserver container...
    Code
        environment:
          - PUID=${PUID}
          - PGID=${PGID}
          - TZ=${TZ}
          - DOCKER_MODS=linuxserver/mods:jellyfin-opencl-intel

    Hope this helps somebody.

    Cheers!

  • chente

    Approved the thread.
  • Hi all,


    I have the same hardware (Intel N150) on OMV 7 and am trying to get hardware transcoding to work. I've followed the advice in the thread, but I'm running into some issues getting the correct packages installed.


    To help me troubleshoot, could someone with a working setup on an Intel N100 or N150 please post the output of the following **two** commands?


    First, the package versions:


    Code
    apt-cache policy intel-media-va-driver-non-free firmware-intel-graphics linux-image-amd64


    And second, the output of `vainfo` to see what a successful result looks like on your system:

    Code
    vainfo


    This information would be a huge help in figuring out what's different about my setup.


    Thanks in advance for your help

  • - Hi everyone! I’m running OMV 7 (Debian 12) on a mini‑PC with an Intel N150. Hardware transcoding in Jellyfin finally works; here’s exactly what fixed it.

    - Install openmediavault-omvextras, it installs the latest kernel, then reboot.

    - Add a temporary Debian Trixie repo (only for the Intel media driver) and pull the required packages:


    Code
    echo 'deb http://deb.debian.org/debian trixie main contrib non-free non-free-firmware' \
    | sudo tee /etc/apt/sources.list.d/trixie.list
    Code
    sudo tee /etc/apt/preferences.d/zzz-intel-media-pin.pref <<'EOF'
    Package: *
    Pin: release n=trixie
    Pin-Priority: 100
    
    Package: intel-media-va-driver-non-free
    Pin: release n=trixie
    Pin-Priority: 990
    EOF


    Code
    sudo apt-get update
    sudo apt-get install -y firmware-linux firmware-intel-graphics
    sudo apt-get install -t trixie intel-media-va-driver-non-free
    sudo apt-get install -y vainfo
    vainfo

    vainfo # should now report va_openDriver() returns 0


    - Clean up the temporary repo files and refresh:


    Code
    sudo rm /etc/apt/sources.list.d/trixie.list
    sudo rm /etc/apt/preferences.d/zzz-intel-media-pin.pref
    sudo apt-get update
    sudo reboot


    - In Docker, just pass through /dev/dri. My compose snippet:



    - Jellyfin settings: Dashboard → Playback → choose Intel QuickSync (QSV), set VA-API device to `/dev/dri/renderD128`, enable the codecs you care about.

    - Test a transcode—Jellyfin logs now show VAAPI usage and the CPU load stays low. Tip for future upgrades: if Jellyfin ever loses `/dev/dri` permissions, run `stat -c '%g' /dev/dri/renderD128` and add that GID under group_add in compose.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!