I had a tricky time getting hardware encoding to work and it ultimately ended up being I needed to expose the GPU to the Docker container. The yaml config needed:
Note this was on a low-end Synology NAS with some sort of crappy intel GPU, but it actually works now, I was surprised.
I only mention because before this I spent lots of time messing around with the Jellyfin settings and only the logs tipped me off. Jellyfin loves to fallback silently to CPU transcoding it seems, which I guess is good, but make troubleshooting unintuitive. Searching for log errors online gave me this solution.
I had a tricky time getting hardware encoding to work and it ultimately ended up being I needed to expose the GPU to the Docker container. The yaml config needed:
devices: - /dev/dri/renderD128:/dev/dri/renderD128 - /dev/dri/card0:/dev/dri/card0
Note this was on a low-end Synology NAS with some sort of crappy intel GPU, but it actually works now, I was surprised. I only mention because before this I spent lots of time messing around with the Jellyfin settings and only the logs tipped me off. Jellyfin loves to fallback silently to CPU transcoding it seems, which I guess is good, but make troubleshooting unintuitive. Searching for log errors online gave me this solution.