Jellyfin Forum
SOLVED: HEVC playback not working (fatal playback error) - 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: HEVC playback not working (fatal playback error) (/t-solved-hevc-playback-not-working-fatal-playback-error)



HEVC playback not working (fatal playback error) - VanKurt - 2024-06-21

I am running Jellyfin 10.9.6 on Docker (Ubuntu Server on a Proxmox VM).
The iGPU (Intel N100) is (hopefully) correctly passed through to the VM.
In the Jellyfin settings I have enabled hardware acceleration via Intel QuickSync (QSV).

What works:
I can play back all kinds of videos, including H264 encoded material. No problem at all.

What does not work:
Playing back HEVC / H265 content does not work. It gives me the error: Playback failed due to a fatal player error.

In the logs I can find the following output:
Quote: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-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
[AVHWDeviceContext @ 0x6293aa6a30c0] No VA display found for any default device.
Device creation failed: -22.
Failed to set value 'vaapi=va:,kernel_driver=i915,driver=iHD' for option 'init_hw_device': Invalid argument
Error parsing global options: Invalid argument

I also have attached full log files from the docker container and the Web UI below.

Can anyone help me figure this out? Thank you :-)


RE: HEVC playback not working (fatal playback error) - TheDreadPirate - 2024-06-21

Can you show us your docker compose file?

Also, do you have IOMMU/VTd enabled in your BIOS?

Also, is it a VM or an LXC?


RE: HEVC playback not working (fatal playback error) - VanKurt - 2024-06-21

Aye,
here's the docker compose:
Code:
version: "3"
services:
  jellyfin:
    container_name: jellyfin
    image: jellyfin/jellyfin:latest
    network_mode: host
    environment:
      TZ: 'Europe/Berlin'
    ports:
      - 8096:8096
    volumes:
      - '/volume1/docker/jellyfin/config:/config'
      - '/volume1/docker/jellyfin/cache:/etc/cache'
      - '/volume1/videos/Movies:/Media/Movies'
      - '/volume1/videos/TVShows:/Media/TVShows'
      - '/volume1/music/Albums:/Media/Music'
    restart: unless-stopped

IOMMU/VTd should be enabled. Also it's a VM, not a LXC.


RE: HEVC playback not working (fatal playback error) - TheDreadPirate - 2024-06-21

You did not pass GPU into the container. Add this to your docker compose.

Code:
devices:
  - /dev/dri/:/dev/dri/



RE: HEVC playback not working (fatal playback error) - VanKurt - 2024-06-21

Yes, you were right. I just went through the docs once more. This is how my docker compose looks now:
Code:
version: "3"
services:
  jellyfin:
    container_name: jellyfin
    image: jellyfin/jellyfin:latest
    network_mode: host
    environment:
      TZ: 'Europe/Berlin'
    group_add:
      - "993"
    devices:
      - /dev/dri/renderD128:/dev/dri/renderD128
    ports:
      - 8096:8096
    volumes:
      - '/volume1/docker/jellyfin/config:/config'
      - '/volume1/docker/jellyfin/cache:/etc/cache'
      - '/volume1/videos/Movies:/Media/Movies'
      - '/volume1/videos/TVShows:/Media/TVShows'
      - '/volume1/music/Albums:/Media/Music'
    restart: unless-stopped

Now it's working perfectly. Thank you so much Grinning-face