nicknsy / jellyscrub

Smooth mouse-over video scrubbing previews for Jellyfin.
MIT License
668 stars 27 forks source link

NVENC Full acceleration #80

Closed Kakoluz closed 1 year ago

Kakoluz commented 1 year ago

The full acceleration being disabled on nvidia cards sounds really strange to me. Having this limited mode defeats the purpose of HW acceleration if i still have to use the weak CPU to generate the pictures. I've seen the warning and I know about the limit.

Quadro cards don't have a limit on how many NVENC threads can be used at once (I don't have one, but I assume someone, somewhere does). Also consumer cards have a patch to lift this nvidia arbitrary limitation on the driver side.

Knowing that there are ways to bypass the limitation, adding a little toggle (with its warning) to force the NVIDIA card to use as many NVENC instances as it needs should not be really much of a trouble and still fallback to SW when the user don't want to apply the patch.

nicknsy commented 1 year ago

NVIDIA and AMD cards cannot use full acceleration because they do not have hardware mjpeg encoders (at least not implemented in ffmpeg). Thus using full mode will default them to SW encoding to make configuration simpler. Really the no encode option is for situations like if you're using vaapi, which does support mjpeg encode, but on AMD hardware that doesn't support mjpeg encode.

I should have made this clearer.

Also there is still benefit to having HW acceleration on: https://github.com/nicknsy/jellyscrub/issues/12#issuecomment-1432002812