Hey there, I'm not exactly sure where to post this, but I have been trying to solve this issue for hours now. I have an old Intel NUC which runs Ubuntu/Docker with Sonarr, Jellyfin etc. I've found that it is slightly too slow for 'live' transcoding through Jellyfin. Enabling hardware transcoding I'm experiencing speeds at around 22fps, which isn't ideal. So, I'm currently attempting to use unmanic to avoid it altogether, but I'm running into issues when trying to get hardware acceleration to work.
I've followed the official documentation as well as the guide provided here: Link to the guide you mentioned. I've tried 6 or 7 different plugins related to GPU transcoding, but the problem remains. I also experimented with tdarr, but it had the same issue and it would always fall back to CPU.
Looking at the logs for Unmanic I see this error:
[hevc_vaapi @ 0x56224b97db80] No usable encoding entrypoint found for profile VAProfileHEVCMain (17).
Error initializing output stream 0:16 -- Error while opening encoder for output stream #0:16 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!
But, when I run 'vainfo', it does show a 'VAProfileHEVCMain' entrypoint:
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
VAProfileH264MultiviewHigh : VAEntrypointVLD
VAProfileH264MultiviewHigh : VAEntrypointEncSlice
VAProfileH264StereoHigh : VAEntrypointVLD
VAProfileH264StereoHigh : VAEntrypointEncSlice
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileVP8Version0_3 : VAEntrypointEncSlice
----> VAProfileHEVCMain : VAEntrypointVLD
While the CPU is quite dated, it's worth noting that hardware-accelerated transcoding works with Jellyfin. The CPU is an Intel® Celeron® CPU J3060 @ 1.60GHz.
I am trying to convert to either H.264 or H.265.
Have you trid outside of Docker?
https://nelsonslog.wordpress.com/2022/08/22/ffmpeg-and-hevc_qsv-intel-quick-sync-settings/ https://trac.ffmpeg.org/wiki/Hardware/QuickSync
I just tried it with
ffmpeg -c:v h264_qsv -i Kimetsu\ no\ Yaiba\ Yuukaku\ Hen\ -\ 01\ \[Blu-Ray\]\[1080p\]\[10bit\]\[BCEFB086\].mkv -map 0 -c copy -c:v hevc_qsv -preset slow -global_quality 22 -look_ahead 1 output.mkv
and got:
[h264_qsv @ 0x5647e6354780] Error initializing the MFX video decoder: invalid handle (-6) Error while decoding stream #0:0: Invalid argument [h264_qsv @ 0x5647e6354780] [IMGUTILS @ 0x7fffc3312e40] Picture size 0x0 is invalid [h264_qsv @ 0x5647e6354780] video_get_buffer: image parameters invalid [h264_qsv @ 0x5647e6354780] get_buffer() failed Error while decoding stream #0:0: Invalid argument
Could this mean it is a driver issue?
You arguments looks incorrect,
-c:v h264_qsv
and-c:v hevc_qsv
.I can be a driver issue, you can try with a Live disk to see if the issue persist.