New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cannot play H265 video with hardware decoding via VAAPI #2261
Comments
I believe this is a dupe of #1901 . I verified and my HEVC videos are 10 bit. |
@sbstp AFAIK the fix is already merged in the master [nightlies] that's why the dupe is closed, it's not yet available in stable [10.4.3] |
I installed the latest nightly on my Debian buster (with i965-va-driver installed) and at first it still seemed like it doesn't work. I couldn't transcode HEVC 10 bit. With the following errors:
After some digging I found out that it may be caused by the not installed non-free part of intel-vaapi. I enabled Only thing I'm currently a bit startled about is that the decoding is done in software and not in hardware. Anyone having an idea why?
|
Snipped for easier reading. So FFmpeg is attempting to use Hardware Acceleration on the Decode portion... https://en.wikichip.org/wiki/intel/uhd_graphics/630 |
From https://trac.ffmpeg.org/wiki/HWAccelIntro So it should automatically decode the h265 if it were possible. And so I verified that your hardware does support it. I haven't checked drivers yet but it looks you solved that issue. IIRC Nonfree needs to be added to ffmpeg at compiling. Perhaps the libs are still missing somehow. That'd be worth looking into.
|
Docker container is definitely missing some packages for decoding of H265 content when transcoding to H264. Preferably I would like to transcode H265 -> H265, but I see no way to enable this at the moment? Anyhow, installing |
Why would you want to reencode to h265? That's not something you would want a media server to do on the fly. We'll have to look at |
Just a note about HEVC decoding: Internal in the ffmpeg log already implies that hwaccel is used and enabled if available. Sadly there is no seperate flag for decoding like there is h264_vaapi for vaapi encoding. I researched that yesterday but didn't note down the link to the corresponding documentation (besides the one @artium already linked above)... |
@Shadowghost it may imply it, but I can not transcode H265 to H264 without the additional packages. Transcoding H264 to H264 works just fine. I therefore assume that H265 can not be decoded in the container, at least not using VAAPI. Edit: |
Without your logs that are from a fresh image without the updates, I couldn't give you the exact reason the decoder is failing. Feels pretty obvious that it's the missing packages though |
so H265 has a lot of compatibility issues and isn't supported by browsers. Jellyfin also isn't designed to encode to h265, only h264. h264 is basically the universal compatibility codec. Adding h265 encoding isn't an impossible feature, but isn't something that could be added easily and wouldn't benefit many. |
I think you want If you want to check the rest of my HWA/codec notes for more info, here ya go |
This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments. |
I'm still experiencing this issue and am using the docker container. Currently using an AMD APU with VAAPI and any h265 playback results in the same results as mentioned by the OP. |
Are you basing this off master or 10.5.5? |
I'm currently on 10.5.5 it seems. |
10.5.5 is old at this point. Test master please. And if master doesnt work, I have two PR's you can try. |
Just tested the nightly release on docker. Still seems to be broken. |
Try |
That seems to have done the trick! H265 videos seem to be playing fine as far as I can tell. |
Check the ffmpeg logs and thoroughly test out the image to make sure everything is normal :). Best to find the bugs now |
do you have any plans to make a pull request for this? |
This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments. |
Describe the bug
I have an i3 9100 with Intel UHD 630 graphics. I'm trying to get jellyfin to use the UHD 630 graphics to transcode H265 to H264. H265 will not play when hardware acceleration is enabled. The error says
PlaybackErrorNoCompatibleStream
. I followed the guide for Debian/Ubuntu to enable hardware acceleration.System (please complete the following information):
To Reproduce
Play a H265 video with VAAPI enabled.
Expected behavior
It should play normally using hardware acceleration.
Logs
The text was updated successfully, but these errors were encountered: