intel / intel/media-driver

[Bug]: Hardware video acceleration not working properly

Open
#1,541 4 comments 0 reactions 1 assignee Assigned to @Xiaogangli-intel View on GitHub
Encode HEVC P2
Dominant language
C
Stars
1.2k
Forks
383
Avg merge
8d 18h
Merged PRs (30d)
4

Description

### Which component impacted?

Decode, Not sure

### Is it regression? Good in old configuration?

No, this issue exist a long time

### What happened?

Using HEVC hardware transcoding with jellyfin results in a bad picture.
The CPU is a Intel Celeron J4105.

Using software transcoding, direct play works fine.
Also VP8, VP9 and x264 hardware transcoding results in good picture with a little higher than expected CPU utilization.

Examples of the bad quality:

![image](https://user-images.githubusercontent.com/42654642/199682124-44c457af-6e33-4bbc-a93a-22960b5329f6.png)

https://user-images.githubusercontent.com/42654642/199727380-ec9bc92e-0c1d-4f0f-8c98-f780949258a0.mp4

The package maintainer thinks the drivers are problematic, which are also a guess from the jellyfin dev.
So here I am, hoping it is a easy and quick fix! :>

[Link to the issue with the package maaintainer](https://github.com/alexbelgium/hassio-addons/issues/537)
[Link to the issue with the jellyfin github](https://github.com/jellyfin/jellyfin/issues/8683)

### What's the usage scenario when you are seeing the problem?

Transcode for media delivery

### What impacted?

_No response_

### Debug Information

1. docker exec fb34bd1df5ee /usr/lib/jellyfin-ffmpeg/vainfo

libva info: VA-API version 1.16.0
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_16
libva info: va_openDriver() returns 0
Trying display: drm
vainfo: VA-API version: 1.16 (libva 2.16.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 22.5.4 (e461c05)
vainfo: Supported profile and entrypoints
VAProfileNone : VAEntrypointVideoProc
VAProfileNone : VAEntrypointStats
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
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

2. docker exec fb34bd1df5ee ls /dev/dri
by-path
card0
renderD128

3 provided in step 1

4 does not work in the add-on, or I'm doing something wrong

### Do you want to contribute a patch to fix the issue?

No.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.