Jellyfin Forum
SOLVED: Hardware acceleration on Unraid issues - 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: Hardware acceleration on Unraid issues (/t-solved-hardware-acceleration-on-unraid-issues)

Pages: 1 2


Hardware acceleration on Unraid issues - n8jadams - 2023-10-11

I have an Unraid machine, with an i7-7700k cpu.

I am running Jellyfin using Portainer and the following docker-compose.yml file:

Code:
version: "2.1"
services:
  jellyfin:
    image: jellyfin/jellyfin:latest
    container_name: jellyfin_official
    network_mode: "host"
    user: 99:100
    environment:
      - PUID=99
      - PGID=100
      - UMASK=000
      - TZ=America/Denver
    volumes:
      - /mnt/user/cloud-storage/apps/Jellyfin/:/media # Media
      - /mnt/user/cloud-storage/apps/Jellyfin-config:/config # Jellyfin files
    devices:
    - /dev/dri:/dev/dri
    ports:
      - 8096:8096
    restart: unless-stopped

As far as OS goes, I've tried adding
Code:
modprobe i915
to my /boot/config/go file, I've tried installing the "Intel GPU Top" app.

In the Jellyfin admin dashboard under playback, I've enabled "Intel QuickSync (QSV)" and have tried checking and unchecking a bunch of options. I'm sure there's an ideal setting for my cpu, but I'm not sure what it is. From my research, the best options are:

Checked "Enable hardware encoding" for: H264, HEVC, MPEG2, VC1, VP8, VP9, HEVC 10-bit, VP9 10-bit.
Checked "Prefer OS native DXVA or VA-API hardware decoders
Checked "Enable hardware encoding"
Checked "Enable Intel Low-Power H.264 hardware encoder"
Checked "Enable Intel Low-Power HEVC hardware encoder"
Checked "Allow encoding in HEVC format"
Everything else was default.

Generally, I've had good luck with the AndroidTV and iOS clients playing my videos. But the problem is on the web client.

My experience is, after a fresh reboot, either with modprobe added or Intel GPU Top app installed, the videos seem to play fine and the hardware acceleration seems to be working. But then later in the day, I'll go on and try to play a video and it will sit there for 5-10 minutes without actually playing anything, and then it will just start. This is only for the web client. The AndroidTV and iOS clients play the videos fine immediately.

Not sure if this is a bug or something is misconfigured.

Best I can do for logs is this, I have the above docker-compose.yml, the above Jellyfin settings, with the Intel GPU Top app installed:

Boot prelude log:
Code:
[09:37:54] [INF] [58] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app Jellyfin Web 10.8.11 playing Whistleblower. Stopped at 879 ms
[09:37:54] [INF] [53] Emby.Server.Implementations.HttpServer.WebSocketManager: WS 163.116.147.33 closed
[09:37:56] [INF] [53] Jellyfin.Server.Implementations.Users.UserManager: Authentication request for admin has succeeded.
[09:37:56] [INF] [53] Emby.Server.Implementations.Session.SessionManager: Current/Max sessions for user admin: 0/0
[09:37:56] [INF] [53] Emby.Server.Implementations.Session.SessionManager: Creating new access token for user 900f4da0-70a4-41f5-b18a-0411c93ee55d
[09:37:56] [INF] [83] Emby.Server.Implementations.HttpServer.WebSocketManager: WS 163.116.147.33 request
[09:38:10] [INF] [83] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for admin. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[09:38:10] [INF] [83] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile=Anonymous Profile, Path=/media/TV/The Office (US)/Season 6/The Office (US) - S06E26 - Whistleblower Bluray-1080p.mp4, AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) media:/videos/0ea35f7e-919a-bd95-fe54-530e9ebc816f/stream.mp4?MediaSourceId=0ea35f7e919abd95fe54530e9ebc816f&Static=true&VideoCodec=hevc&AudioCodec=aac&AudioStreamIndex=2&api_key=<token>&Tag=4df13c51ed77c888f05fbead0afce219
[09:40:44] [INF] [101] Emby.Server.Implementations.Session.SessionWebSocketListener: Sending ForceKeepAlive message to 1 inactive WebSockets.
[09:40:56] [INF] [144] Emby.Server.Implementations.Session.SessionWebSocketListener: Sending ForceKeepAlive message to 1 inactive WebSockets.
[09:41:08] [INF] [30] Emby.Server.Implementations.Session.SessionWebSocketListener: Lost 1 WebSockets.
[09:45:23] [INF] [101] Jellyfin.Api.Auth.CustomAuthenticationHandler: CustomAuthentication was not authenticated. Failure message: Invalid token.
[09:45:23] [INF] [101] Jellyfin.Api.Auth.CustomAuthenticationHandler: CustomAuthentication was not authenticated. Failure message: Invalid token.
[09:45:23] [INF] [101] Jellyfin.Api.Auth.CustomAuthenticationHandler: AuthenticationScheme: CustomAuthentication was challenged.
[09:45:24] [INF] [143] Jellyfin.Api.Auth.CustomAuthenticationHandler: CustomAuthentication was not authenticated. Failure message: Invalid token.
[09:45:24] [INF] [143] Jellyfin.Api.Auth.CustomAuthenticationHandler: CustomAuthentication was not authenticated. Failure message: Invalid token.
[09:45:24] [INF] [143] Jellyfin.Api.Auth.CustomAuthenticationHandler: AuthenticationScheme: CustomAuthentication was challenged.
[09:45:27] [INF] [138] Jellyfin.Api.Auth.CustomAuthenticationHandler: CustomAuthentication was not authenticated. Failure message: Invalid token.
[09:45:27] [INF] [138] Jellyfin.Api.Auth.CustomAuthenticationHandler: CustomAuthentication was not authenticated. Failure message: Invalid token.
[09:45:27] [INF] [138] Jellyfin.Api.Auth.CustomAuthenticationHandler: AuthenticationScheme: CustomAuthentication was challenged.
[09:45:31] [INF] [129] Jellyfin.Api.Auth.CustomAuthenticationHandler: CustomAuthentication was not authenticated. Failure message: Invalid token.
[09:45:31] [INF] [129] Jellyfin.Api.Auth.CustomAuthenticationHandler: CustomAuthentication was not authenticated. Failure message: Invalid token.
[09:45:31] [INF] [129] Jellyfin.Api.Auth.CustomAuthenticationHandler: AuthenticationScheme: CustomAuthentication was challenged.
[09:45:37] [INF] [129] Jellyfin.Api.Auth.CustomAuthenticationHandler: CustomAuthentication was not authenticated. Failure message: Invalid token.
[09:45:38] [INF] [129] Jellyfin.Server.Implementations.Users.UserManager: Authentication request for tv has succeeded.
[09:45:38] [INF] [129] Emby.Server.Implementations.Session.SessionManager: Current/Max sessions for user tv: 0/0
[09:45:38] [INF] [129] Emby.Server.Implementations.Session.SessionManager: Creating new access token for user b06b477a-2b32-4b0d-bb6e-e8dcc38cc9c7
[09:52:51] [INF] [42] Emby.Server.Implementations.HttpServer.WebSocketManager: WS 163.116.147.33 closed
[09:52:51] [INF] [44] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app Jellyfin Web 10.8.11 playing Whistleblower. Stopped at 6665 ms
[09:56:57] [INF] [122] Emby.Server.Implementations.HttpServer.WebSocketManager: WS 163.116.147.33 request
[10:03:19] [INF] [138] Jellyfin.Networking.Manager.NetworkManager: Defined LAN addresses : [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:03:19] [INF] [138] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions : []
[10:03:19] [INF] [138] Jellyfin.Networking.Manager.NetworkManager: Using LAN addresses: [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:03:21] [INF] [138] Jellyfin.Networking.Manager.NetworkManager: Defined LAN addresses : [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:03:21] [INF] [138] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions : []
[10:03:21] [INF] [138] Jellyfin.Networking.Manager.NetworkManager: Using LAN addresses: [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:03:22] [INF] [2] Main: Received a SIGTERM signal, shutting down
[10:03:22] [INF] [2] Main: Running query planner optimizations in the database... This might take a while
[10:03:22] [INF] [2] Emby.Server.Implementations.ApplicationHost: Disposing CoreAppHost
[10:03:22] [INF] [2] Emby.Server.Implementations.ApplicationHost: Disposing SchedulesDirect
[10:03:22] [INF] [2] Emby.Server.Implementations.ApplicationHost: Disposing ExternalPortForwarding
[10:03:22] [INF] [2] Emby.Server.Implementations.EntryPoints.ExternalPortForwarding: Stopping NAT discovery
[10:03:22] [INF] [2] Emby.Server.Implementations.ApplicationHost: Disposing EntryPoint
[10:03:22] [INF] [2] Emby.Server.Implementations.ApplicationHost: Disposing EmbyTV
[10:03:22] [INF] [2] Emby.Server.Implementations.ApplicationHost: Disposing NotificationEntryPoint
[10:03:22] [INF] [2] Emby.Server.Implementations.ApplicationHost: Disposing MusicBrainzAlbumProvider
[10:03:22] [INF] [2] Emby.Server.Implementations.ApplicationHost: Disposing UserDataChangeNotifier
[10:03:22] [INF] [2] Emby.Server.Implementations.ApplicationHost: Disposing RecordingNotifier
[10:03:22] [INF] [2] Emby.Server.Implementations.ApplicationHost: Disposing LibraryChangedNotifier
[10:03:22] [INF] [2] Emby.Server.Implementations.ApplicationHost: Disposing UdpServerEntryPoint
[10:03:22] [INF] [2] Emby.Server.Implementations.ApplicationHost: Disposing DlnaEntryPoint
[10:03:22] [INF] [2] Emby.Dlna.Main.DlnaEntryPoint: Disposing PlayToManager
[10:03:22] [INF] [2] Emby.Dlna.Main.DlnaEntryPoint: Disposing DeviceDiscovery
[10:03:22] [INF] [2] Emby.Dlna.Main.DlnaEntryPoint: Disposing SsdpCommunicationsServer
[10:03:22] [INF] [2] Emby.Dlna.Main.DlnaEntryPoint: SsdpCommunicationsServer disposing _BroadcastListenSocket
[10:03:22] [INF] [2] Emby.Dlna.Main.DlnaEntryPoint: SsdpCommunicationsServer Disposing 7 sendSockets
[10:03:22] [INF] [2] Emby.Dlna.Main.DlnaEntryPoint: SsdpCommunicationsServer disposing sendSocket from 0.0.0.0
[10:03:22] [INF] [2] Emby.Dlna.Main.DlnaEntryPoint: SsdpCommunicationsServer disposing sendSocket from 192.168.86.26
[10:03:22] [INF] [2] Emby.Dlna.Main.DlnaEntryPoint: SsdpCommunicationsServer disposing sendSocket from 172.24.0.1
[10:03:22] [INF] [2] Emby.Dlna.Main.DlnaEntryPoint: SsdpCommunicationsServer disposing sendSocket from 172.18.0.1
[10:03:22] [INF] [2] Emby.Dlna.Main.DlnaEntryPoint: SsdpCommunicationsServer disposing sendSocket from 172.17.0.1
[10:03:22] [INF] [2] Emby.Dlna.Main.DlnaEntryPoint: SsdpCommunicationsServer disposing sendSocket from 172.20.0.1
[10:03:22] [INF] [2] Emby.Dlna.Main.DlnaEntryPoint: SsdpCommunicationsServer disposing sendSocket from 127.0.0.1
[10:03:22] [INF] [2] Emby.Server.Implementations.ApplicationHost: Disposing EntryPoint
[10:03:22] [INF] [2] Emby.Server.Implementations.ApplicationHost: Disposing LibraryMonitorStartup
[10:03:22] [INF] [2] Emby.Server.Implementations.ApplicationHost: Disposing DeviceAccessEntryPoint
[10:08:53] [INF] [1] Main: Jellyfin version: 10.8.11
[10:08:53] [INF] [1] Main: Environment Variables: ["[JELLYFIN_CACHE_DIR, /cache]", "[JELLYFIN_LOG_DIR, /config/log]", "[JELLYFIN_WEB_DIR, /jellyfin/jellyfin-web]", "[JELLYFIN_CONFIG_DIR, /config/config]", "[DOTNET_SYSTEM_GLOBALIZATION_INVARIANT, 1]", "[JELLYFIN_FFMPEG, /usr/lib/jellyfin-ffmpeg/ffmpeg]", "[JELLYFIN_DATA_DIR, /config]"]
[10:08:53] [INF] [1] Main: Arguments: ["/jellyfin/jellyfin.dll"]
[10:08:53] [INF] [1] Main: Operating system: Linux
[10:08:53] [INF] [1] Main: Architecture: X64
[10:08:53] [INF] [1] Main: 64-Bit Process: True
[10:08:53] [INF] [1] Main: User Interactive: True
[10:08:53] [INF] [1] Main: Processor count: 8
[10:08:53] [INF] [1] Main: Program data path: /config
[10:08:53] [INF] [1] Main: Web resources path: /jellyfin/jellyfin-web
[10:08:53] [INF] [1] Main: Application directory: /jellyfin/
[10:08:54] [INF] [1] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Setting cache path: /cache
[10:08:54] [INF] [1] Emby.Server.Implementations.ApplicationHost: Loading assemblies
[10:08:54] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Defined LAN addresses : [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:08:54] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions : []
[10:08:54] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Using LAN addresses: [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:08:54] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Using bind addresses: []
[10:08:54] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Using bind exclusions: []
[10:08:56] [INF] [17] Jellyfin.Networking.Manager.NetworkManager: Defined LAN addresses : [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:08:56] [INF] [17] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions : []
[10:08:56] [INF] [17] Jellyfin.Networking.Manager.NetworkManager: Using LAN addresses: [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:08:59] [INF] [20] Jellyfin.Networking.Manager.NetworkManager: Defined LAN addresses : [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:08:59] [INF] [20] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions : []
[10:08:59] [INF] [20] Jellyfin.Networking.Manager.NetworkManager: Using LAN addresses: [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:09:01] [INF] [20] Jellyfin.Networking.Manager.NetworkManager: Defined LAN addresses : [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:09:01] [INF] [20] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions : []
[10:09:01] [INF] [20] Jellyfin.Networking.Manager.NetworkManager: Using LAN addresses: [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:09:03] [INF] [20] Jellyfin.Networking.Manager.NetworkManager: Defined LAN addresses : [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:09:03] [INF] [20] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions : []
[10:09:03] [INF] [20] Jellyfin.Networking.Manager.NetworkManager: Using LAN addresses: [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:09:05] [INF] [12] Jellyfin.Networking.Manager.NetworkManager: Defined LAN addresses : [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:09:05] [INF] [12] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions : []
[10:09:05] [INF] [12] Jellyfin.Networking.Manager.NetworkManager: Using LAN addresses: [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:09:07] [INF] [14] Jellyfin.Networking.Manager.NetworkManager: Defined LAN addresses : [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:09:07] [INF] [14] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions : []
[10:09:07] [INF] [14] Jellyfin.Networking.Manager.NetworkManager: Using LAN addresses: [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:09:09] [INF] [15] Jellyfin.Networking.Manager.NetworkManager: Defined LAN addresses : [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:09:09] [INF] [15] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions : []
[10:09:09] [INF] [15] Jellyfin.Networking.Manager.NetworkManager: Using LAN addresses: [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:09:11] [INF] [15] Jellyfin.Networking.Manager.NetworkManager: Defined LAN addresses : [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:09:11] [INF] [15] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions : []
[10:09:11] [INF] [15] Jellyfin.Networking.Manager.NetworkManager: Using LAN addresses: [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:09:13] [INF] [15] Jellyfin.Networking.Manager.NetworkManager: Defined LAN addresses : [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:09:13] [INF] [15] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions : []
[10:09:13] [INF] [15] Jellyfin.Networking.Manager.NetworkManager: Using LAN addresses: [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:09:15] [INF] [15] Jellyfin.Networking.Manager.NetworkManager: Defined LAN addresses : [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:09:15] [INF] [15] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions : []
[10:09:15] [INF] [15] Jellyfin.Networking.Manager.NetworkManager: Using LAN addresses: [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:09:17] [INF] [15] Jellyfin.Networking.Manager.NetworkManager: Defined LAN addresses : [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:09:17] [INF] [15] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions : []
[10:09:17] [INF] [15] Jellyfin.Networking.Manager.NetworkManager: Using LAN addresses: [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:09:19] [INF] [19] Jellyfin.Networking.Manager.NetworkManager: Defined LAN addresses : [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:09:19] [INF] [19] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions : []
[10:09:19] [INF] [19] Jellyfin.Networking.Manager.NetworkManager: Using LAN addresses: [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:09:21] [INF] [19] Jellyfin.Networking.Manager.NetworkManager: Defined LAN addresses : [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:09:21] [INF] [19] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions : []
[10:09:21] [INF] [19] Jellyfin.Networking.Manager.NetworkManager: Using LAN addresses: [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[10:09:22] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: TMDb 10.8.11.0
[10:09:22] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: Studio Images 10.8.11.0
[10:09:22] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: OMDb 10.8.11.0
[10:09:22] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: MusicBrainz 10.8.11.0
[10:09:22] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: AudioDB 10.8.11.0
[10:09:22] [INF] [1] Main: Kestrel listening on Any IP4 Address
[10:09:22] [WRN] [1] Microsoft.AspNetCore.DataProtection.Repositories.EphemeralXmlRepository: Using an in-memory repository. Keys will not be persisted to storage.
[10:09:22] [WRN] [1] Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager: Neither user profile nor HKLM registry available. Using an ephemeral key repository. Protected data will be unavailable when application exits.
[10:09:23] [WRN] [1] Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager: No XML encryptor configured. Key {5e7245c8-1c5a-4612-8048-596ed1945089} may be persisted to storage in unencrypted form.
[10:09:23] [INF] [1] Emby.Server.Implementations.ApplicationHost: Running startup tasks
[10:09:23] [INF] [1] Emby.Server.Implementations.ScheduledTasks.TaskManager: Daily trigger for Extract Chapter Images set to fire at 2023-10-12 02:00:00.000 -06:00, which is 15:50:36.5121671 from now.
[10:09:23] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Found ffmpeg version 5.1.3
[10:09:23] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available decoders: ["libdav1d", "av1", "av1_cuvid", "av1_qsv", "h264", "h264_qsv", "h264_cuvid", "hevc", "hevc_qsv", "hevc_cuvid", "mpeg2video", "mpeg2_qsv", "mpeg2_cuvid", "mpeg4", "mpeg4_cuvid", "msmpeg4", "vc1_qsv", "vc1_cuvid", "vp8", "libvpx", "vp8_cuvid", "vp8_qsv", "vp9", "libvpx-vp9", "vp9_cuvid", "vp9_qsv", "aac", "ac3", "dca", "flac", "mp3", "truehd"]
[10:09:23] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available encoders: ["libx264", "h264_amf", "h264_nvenc", "h264_qsv", "h264_v4l2m2m", "h264_vaapi", "libx265", "hevc_amf", "hevc_nvenc", "hevc_qsv", "hevc_vaapi", "mpeg4", "msmpeg4", "libvpx", "libvpx-vp9", "aac", "libfdk_aac", "ac3", "dca", "flac", "libmp3lame", "libopus", "truehd", "libvorbis", "srt"]
[10:09:23] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available filters: ["deinterlace_qsv", "deinterlace_vaapi", "hwupload_cuda", "hwupload_vaapi", "overlay_opencl", "overlay_qsv", "overlay_vaapi", "overlay_cuda", "procamp_vaapi", "scale_cuda", "scale_opencl", "scale_qsv", "scale_vaapi", "tonemap_cuda", "tonemap_opencl", "tonemap_vaapi", "vpp_qsv", "yadif_cuda", "zscale", "alphasrc"]
[10:09:24] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available hwaccel types: ["cuda", "vaapi", "qsv", "drm", "opencl", "vulkan"]
[10:09:24] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: FFmpeg: /usr/lib/jellyfin-ffmpeg/ffmpeg
[10:09:24] [INF] [1] Emby.Server.Implementations.ApplicationHost: ServerId: 6ee780510d4143bc85ded627f7ec7797
[10:09:24] [INF] [1] Emby.Server.Implementations.ApplicationHost: Executed all pre-startup entry points in 0:00:00.1115869
[10:09:24] [INF] [1] Emby.Server.Implementations.ApplicationHost: Core startup complete
[10:09:24] [INF] [1] Emby.Server.Implementations.ApplicationHost: Executed all post-startup entry points in 0:00:00.4170974
[10:09:24] [INF] [1] Main: Startup complete 0:00:31.1282591
[10:09:24] [INF] [20] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /media/Home Videos
[10:09:24] [INF] [19] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /media/Filmi
[10:09:25] [INF] [18] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /media/Movies
[10:09:26] [INF] [18] Emby.Server.Implementations.ScheduledTasks.TaskManager: StartupTrigger fired for task: Update Plugins
[10:09:26] [INF] [18] Emby.Server.Implementations.ScheduledTasks.TaskManager: Queuing task PluginUpdateTask
[10:09:26] [INF] [19] Emby.Server.Implementations.ScheduledTasks.TaskManager: Executing Update Plugins
[10:09:27] [INF] [17] Emby.Server.Implementations.ScheduledTasks.TaskManager: Update Plugins Completed after 0 minute(s) and 0 seconds
[10:09:27] [INF] [17] Emby.Server.Implementations.ScheduledTasks.TaskManager: ExecuteQueuedTasks
[10:09:31] [INF] [15] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /media/TV
[10:09:32] [INF] [19] Jellyfin.Server.Implementations.Users.UserManager: Authentication request for admin has succeeded.
[10:09:32] [INF] [19] Emby.Server.Implementations.Session.SessionManager: Current/Max sessions for user admin: 0/0
[10:09:32] [INF] [19] Emby.Server.Implementations.Session.SessionManager: Creating new access token for user 900f4da0-70a4-41f5-b18a-0411c93ee55d
[10:09:33] [WRN] [20] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'AccessSchedule' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[10:09:33] [WRN] [20] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'ActivityLog' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[10:09:33] [WRN] [20] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'CustomItemDisplayPreferences' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[10:09:33] [WRN] [20] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'DisplayPreferences' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[10:09:33] [WRN] [20] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'HomeSection' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[10:09:33] [WRN] [20] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'ImageInfo' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[10:09:33] [WRN] [20] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'ItemDisplayPreferences' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[10:09:33] [WRN] [20] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'Permission' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[10:09:33] [WRN] [20] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'Preference' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[10:09:33] [WRN] [20] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'ApiKey' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[10:09:33] [WRN] [20] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'Device' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[10:09:33] [WRN] [20] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'DeviceOptions' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[10:09:33] [WRN] [20] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'User' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[10:09:33] [INF] [14] Emby.Server.Implementations.HttpServer.WebSocketManager: WS 163.116.147.33 request
[10:09:52] [INF] [11] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /media/Music

And when I attempt to play a video in the web client:

Code:
[10:09:59] [INF] [30] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for admin. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[10:09:59] [INF] [30] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile=Anonymous Profile, Path=/media/TV/The Office (US)/Season 6/The Office (US) - S06E26 - Whistleblower Bluray-1080p.mp4, AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) media:/videos/0ea35f7e-919a-bd95-fe54-530e9ebc816f/stream.mp4?MediaSourceId=0ea35f7e919abd95fe54530e9ebc816f&Static=true&VideoCodec=hevc&AudioCodec=aac&AudioStreamIndex=2&api_key=<token>&Tag=4df13c51ed77c888f05fbead0afce219
[10:10:16] [INF] [18] Emby.Server.Implementations.HttpServer.WebSocketManager: WS 163.116.147.33 request

It just hangs for a looooong time.... maybe 5 minutes later or so it will start playing, but doesn't continue logging.

Finally, when it works in my iOS client:

Code:
[10:13:57] [INF] [3] Emby.Server.Implementations.Session.SessionWebSocketListener: Sending ForceKeepAlive message to 1 inactive WebSockets.
[10:14:09] [INF] [34] Emby.Server.Implementations.Session.SessionWebSocketListener: Sending ForceKeepAlive message to 1 inactive WebSockets.
[10:14:31] [INF] [34] Emby.Server.Implementations.HttpServer.WebSocketManager: WS 192.168.86.1 request
[10:14:38] [WRN] [38] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from <REDACTED_MY_URL>/Items/bd87b2d4d3d2ee520954f6399cbb82e2/Images/Primary?fillHeight=486&fillWidth=324&quality=96&tag=32ae4d75fcd916567fddfbbdfd082b2e to 192.168.86.1 in 0:00:00.5392351 with Status Code 200
[10:14:38] [WRN] [38] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from <REDACTED_MY_URL>/Items/556a0a953baad0f385ccbbcaa73ac839/Images/Primary?fillHeight=480&fillWidth=324&quality=96&tag=d8cd6350427d18574dd1468ee5efa509 to 192.168.86.1 in 0:00:00.549599 with Status Code 200
[10:14:39] [WRN] [49] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from <REDACTED_MY_URL>/Items/4f0dffa9121c9c04fd4ec9b3af630f73/Images/Primary?fillHeight=486&fillWidth=324&quality=96&tag=d26b813f6d8fff648fa398c42737476c to 192.168.86.1 in 0:00:00.6816036 with Status Code 200
[10:14:39] [WRN] [49] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from <REDACTED_MY_URL>/Items/6de7eea5765d6e24709afcace61cdfc2/Images/Primary?fillHeight=486&fillWidth=324&quality=96&tag=af34b58fac02b78cef930ed293affcf4 to 192.168.86.1 in 0:00:00.7164519 with Status Code 200
[10:14:39] [WRN] [36] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from <REDACTED_MY_URL>/Items/a93a948d46ebb822bb0e274a3ee61ef0/Images/Primary?fillHeight=486&fillWidth=324&quality=96&tag=be51d6b73d9a1a01b178210932f1a7b7 to 192.168.86.1 in 0:00:00.7820323 with Status Code 200
[10:14:39] [WRN] [46] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from <REDACTED_MY_URL>/Items/8131f7c588e01b10f4776360420e9731/Images/Primary?fillHeight=486&fillWidth=324&quality=96&tag=22abb7990388f88c75ee065e6db852a9 to 192.168.86.1 in 0:00:00.8257233 with Status Code 200
[10:14:39] [WRN] [35] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from <REDACTED_MY_URL>/Items/bf1d8125692b8eed256db72505b8b3e7/Images/Primary?fillHeight=486&fillWidth=324&quality=96&tag=7d4c649a12b230cc5bfe7b93b08a2bc3 to 192.168.86.1 in 0:00:00.9206894 with Status Code 200
[10:14:39] [WRN] [35] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from <REDACTED_MY_URL>/Items/ccee0795c0ab1a2de6f0ac53eba00457/Images/Primary?fillHeight=486&fillWidth=324&quality=96&tag=0474deb419720dbfeb5f9bf36003a1cb to 192.168.86.1 in 0:00:00.9711228 with Status Code 200
[10:14:39] [WRN] [41] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from <REDACTED_MY_URL>/Items/2f30cfb5f9c680567b9e6f579f59719d/Images/Primary?fillHeight=442&fillWidth=324&quality=96&tag=6e66a1722f7d183de1c568d57d9bae4b to 192.168.86.1 in 0:00:01.0111329 with Status Code 200
[10:14:39] [WRN] [46] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from <REDACTED_MY_URL>/Items/a7395d471b20c85a9e1bde117c1ba25c/Images/Primary?fillHeight=486&fillWidth=324&quality=96&tag=17bc4005b3e31a823a686f6dd22cd286 to 192.168.86.1 in 0:00:01.0363826 with Status Code 200
[10:14:39] [WRN] [41] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from <REDACTED_MY_URL>/Items/412740cd6b249619a1038519915bbb3f/Images/Primary?fillHeight=486&fillWidth=324&quality=96&tag=ea21f6959b884e1b2e2f71364c8f3575 to 192.168.86.1 in 0:00:01.0464396 with Status Code 200
[10:14:39] [WRN] [46] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from <REDACTED_MY_URL>/Items/f52d8443efeef8e0bb08ace7cc68fa82/Images/Primary?fillHeight=486&fillWidth=324&quality=96&tag=2c53f05233baac0d2947d7cb7acdbba4 to 192.168.86.1 in 0:00:01.0842303 with Status Code 200
[10:14:39] [WRN] [35] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from <REDACTED_MY_URL>/Items/799212bce5878c8a9638c20e9b9c8324/Images/Primary?fillHeight=486&fillWidth=324&quality=96&tag=e64ad323412932e1883d4139714ab35e to 192.168.86.1 in 0:00:01.1406142 with Status Code 200
[10:14:39] [WRN] [35] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from <REDACTED_MY_URL>/Items/9e8e56a614e617221740efafec8e4277/Images/Primary?fillHeight=486&fillWidth=324&quality=96&tag=abd46a6a2292a5e7d72b80d768fdb779 to 192.168.86.1 in 0:00:01.1499697 with Status Code 200
[10:14:39] [WRN] [33] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from <REDACTED_MY_URL>/Items/427c5091afb1aba30ff605ad7847bb5e/Images/Primary?fillHeight=486&fillWidth=324&quality=96&tag=5de8dc228d1ace9ac108dd1edaaae06a to 192.168.86.1 in 0:00:01.190623 with Status Code 200
[10:14:39] [WRN] [50] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from <REDACTED_MY_URL>/Items/1e4a976e86047d2bdb342fc2833c0fe3/Images/Primary?fillHeight=486&fillWidth=324&quality=96&tag=b870c985676a71066c86073796405a1c to 192.168.86.1 in 0:00:01.2352712 with Status Code 200
[10:14:39] [WRN] [36] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from <REDACTED_MY_URL>/Items/24ddee1b3ff88912bb4acb1a401caf8c/Images/Primary?fillHeight=486&fillWidth=324&quality=96&tag=a0b82c6bcb1f62f305110216a5094f19 to 192.168.86.1 in 0:00:01.4134923 with Status Code 200
[10:14:49] [INF] [41] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for tv. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[10:14:49] [INF] [41] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile=Expo iOS fMP4 Video Profile, Path=/media/TV/The Office (US)/Season 6/The Office (US) - S06E26 - Whistleblower Bluray-1080p.mp4, AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=Transcode, TranscodeReason=SubtitleCodecNotSupported ) media:/videos/0ea35f7e-919a-bd95-fe54-530e9ebc816f/master.m3u8?MediaSourceId=0ea35f7e919abd95fe54530e9ebc816f&VideoCodec=hevc,h264,hevc&AudioCodec=aac&AudioStreamIndex=2&SubtitleStreamIndex=0&VideoBitrate=139775999&AudioBitrate=224001&AudioSampleRate=48000&MaxFramerate=23.976025&api_key=<token>&SubtitleMethod=Hls&TranscodingMaxAudioChannels=6&RequireAvc=false&Tag=4df13c51ed77c888f05fbead0afce219&SegmentContainer=mp4&MinSegments=2&BreakOnNonKeyFrames=True&hevc-level=120&hevc-videobitdepth=10&hevc-profile=main10&hevc-audiochannels=6&aac-profile=lc&hevc-deinterlace=true&TranscodeReasons=SubtitleCodecNotSupported
[10:14:50] [INF] [48] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[10:14:50] [INF] [48] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -fflags +genpts  -i file:"/media/TV/The Office (US)/Season 6/The Office (US) - S06E26 - Whistleblower Bluray-1080p.mp4" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 copy -tag:v:0 hvc1 -bsf:v hevc_mp4toannexb -start_at_zero -codec:a:0 copy -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 6 -hls_segment_type fmp4 -hls_fmp4_init_filename "1cec2338337ff53a602134d0754542d0-1.mp4" -start_number 0 -hls_segment_filename "/config/transcodes/1cec2338337ff53a602134d0754542d0%d.mp4" -hls_playlist_type vod -hls_list_size 0 -y "/config/transcodes/1cec2338337ff53a602134d0754542d0.m3u8"

...and it continues with normal looking logs...

Can anybody here help me?

EDIT: Added logs.
EDIT 2: Redacted site url
EDIT 3: Formatting


RE: Hardware acceleration on Unraid issues - TheDreadPirate - 2023-10-11

Do you have the container running directly on Unraid? Or in another OS plus the container?


RE: Hardware acceleration on Unraid issues - n8jadams - 2023-10-11

I believe it's running directly on Unraid. Maybe there's some gotcha with using Portainer, but I can see the
Code:
jellyfin_official
container running from the Docker menu on Unraid and when running
Code:
$ docker container ls



RE: Hardware acceleration on Unraid issues - bitmap - 2023-10-11

For the 7700k, I would uncheck both LPE options as I don't believe they're supported at all. I would also uncheck HEVC encoding because that processor is not particularly capable of HEVC encoding and you'll rarely find clients that request it anyway.

For codec support, I'll have to see if I can find the matrix that TheDreadPirate pointed me towards (I think on Wikipedia) at one point, but there's probably some of those that your processor isn't compatible with. I don't think that's the issue here, but proper config now will save headaches later.

Seems like QSV just isn't configured properly. I like to specify the card directly on my compose file with both render and card calls, but you didn't necessarily have to. It gives me specificity of what device I'm passing into the container and specificity of what I can use later inside the container. Also used to be the only way I could get it to work, so...old habits die hard...

Code:
devices:
    - /dev/dri/renderD128:/dev/dri/renderD128
    - /dev/dri/card0:/dev/dri/card0

You should also ensure that the UID you've specified as owning this container has access to the groups that own the devices you're passing in. Generally they're render and video but I'm not sure on Unraid.

I'm just kind of re-hashing basic steps from the docker HWA guide that seem to trip people up a lot.

https://jellyfin.org/docs/general/administration/hardware-acceleration/intel#configure-with-linux-virtualization

An ffmpeg log of unsuccessful, as well as successful transcoding would help. Probably on pastebin or sourcebin (dunno the difference, TDP recommended the latter so maybe they've got more insight).

EDIT: Also, why no cache directory mounted?


RE: Hardware acceleration on Unraid issues - n8jadams - 2023-10-11

So I wonder if you're onto something with the permissions...

Code:
# From my unraid terminal as root
# ls -lart /dev/dri
total 0
drwxrwxrwx  2 root root        80 Oct 11 09:05 by-path/
drwxrwxrwx  3 root root       100 Oct 11 09:05 ./
crwxrwxrwx  1 root video 226, 128 Oct 11 09:05 renderD128
crwxrwxrwx  1 root video 226,   0 Oct 11 09:05 card0
drwxr-xr-x 16 root root      3360 Oct 11 09:08 ../

So I can see that the
Code:
video
usergroup owns /dev/renderD128 and /dev/card0, so I ran

Code:
# getent group video | cut -d: -f3
18

and I adjusted my docker-compose.yml accordingly:

Code:
version: '3'
services:
  jellyfin:
    image: jellyfin/jellyfin:latest
    container_name: jellyfin_official
    user: 99:100
    group_add:
      - "18" # output from `getent group video | cut -d: -f3` command, which ls -lart /dev/dri on Unraid gave for the devices
    environment:
      - PUID=99
      - PGID=100
      - UMASK=000
      - TZ=America/Denver
    network_mode: 'host'
    volumes:
      - /mnt/user/cloud-storage/apps/Jellyfin/media:/media # Media
      - /mnt/user/cloud-storage/apps/Jellyfin/config:/config # Jellyfin files
      - /mnt/user/cloud-storage/apps/Jellyfin/cache:/cache # Jellyfin cache
    devices:
     - /dev/dri/renderD128:/dev/dri/renderD128
     - /dev/dri/card0:/dev/dri/card0
    ports:
      - 8096:8096
    restart: unless-stopped

Interestingly, these commands seem to work, indicating that there is hardware acceleration getting to Jellyfin in Docker (running again as root from Unraid)

Code:
# docker exec -it jellyfin_official /usr/lib/jellyfin-ffmpeg/vainfo
Trying display: drm
libva info: VA-API version 1.19.0
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_19
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.19 (libva 2.19.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 23.3.2 (95dc859)
vainfo: Supported profile and entrypoints
      VAProfileNone                   : VAEntrypointVideoProc
      VAProfileNone                   : VAEntrypointStats
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Simple            : VAEntrypointEncSlice
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointFEI
      VAProfileH264Main               : VAEntrypointEncSliceLP
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointFEI
      VAProfileH264High               : VAEntrypointEncSliceLP
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointEncPicture
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: VAEntrypointFEI
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
      VAProfileVP8Version0_3          : VAEntrypointVLD
      VAProfileVP8Version0_3          : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointFEI
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileHEVCMain10             : VAEntrypointEncSlice
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileVP9Profile2            : VAEntrypointVLD

and

Code:
# docker exec -it jellyfin_official /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va -init_hw_device opencl@va
ffmpeg version 5.1.3-Jellyfin Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 10 (Debian 10.2.1-6)
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --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-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libsvtav1 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
  libavutil      57. 28.100 / 57. 28.100
  libavcodec     59. 37.100 / 59. 37.100
  libavformat    59. 27.100 / 59. 27.100
  libavdevice    59.  7.100 / 59.  7.100
  libavfilter     8. 44.100 /  8. 44.100
  libswscale      6.  7.100 /  6.  7.100
  libswresample   4.  7.100 /  4.  7.100
  libpostproc    56.  6.100 / 56.  6.100
[AVHWDeviceContext @ 0x55c1f30a2d40] Trying to use DRM render node for device 0.
[AVHWDeviceContext @ 0x55c1f30a2d40] libva: VA-API version 1.19.0
[AVHWDeviceContext @ 0x55c1f30a2d40] libva: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
[AVHWDeviceContext @ 0x55c1f30a2d40] libva: Found init function __vaDriverInit_1_19
[AVHWDeviceContext @ 0x55c1f30a2d40] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x55c1f30a2d40] Initialised VAAPI connection: version 1.19
[AVHWDeviceContext @ 0x55c1f30a2d40] VAAPI driver: Intel iHD driver for Intel(R) Gen Graphics - 23.3.2 (95dc859).
[AVHWDeviceContext @ 0x55c1f30a2d40] Driver not found in known nonstandard list, using standard behaviour.
[AVHWDeviceContext @ 0x55c1f30c6040] 0.0: Intel(R) OpenCL HD Graphics / Intel(R) HD Graphics 630 [0x5912]
[AVHWDeviceContext @ 0x55c1f30c6040] Intel QSV to OpenCL mapping function found (clCreateFromVA_APIMediaSurfaceINTEL).
[AVHWDeviceContext @ 0x55c1f30c6040] Intel QSV in OpenCL acquire function found (clEnqueueAcquireVA_APIMediaSurfacesINTEL).
[AVHWDeviceContext @ 0x55c1f30c6040] Intel QSV in OpenCL release function found (clEnqueueReleaseVA_APIMediaSurfacesINTEL).
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'

In the Jellyfin admin video playback settings:
Checked "Enable hardware encoding" for: H264, MPEG2, VC1, VP8, VP9, VP9 10-bit.
Checked "Prefer OS native DXVA or VA-API hardware decoders
Checked "Enable hardware encoding"
Unchecked "Enable Intel Low-Power H.264 hardware encoder"
Unchecked "Enable Intel Low-Power HEVC hardware encoder"
Unhecked "Allow encoding in HEVC format"
Everything else was default.

Unfortunately the same thing is happening. The video just doesn't start playing for a very long time:

Code:
[12:27:25] [INF] [12] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for admin. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[12:27:25] [INF] [12] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile=Anonymous Profile, Path=/media/TV/The Office (US)/Season 6/The Office (US) - S06E26 - Whistleblower Bluray-1080p.mp4, AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) media:/videos/0ea35f7e-919a-bd95-fe54-530e9ebc816f/stream.mp4?MediaSourceId=0ea35f7e919abd95fe54530e9ebc816f&Static=true&VideoCodec=hevc&AudioCodec=aac&AudioStreamIndex=2&api_key=<token>&Tag=4df13c51ed77c888f05fbead0afce219
[12:27:26] [INF] [40] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -fflags +genpts  -i file:"/media/TV/The Office (US)/Season 6/The Office (US) - S06E26 - Whistleblower Bluray-1080p.mp4" -map 0:0 -map 0:1 -map -0:s -codec:v:0 copy -map_metadata -1 -map_chapters -1 -threads 0 -codec:a:0 copy -f mp4 -movflags frag_keyframe+empty_moov -y "/config/transcodes/98073f0de38ebdb5a4006681b0f4f05e.mp4"
[12:27:27] [WRN] [16] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from <REDACTED_MY_URL>/Videos/0ea35f7e919abd95fe54530e9ebc816f/stream.mp4 to 163.116.147.7 in 0:00:01.22703 with Status Code 200
[12:27:27] [WRN] [41] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from <REDACTED_MY_URL>/Sessions/Playing to 163.116.147.33 in 0:00:01.1664658 with Status Code 204
[12:27:28] [INF] [26] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0



RE: Hardware acceleration on Unraid issues - TheDreadPirate - 2023-10-11

"Ffmpeg exited with code 0" means it ran fine and either finished or was commanded to stop. Assuming the latter since it exited 1 second after starting.

Can you share your ffmpeg log with us?


RE: Hardware acceleration on Unraid issues - n8jadams - 2023-10-11

How do I get the ffmpeg log?


RE: Hardware acceleration on Unraid issues - TheDreadPirate - 2023-10-11

Its in the same directory as the logs you've been posting here. Names start with Ffmpeg.Transcode-<date>


RE: Hardware acceleration on Unraid issues - n8jadams - 2023-10-11

For whatever reason there is no ffmpeg log when it's failing on the web client. I might have mistakenly included that ffmp It must not recognize that the file needs to be transcoded. Confused-face

As for a successful transcode (which appears to be happening on the iOS client)

Code:
/Videos/0ea35f7e919abd95fe54530e9ebc816f/stream.mp4

{"Protocol":0,"Id":"0ea35f7e919abd95fe54530e9ebc816f","Path":"/media/TV/The Office (US)/Season 6/The Office (US) - S06E26 - Whistleblower Bluray-1080p.mp4","EncoderPath":null,"EncoderProtocol":null,"Type":0,"Container":"mov,mp4,m4a,3gp,3g2,mj2","Size":370433841,"Name":"The Office (US) - S06E26 - Whistleblower Bluray-1080p","IsRemote":false,"ETag":"4df13c51ed77c888f05fbead0afce219","RunTimeTicks":13285860000,"ReadAtNativeFramerate":false,"IgnoreDts":false,"IgnoreIndex":false,"GenPtsInput":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":true,"IsInfiniteStream":false,"RequiresOpening":false,"OpenToken":null,"RequiresClosing":false,"LiveStreamId":null,"BufferMs":null,"RequiresLooping":false,"SupportsProbing":true,"VideoType":0,"IsoType":null,"Video3DFormat":null,"MediaStreams":[{"Codec":"subrip","CodecTag":null,"Language":"eng","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":null,"VideoRangeType":null,"VideoDoViTitle":null,"LocalizedUndefined":"Undefined","LocalizedDefault":"Default","LocalizedForced":"Forced","LocalizedExternal":"External","DisplayTitle":"Eng - SUBRIP - External","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":null,"BitRate":null,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":false,"IsForced":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":2,"AspectRatio":null,"Index":0,"Score":null,"IsExternal":true,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":true,"SupportsExternalStream":true,"Path":"/media/TV/The Office (US)/Season 6/The Office (US) - S06E26 - Whistleblower Bluray-1080p.en.srt","PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"hevc","CodecTag":"hev1","Language":"und","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/24000","CodecTimeBase":null,"Title":null,"VideoRange":"SDR","VideoRangeType":"SDR","VideoDoViTitle":null,"LocalizedUndefined":null,"LocalizedDefault":null,"LocalizedForced":null,"LocalizedExternal":null,"DisplayTitle":"1080p HEVC SDR","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":null,"BitRate":1999699,"BitDepth":10,"RefFrames":1,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":true,"IsForced":false,"Height":1080,"Width":1920,"AverageFrameRate":23.976025,"RealFrameRate":23.976025,"Profile":"Main 10","Type":1,"AspectRatio":"16:9","Index":1,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":"yuv420p10le","Level":120,"IsAnamorphic":null},{"Codec":"aac","CodecTag":"mp4a","Language":"eng","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/48000","CodecTimeBase":null,"Title":null,"VideoRange":null,"VideoRangeType":null,"VideoDoViTitle":null,"LocalizedUndefined":null,"LocalizedDefault":null,"LocalizedForced":null,"LocalizedExternal":null,"DisplayTitle":"Eng - AAC - 5.1 - Default","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":"5.1","BitRate":224001,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":6,"SampleRate":48000,"IsDefault":true,"IsForced":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":"LC","Type":0,"AspectRatio":null,"Index":2,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null}],"MediaAttachments":[],"Formats":[],"Bitrate":2230544,"Timestamp":null,"RequiredHttpHeaders":{},"TranscodingUrl":null,"TranscodingSubProtocol":null,"TranscodingContainer":null,"AnalyzeDurationMs":null,"DefaultAudioStreamIndex":null,"DefaultSubtitleStreamIndex":null}

/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -fflags +genpts  -i file:"/media/TV/The Office (US)/Season 6/The Office (US) - S06E26 - Whistleblower Bluray-1080p.mp4" -map 0:0 -map 0:1 -map -0:s -codec:v:0 copy -map_metadata -1 -map_chapters -1 -threads 0 -codec:a:0 copy -f mp4 -movflags frag_keyframe+empty_moov -y "/config/transcodes/98073f0de38ebdb5a4006681b0f4f05e.mp4"


ffmpeg version 5.1.3-Jellyfin Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 10 (Debian 10.2.1-6)
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --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-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libsvtav1 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
  libavutil      57. 28.100 / 57. 28.100
  libavcodec     59. 37.100 / 59. 37.100
  libavformat    59. 27.100 / 59. 27.100
  libavdevice    59.  7.100 / 59.  7.100
  libavfilter     8. 44.100 /  8. 44.100
  libswscale      6.  7.100 /  6.  7.100
  libswresample   4.  7.100 /  4.  7.100
  libpostproc    56.  6.100 / 56.  6.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file:/media/TV/The Office (US)/Season 6/The Office (US) - S06E26 - Whistleblower Bluray-1080p.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2mp41
    creation_time   : 2021-11-23T02:32:09.000000Z
    title           : The.Office.S06E26.1080p.BluRay.x265-RARBG
    encoder         : Lavf58.20.100
    comment         : The.Office.S06E26.1080p.BluRay.x265-RARBG
  Duration: 00:22:08.59, start: 0.000000, bitrate: 2230 kb/s
  Stream #0:0[0x1](und): Video: hevc (Main 10) (hev1 / 0x31766568), yuv420p10le(tv), 1920x1080 [SAR 1:1 DAR 16:9], 1999 kb/s, 23.98 fps, 23.98 tbr, 24k tbn (default)
    Metadata:
      creation_time   : 2021-11-23T02:32:09.000000Z
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 224 kb/s (default)
    Metadata:
      creation_time   : 2021-11-23T02:32:09.000000Z
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
Output #0, mp4, to '/config/transcodes/98073f0de38ebdb5a4006681b0f4f05e.mp4':
  Metadata:
    encoder         : Lavf59.27.100
  Stream #0:0: Video: hevc (Main 10) (hev1 / 0x31766568), yuv420p10le(tv), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 1999 kb/s, 23.98 fps, 23.98 tbr, 24k tbn (default)
  Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 224 kb/s (default)
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=    1 fps=0.0 q=-1.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=N/A    
frame= 4468 fps=0.0 q=-1.0 size=   56064kB time=00:03:06.28 bitrate=2465.5kbits/s speed= 371x    
frame= 9695 fps=9674 q=-1.0 size=  119296kB time=00:06:44.28 bitrate=2417.3kbits/s speed= 403x    
frame=16439 fps=10942 q=-1.0 size=  193024kB time=00:11:25.56 bitrate=2306.5kbits/s speed= 456x    
frame=23988 fps=11976 q=-1.0 size=  279296kB time=00:16:40.40 bitrate=2287.1kbits/s speed= 499x    
frame=31853 fps=12928 q=-1.0 Lsize=  361448kB time=00:22:08.55 bitrate=2228.7kbits/s speed= 539x    
video:324301kB audio:36329kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.226913



RE: Hardware acceleration on Unraid issues - bitmap - 2023-10-11

You can also find the transcode logs in the UI via Dashboard > Logs.

Just FYI, group add doesn't work the way you'd expect (or at all, depending on the version of compose you're using) with docker compose. What you need to do is ensure that the UID you're using is added to the video/render groups that own the devices (renderD128 and card0). I come at this from Ubuntu/Debian world and I don't know what the underlying flavor of Linux is with Unraid, nor what kind of abstraction is done to isolate the user from the host, so my info might be a little different.

If you can exec into the container, you can easily test if access to the device is an issue without going through the motions of playing a video, checking the logs, repeat ad nauseam...

Code:
docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -init_hw_device qsv=qs:/dev/dri/renderD128

And you should see an output similar to this (plus all the other crap ffmpeg spits out if you don't put the muzzle on):

Code:
libva info: VA-API version 1.17.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_17
libva info: va_openDriver() returns 0
libva info: VA-API version 1.17.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_17
libva info: va_openDriver() returns 0
libva info: VA-API version 1.17.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_17
libva info: va_openDriver() returns 0
libva info: VA-API version 1.17.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_17
libva info: va_openDriver() returns 0

Or you'll see an error. Errors mean it's not configured properly.