2025-01-24, 07:07 PM
First of all, thank you for the amazing software, it's amazing that I can watch my movies remotely in sync with my gf
However, for my TV which uses webOS, I need transcoding, but hardware acceleration (VA-API, since I'm using Intel 3rd Gen Core) doesn't seem to work for me. On the host machine, vainfo works:
However, when I try to execute sudo docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/vainfo, I get libva error: /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so init failed:
I added the render, video, and input groups to the Docker process, I also mapped renderD128 and card0. Here's my compose.yml file:
Check OpenCL runtime status with docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va -init_hw_device opencl@va returns:
What could be going wrong? Let me know if I should provide more details.
However, for my TV which uses webOS, I need transcoding, but hardware acceleration (VA-API, since I'm using Intel 3rd Gen Core) doesn't seem to work for me. On the host machine, vainfo works:
Code:
error: can't connect to X server!
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: va_openDriver() returns -1
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_8
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.17 (libva 2.12.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Ivybridge Mobile - 2.4.1
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264StereoHigh : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
VAProfileJPEGBaseline : VAEntrypointVLD
However, when I try to execute sudo docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/vainfo, I get libva error: /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so init failed:
Code:
Trying display: drm
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva error: /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so init failed
libva info: va_openDriver() returns 1
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.22 (libva 2.22.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Ivybridge Mobile - 2.4.0.pre1 ()
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264StereoHigh : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
VAProfileJPEGBaseline : VAEntrypointVLD
I added the render, video, and input groups to the Docker process, I also mapped renderD128 and card0. Here's my compose.yml file:
Code:
name: jellyfin
services:
jellyfin:
image: jellyfin/jellyfin
container_name: jellyfin
user: $DOCKER_USER
group_add: # by id as these may not exist within the container. Needed to provide permissions to the VAAPI Devices
- $GROUP_ID_RENDER #render
- $GROUP_ID_VIDEO #video
- $GROUP_ID_INPUT #video
- $GROUP_ID_AUDIO #video
network_mode: 'host'
volumes:
- ./config:/config
- ./cache:/cache
- type: bind
source: ../filebrowser/content/public
target: /media
# Optional - extra fonts to be used during transcoding with subtitle burn-in
- type: bind
source: /usr/share/fonts
target: /usr/local/share/fonts/custom
read_only: true
restart: 'unless-stopped'
devices:
# VAAPI Devices
- /dev/dri/renderD128:/dev/dri/renderD128
- /dev/dri/card0:/dev/dri/card0
# Optional - alternative address used for autodiscovery
environment:
- PUID=$DOCKER_UID
- PGID=$DOCKER_GID
- JELLYFIN_PublishedServerUrl=https://jellyfin.tamashalasi.com
# Optional - may be necessary for docker healthcheck to pass if running in host network mode
extra_hosts:
- 'host.docker.internal:host-gateway'
Check OpenCL runtime status with docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va -init_hw_device opencl@va returns:
Code:
[AVHWDeviceContext @ 0x561e01f77640] Trying to use DRM render node for device 0.
[AVHWDeviceContext @ 0x561e01f77640] libva: VA-API version 1.22.0
[AVHWDeviceContext @ 0x561e01f77640] libva: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
[AVHWDeviceContext @ 0x561e01f77640] libva: Found init function __vaDriverInit_1_22
[AVHWDeviceContext @ 0x561e01f77640] libva: /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so init failed
[AVHWDeviceContext @ 0x561e01f77640] libva: va_openDriver() returns 1
[AVHWDeviceContext @ 0x561e01f77640] libva: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/i965_drv_video.so
[AVHWDeviceContext @ 0x561e01f77640] libva: Found init function __vaDriverInit_1_22
[AVHWDeviceContext @ 0x561e01f77640] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x561e01f77640] Initialised VAAPI connection: version 1.22
[AVHWDeviceContext @ 0x561e01f77640] VAAPI driver: Intel i965 driver for Intel(R) Ivybridge Mobile - 2.4.0.pre1 ().
[AVHWDeviceContext @ 0x561e01f77640] Driver not found in known nonstandard list, using standard behaviour.
[AVHWDeviceContext @ 0x561e01fb36c0] Failed to get number of OpenCL platforms: -1001.
Device creation failed: -19.
Failed to set value 'opencl@va' for option 'init_hw_device': No such device
Error parsing global options: No such device
What could be going wrong? Let me know if I should provide more details.