linuxserver / docker-jellyfin

GNU General Public License v3.0
600 stars 92 forks source link

[BUG] mesa-va-drivers version disable GPU Encode support #240

Closed bennydiamond closed 2 months ago

bennydiamond commented 3 months ago

Is there an existing issue for this?

Current Behavior

Currently running tag nightly-2024031805ubu2204-ls5

with mesa-va-drivers 23.2.1 vainfo outputs the following

# ./vainfo
Trying display: drm
libva info: VA-API version 1.21.0
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/r600_drv_video.so
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/r600_drv_video.so
libva info: Found init function __vaDriverInit_1_14
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.21 (libva 2.21.0)
vainfo: Driver version: Mesa Gallium driver 23.2.1-1ubuntu3.1~22.04.2 for KABINI (, LLVM 15.0.7, DRM 2.50, 6.1.0-0.deb11.17-amd64)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc

No encoder entrypoint are detected

Expected Behavior

With mesa-va-drivers version 22.0.1

vainfo outputs encoding profiles entrypoints

# ./vainfo
Trying display: drm
libva info: VA-API version 1.20.0
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/r600_drv_video.so
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/r600_drv_video.so
libva info: Found init function __vaDriverInit_1_14
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.20 (libva 2.20.0)
vainfo: Driver version: Mesa Gallium driver 22.0.1 for AMD KABINI (LLVM 13.0.1, DRM 2.50, 6.1.0-0.deb11.17-amd64)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileNone                   : VAEntrypointVideoProc

Steps To Reproduce

  1. Pull tag nightly-2024031805ubu2204-ls5
  2. Passthrough GPU device (/dev/dri folder) into container
  3. Run container
  4. Execute /usr/lib/jellyfin-ffmpeg/vainfo
  5. See there are no EncSlice entrypoint present

Resolution:

  1. Downgrade mesa-va-drivers apt update && apt install mesa-va-drivers=22.0.1-1ubuntu2
  2. Execute /usr/lib/jellyfin-ffmpeg/vainfo
  3. See there are now EncSlice entrypoints listed

Environment

- OS: OpenMediaVault 6
- Running Jellyfin container through portainer

CPU architecture

x86-64

Docker creation

docker run \
  --name=jellyfin \
  --hostname=jellyfin \
  --env=PUID=65534 \
  --env=PGID=65534 \
  --env=TZ=America/Toronto \
  --env=JELLYFIN_PublishedServerUrl=192.168.0.253 \
  --volume=/srv/mergerfs/mergerfs01/torrents/TV:/TV \
  --volume=/opt/docker/jellyfin:/config \
  --volume=/srv/mergerfs/mergerfs01/jellyfin_transcodes:/transcodes \
  --volume=/srv/mergerfs/mergerfs01/torrents/Films:/Films \
  --volume=/Films \
  --volume=/TV \
  --volume=/transcodes \
  --cap-add=AUDIT_WRITE \
  --cap-add=CHOWN \
  --cap-add=DAC_OVERRIDE \
  --cap-add=FOWNER \
  --cap-add=FSETID \
  --cap-add=KILL \
  --cap-add=MKNOD \
  --cap-add=NET_BIND_SERVICE \
  --cap-add=NET_RAW \
  --cap-add=SETFCAP \
  --cap-add=SETGID \
  --cap-add=SETPCAP \
  --cap-add=SETUID \
  --cap-add=SYS_CHROOT \
  --cap-drop=AUDIT_CONTROL \
  --cap-drop=BLOCK_SUSPEND \
  --cap-drop=DAC_READ_SEARCH \
  --cap-drop=IPC_LOCK \
  --cap-drop=IPC_OWNER \
  --cap-drop=LEASE \
  --cap-drop=LINUX_IMMUTABLE \
  --cap-drop=MAC_ADMIN \
  --cap-drop=MAC_OVERRIDE \
  --cap-drop=NET_ADMIN \
  --cap-drop=NET_BROADCAST \
  --cap-drop=SYSLOG \
  --cap-drop=SYS_ADMIN \
  --cap-drop=SYS_BOOT \
  --cap-drop=SYS_MODULE \
  --cap-drop=SYS_NICE \
  --cap-drop=SYS_PACCT \
  --cap-drop=SYS_PTRACE \
  --cap-drop=SYS_RAWIO \
  --cap-drop=SYS_RESOURCE \
  --cap-drop=SYS_TIME \
  --cap-drop=SYS_TTY_CONFIG \
  --cap-drop=WAKE_ALARM \
  --network=dns_resolve \
  --privileged \
  --workdir=/ -p 7359:7359/udp -p 8096:8096 -p 8920:8920 \
  --restart=unless-stopped \
  --device /dev/dri:/dev/dri \
  --label='org.opencontainers.image.version=20230703.12-unstable-ls1321' \
  --label='org.opencontainers.image.revision=274a85bc6461fa5c63fc03aae7d18d9e137d60b8' \
  --label='build_version=Linuxserver.io version:- 20230703.12-unstable-ls1321 Build-date:- 2023-07-03T17:12:34+00:00' \
  --label='org.opencontainers.image.ref.name=274a85bc6461fa5c63fc03aae7d18d9e137d60b8' \
  --label='org.opencontainers.image.created=2023-07-03T17:12:34+00:00' \
  --runtime=runc \
  --detach=true lscr.io/linuxserver/jellyfin:nightly-2024031805ubu2204-ls5

Container logs

Chapter #4:87: start 5913.000000, end 5967.000000
      Metadata:
        title           : Scene 86
    Chapter #4:88: start 5967.000000, end 6004.000000
      Metadata:
        title           : Scene 87
    Chapter #4:89: start 6004.000000, end 6050.000000
      Metadata:
        title           : Scene 88
    Chapter #4:90: start 6050.000000, end 6074.000000
      Metadata:
        title           : Scene 89
    Chapter #4:91: start 6074.000000, end 6096.000000
      Metadata:
        title           : Scene 90
    Chapter #4:92: start 6096.000000, end 6113.000000
      Metadata:
        title           : Scene 91
    Chapter #4:93: start 6113.000000, end 6180.000000
      Metadata:
        title           : Scene 92
    Chapter #4:94: start 6180.000000, end 6405.000000
      Metadata:
        title           : Scene 93
    Chapter #4:95: start 6405.000000, end 6424.000000
      Metadata:
        title           : Scene 94
    Chapter #4:96: start 6424.000000, end 6483.000000
      Metadata:
        title           : Scene 95
    Chapter #4:97: start 6483.000000, end 6520.000000
      Metadata:
        title           : Scene 96
    Chapter #4:98: start 6520.000000, end 6569.000000
      Metadata:
        title           : Scene 97
    Chapter #4:99: start 6569.000000, end 6618.000000
      Metadata:
        title           : Scene 98
    Chapter #4:100: start 6618.000000, end 6695.000000
      Metadata:
        title           : Scene 99
    Chapter #4:101: start 6695.000000, end 6721.000000
      Metadata:
        title           : Scene 100
    Chapter #4:102: start 6721.000000, end 6727.000000
      Metadata:
        title           : Scene 101
    Chapter #4:103: start 6727.000000, end 6850.000000
      Metadata:
        title           : End Credits
    Chapter #4:104: start 6850.000000, end 6860.000000
      Metadata:
        title           : BONUS SCENE
    Chapter #4:105: start 6860.000000, end 7404.630000
      Metadata:
        title           : End Credits
  Stream #4:0(eng): Subtitle: subrip (original) (hearing impaired)
    Metadata:
      title           : Anglais SDH
      BPS             : 63
      DURATION        : 01:54:22.606000000
      NUMBER_OF_FRAMES: 1832
      NUMBER_OF_BYTES : 54560
      _STATISTICS_WRITING_APP: mkvmerge v83.0 ('Circle Of Friends') 64-bit
      _STATISTICS_WRITING_DATE_UTC: 2024-03-21 12:27:47
      _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream mapping:
  Stream #0:5 -> #0:0 (copy)
  Stream #0:6 -> #1:0 (copy)
  Stream #0:7 -> #2:0 (copy)
  Stream #0:8 -> #3:0 (copy)
  Stream #0:9 -> #4:0 (copy)
Press [q] to stop, [?] for help
[22:50:10] [INF] [36] MediaBrowser.Controller.MediaEncoding.TranscodingJob: Stopping ffmpeg process with q command for /transcodes/109cebc47d59464b018a50a8f437ca4c.m3u8
[22:50:10] [INF] [36] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 0
[22:50:10] [INF] [36] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: Deleting partial stream file(s) /transcodes/109cebc47d59464b018a50a8f437ca4c.m3u8
[22:50:12] [INF] [35] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app Jellyfin Android 2.6.0 playing Bar Routier. Stopped at 2757 ms
size=       0kB time=-577014:32:22.77 bitrate=  -0.0kbits/s speed=N/A    
size=       2kB time=-00:00:02.71 bitrate=N/A speed=N/A    
size=       7kB time=00:05:32.66 bitrate=   0.2kbits/s speed= 332x    
size=       8kB time=00:07:12.59 bitrate=   0.2kbits/s speed= 286x    
size=      10kB time=00:09:13.51 bitrate=   0.1kbits/s speed= 273x    
size=      12kB time=00:11:37.32 bitrate=   0.1kbits/s speed= 275x    
size=      15kB time=00:15:08.11 bitrate=   0.1kbits/s speed= 299x    
size=      20kB time=00:19:54.77 bitrate=   0.1kbits/s speed= 335x    
size=      24kB time=00:23:18.56 bitrate=   0.1kbits/s speed= 344x    
size=      27kB time=00:26:21.83 bitrate=   0.1kbits/s speed= 345x    
size=      29kB time=00:28:52.56 bitrate=   0.1kbits/s speed= 340x    
size=      33kB time=00:31:32.55 bitrate=   0.1kbits/s speed= 337x    
size=      35kB time=00:33:44.89 bitrate=   0.1kbits/s speed= 329x    
size=      38kB time=00:37:18.56 bitrate=   0.1kbits/s speed= 337x    
size=      40kB time=00:40:21.00 bitrate=   0.1kbits/s speed= 338x    
size=      42kB time=00:44:18.11 bitrate=   0.1kbits/s speed= 347x    
size=      45kB time=00:47:12.28 bitrate=   0.1kbits/s speed= 347x    
size=      48kB time=00:49:36.18 bitrate=   0.1kbits/s speed= 343x    
size=      50kB time=00:52:12.79 bitrate=   0.1kbits/s speed= 341x    
size=      52kB time=00:54:30.05 bitrate=   0.1kbits/s speed= 338x    
size=      53kB time=00:56:49.94 bitrate=   0.1kbits/s speed= 334x    
size=      55kB time=00:58:01.72 bitrate=   0.1kbits/s speed= 325x    
size=      57kB time=01:00:06.81 bitrate=   0.1kbits/s speed= 319x    
size=      60kB time=01:04:40.37 bitrate=   0.1kbits/s speed= 328x    
size=      65kB time=01:09:35.67 bitrate=   0.1kbits/s speed= 338x    
size=      66kB time=01:12:34.05 bitrate=   0.1kbits/s speed= 339x    
size=      68kB time=01:15:43.41 bitrate=   0.1kbits/s speed= 341x    
size=      71kB time=01:20:22.60 bitrate=   0.1kbits/s speed= 348x    
size=      73kB time=01:24:17.51 bitrate=   0.1kbits/s speed= 352x    
size=      78kB time=01:28:08.11 bitrate=   0.1kbits/s speed= 356x    
size=      79kB time=01:29:49.09 bitrate=   0.1kbits/s speed= 351x    
size=      82kB time=01:32:50.73 bitrate=   0.1kbits/s speed= 351x    
size=      83kB time=01:34:54.64 bitrate=   0.1kbits/s speed= 346x    
size=      84kB time=01:36:49.22 bitrate=   0.1kbits/s speed= 342x    
size=      84kB time=01:38:53.30 bitrate=   0.1kbits/s speed= 338x    
size=      85kB time=01:41:38.13 bitrate=   0.1kbits/s speed= 337x    
size=      85kB time=01:44:11.32 bitrate=   0.1kbits/s speed= 336x    
size=      86kB time=01:47:12.05 bitrate=   0.1kbits/s speed= 336x    
size=      87kB time=01:50:09.68 bitrate=   0.1kbits/s speed= 333x    
size=      87kB time=01:51:06.70 bitrate=   0.1kbits/s speed= 320x    
size=      87kB time=01:51:06.70 bitrate=   0.1kbits/s speed= 319x    
video:0kB audio:0kB subtitle:185kB other streams:0kB global headers:0kB muxing overhead: unknown
[22:50:28] [INF] [35] MediaBrowser.MediaEncoding.Subtitles.SubtitleEncoder: ffmpeg subtitle extraction completed for /Films/Road.House.2024.MULTI.VF2.1080p.10bit.WEBRip.6CH.x265.HEVC-SERQPH.mkv to /config/data/data/subtitles/8/89c66776-be4a-a724-ff26-f7c037fe0769.srt
[22:50:28] [INF] [35] MediaBrowser.MediaEncoding.Subtitles.SubtitleEncoder: ffmpeg subtitle extraction completed for /Films/Road.House.2024.MULTI.VF2.1080p.10bit.WEBRip.6CH.x265.HEVC-SERQPH.mkv to /config/data/data/subtitles/4/4babff52-fd40-6abd-f587-8f329d9cb14b.srt
[22:50:28] [INF] [35] MediaBrowser.MediaEncoding.Subtitles.SubtitleEncoder: ffmpeg subtitle extraction completed for /Films/Road.House.2024.MULTI.VF2.1080p.10bit.WEBRip.6CH.x265.HEVC-SERQPH.mkv to /config/data/data/subtitles/3/3f4dddc9-bc60-091f-7a51-982669d21945.srt
[22:50:28] [INF] [35] MediaBrowser.MediaEncoding.Subtitles.SubtitleEncoder: ffmpeg subtitle extraction completed for /Films/Road.House.2024.MULTI.VF2.1080p.10bit.WEBRip.6CH.x265.HEVC-SERQPH.mkv to /config/data/data/subtitles/c/cecf28f5-2ac6-8c3f-0cac-407890a83476.srt
[22:50:28] [INF] [35] MediaBrowser.MediaEncoding.Subtitles.SubtitleEncoder: ffmpeg subtitle extraction completed for /Films/Road.House.2024.MULTI.VF2.1080p.10bit.WEBRip.6CH.x265.HEVC-SERQPH.mkv to /config/data/data/subtitles/5/55a932f5-a7b4-1240-89b5-c0d8996fa9b0.srt
[22:50:47] [INF] [23] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for bennyboy. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[22:50:47] [INF] [23] Jellyfin.Api.Helpers.MediaInfoHelper: RemoteClientBitrateLimit: 42000000, RemoteIP: 172.18.0.1, IsInLocalNetwork: False
[22:51:23] [INF] [45] Emby.Server.Implementations.HttpServer.WebSocketManager: WS 172.18.0.1 closed
[22:51:23] [INF] [24] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app Jellyfin Android 2.6.0 playing Bar Routier. Stopped at 12020 ms
[22:51:27] [INF] [40] Emby.Server.Implementations.HttpServer.WebSocketManager: WS 172.18.0.1 request
[22:51:27] [INF] [45] Emby.Server.Implementations.HttpServer.WebSocketManager: WS 172.18.0.1 closed
[22:51:35] [INF] [36] Emby.Server.Implementations.HttpServer.WebSocketManager: WS 172.18.0.1 request
[22:51:41] [INF] [33] Emby.Server.Implementations.HttpServer.WebSocketManager: WS 172.18.0.1 request
[22:52:21] [INF] [36] Emby.Server.Implementations.Session.SessionWebSocketListener: Sending ForceKeepAlive message to 1 inactive WebSockets.
[22:53:09] [INF] [29] Emby.Server.Implementations.Session.SessionWebSocketListener: Sending ForceKeepAlive message to 1 inactive WebSockets.
[22:53:57] [INF] [18] Emby.Server.Implementations.Session.SessionWebSocketListener: Sending ForceKeepAlive message to 1 inactive WebSockets.
[22:54:45] [INF] [10] Emby.Server.Implementations.Session.SessionWebSocketListener: Sending ForceKeepAlive message to 1 inactive WebSockets.
[22:55:33] [INF] [11] Emby.Server.Implementations.Session.SessionWebSocketListener: Sending ForceKeepAlive message to 1 inactive WebSockets.
[22:55:35] [WRN] [11] Emby.Server.Implementations.HttpServer.WebSocketConnection: WS 172.18.0.1 error receiving data: The remote party closed the WebSocket connection without completing the close handshake.
[22:55:35] [INF] [11] Emby.Server.Implementations.HttpServer.WebSocketManager: WS 172.18.0.1 closed
github-actions[bot] commented 3 months ago

Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.

homerr commented 2 months ago

Can you recreate the container following the readme please - without the stacks of cap_add and cap_drop settings, and ensure the PUID/PGID are set properly as well please.

You are also running a nightly build, and this broke between nightly builds, suggesting that something changed within the application and not the container.

Going to close this off as it is outside of our support policy (nightlies)