Unsure if hardware acceleration is working on Intel

Hi. I’m pretty new to Ubuntu, Docker and all that. I’ve just set up my media server running Ubuntu Server, and installed Jellyfin using the LIO docker image.

I don’t believe that hardware acceleration is working. Looks like Ffmpeg is using 30–45% CPU.

The processor in my mini PC is an Intel Core i5-12450H so QSV should work, right?

Here’s my docker compose:

version: '3.5'

services:
    jellyfin:
        image: lscr.io/linuxserver/jellyfin:latest
        container_name: jellyfin
        environment:
              - PUID=1000
              - PGID=1000
              - TZ=America/Los_Angeles
              - DOCKER_MODS=linuxserver/mods:jellyfin-opencl-intel
              - JELLYFIN_PublishedServerUrl=192.168.50.XXX #optional
        volumes:
              - /REDACTED/appdata/jellyfin:/config
              - /mnt/video/data/media/tv:/data/tvshows
              - /mnt/video/data/media/movies:/data/movies
        devices:
              - /dev/dri:/dev/dri
        ports:
              - 8096:8096
              - 8920:8920 #optional
              - 7359:7359/udp #optional
              - 1900:1900/udp #optional
        restart: unless-stopped

In Jellyfin, I’ve just selected Intel QuickSync and left the defaults. What else do I need to do?

Thank you for the help.

ffmpeg uses a lot of CPU on my system even when hardware transcoding. You could use something like Tautilli which will show you a “hw” indicator if hardware transcoding is working. You could also use intel_gpu_top to check the status of your GPU when Plex is transcoding.

Thank you. I just installed intel-gpu-tools and checked. All the engines are at 0.00% :frowning:

Does the Plex web UI show that transcoding is happening when you test? I had forgotten that Plex itself shows if hardware transcoding is being used, no need for Tautulli. I start playing something and change the quality to force transcoding and see this in the Plex dashboard:

Video
SD (H.264) (hw)
SD (H264)—Transcode (hw)

And intel_gpu_top looks like this, with the “Render/3D” and “Video” bars going up and down:

intel-gpu-top: Intel Cometlake (Gen9) @ /dev/dri/card0 -  474/ 474 MHz;  62% RC6
    2.01/10.97 W;     3710 irqs/s

      IMC reads:     2074 MiB/s
     IMC writes:     1036 MiB/s

         ENGINES     BUSY                                       MI_SEMA MI_WAIT
       Render/3D   23.54% |████████▎                          |      8%      0%
         Blitter    0.00% |                                   |      0%      0%
           Video   27.61% |█████████▊                         |      0%      0%
    VideoEnhance    0.00% |                                   |      0%      0%

Are there any messages in the container log that say anything about the hardware device? Mine look like:

───────────────────────────────────────
      ██╗     ███████╗██╗ ██████╗
      ██║     ██╔════╝██║██╔═══██╗
      ██║     ███████╗██║██║   ██║
      ██║     ╚════██║██║██║   ██║
      ███████╗███████║██║╚██████╔╝
      ╚══════╝╚══════╝╚═╝ ╚═════╝
   Brought to you by linuxserver.io
───────────────────────────────────────
To support LSIO projects visit:
https://www.linuxserver.io/donate/
───────────────────────────────────────
GID/UID
───────────────────────────────────────
User UID:    1000
User GID:    1000
───────────────────────────────────────
Setting permissions on /transcode
**** Server already claimed ****
**** permissions for /dev/dri/renderD128 are good ****
**** permissions for /dev/dri/card0 are good ****
No update required
[custom-init] No custom files found, skipping...
Starting Plex Media Server. . . (you can ignore the libusb_init error)
[ls.io-init] done.
Critical: libusb_init failed

You also might want to check the Plex forum to see what Plex logs to check to see if you can find if Plex is reporting what’s wrong.

Sorry, all of this and I’m missing that you’re using Jellyfin and I’m talking Plex. I don’t use Jellyfin, so my last message probably won’t help.

I found this in the log:

───────────────────────────────────────

      ██╗     ███████╗██╗ ██████╗
      ██║     ██╔════╝██║██╔═══██╗
      ██║     ███████╗██║██║   ██║
      ██║     ╚════██║██║██║   ██║
      ███████╗███████║██║╚██████╔╝
      ╚══════╝╚══════╝╚═╝ ╚═════╝

   Brought to you by linuxserver.io
───────────────────────────────────────

To support the app dev(s) visit:
Jellyfin: https://opencollective.com/jellyfin

To support LSIO projects visit:
https://www.linuxserver.io/donate/

───────────────────────────────────────
GID/UID
───────────────────────────────────────

User UID:    1000
User GID:    1000
───────────────────────────────────────

**** permissions for /dev/dri/card0 are good ****
**** permissions for /dev/dri/renderD128 are good ****
**** Opencl-intel already installed ****

So it seems as though the hardware is seen.