2022-09-25, 03:34 AM
I believe you should install i965-va-driver-shaders in the docker container instead of i965-va-driver. It is a non-free Debian package but is fully MIT licensed. The issue with its Debian freeness is that it ships blobs without sources (any of the shaders) that are thus removed in the Debian free i965-va-driver.
Jellyfin ended up rebuilding the intel-vaapi-driver and shipping it in their docker image in https://github.com/jellyfin/jellyfin-ffmpeg/pull/33, but I do not see the point as i965-va-driver-shaders is the intel-vaapi-driver code (the Debian free version is the same but with blobs stripped)
This fix this error that prevents transcoding (viewing TV in the browser):
that is:
vainfo:
Jellyfin ended up rebuilding the intel-vaapi-driver and shipping it in their docker image in https://github.com/jellyfin/jellyfin-ffmpeg/pull/33, but I do not see the point as i965-va-driver-shaders is the intel-vaapi-driver code (the Debian free version is the same but with blobs stripped)
This fix this error that prevents transcoding (viewing TV in the browser):
Code:
[39] GetStatus() got transcoder
[39] GetStatus()@2
[39] GetStatus()@3
[39] GetStatus()@exit
[39] {"status": "Receiving Data. (5648272)","final": false,"speed": 0,"duration": 0,"percentage": 0}
[41] [FFMPEG]: ffmpeg: i965_encoder.c:1692: intel_enc_hw_context_init: Assertion `encoder_context->mfc_context' failed.
[33] Client has disconnected
[39] Got request [192.168.10.175]: /services/service (channel.transcode.status)
[39] method=channel.transcode.status
[39] parameters:
[39] method: channel.transcode.status
[39] format: json
[39] sid: f095d58d-4ee2-4b61-bec8-8e828d44cf65
[39] client_ip: 192.168.10.175
[39] user_agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
[39] host_callback: ...
[39] GetStatus() got transcoder
[39] GetStatus()@nochild
[39] {"status": "Streaming Failed (transcoder exited)","final": true,"duration": 0,"percentage": 0}
[33] StopStream(1507334)...
[33] clientHandle[f095d58d-4ee2-4b61-bec8-8e828d44cf65] = 1507334
[33] Calling StopStream()
[33] http://localhost:33903/stream/stop?handle=6
2022-09-24 23:57:37:108 [INFO] received request
2022-09-24 23:57:37:108 [DEBUG] got request:
GET /stream/stop?handle=6 HTTP/1.1
Host: localhost:33903
Connection: Keep-Alive
that is:
Code:
ffmpeg: i965_encoder.c:1692: intel_enc_hw_context_init: Assertion `encoder_context->mfc_context' failed.
vainfo:
Code:
root@argos:/app# vainfo
error: XDG_RUNTIME_DIR not set in the environment.
error: can't connect to X server!
libva info: VA-API version 1.10.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.10 (libva 2.10.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Gemini Lake - 2.4.1
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointEncSliceLP
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointEncSliceLP
VAProfileH264MultiviewHigh : VAEntrypointVLD
VAProfileH264StereoHigh : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLD