Ubuntu 20.04/docker/portainer hardware transcoding intel (RESOLVED)

I'm having a heck of a time here.
i3-10100
ubuntu 20.04
docker+portainer
I pull the regular channels-dvr image (not nvidia, not tve) in and I map /dev/dri into the container

/dev/dri on the host is chmod 777 and is in the users group
within the container I have /dev/dri/card0 and /dev/dri/renderD128

What am I missing here? This should work right?

channels/system/misc shows transcoder libx264.

i see in another post a dev saying intel 10th and 11th gen cpu hw transcode not yet supported on linux maybe?

yes, this appears to be a CPU support issue and not a docker issue.

There is a test build available with extended CPU support on the other thread.

post here just for those who are chasing answers. The test build enables hardware acceleration for h.264 and who knows what else. I can't get it to transcode h.265 right now but that's a minor issue.

Try passing vcodec=hevc_vaapi, such as: http://${DVR_IP}:8089/devices/ANY/channels/${CH_NUM}/hls/master.m3u8&vcodec=hevc_vaapi. You can even append your audio codec of choice to select AAC or similar.

(Edit: I got the Ffmpeg codec name wrong. It's hevc_vaapi, not vaapi_h265.)

Sorry to open up an old thread, but as of today I'm only seeing software decoding in Ubuntu 20.04/docker/portainer for my Intel NUC7i5BNH.

Running build 2021.07.27.0105

Plex running on the same host is using HW Transcoding without issue.

UPDATE: See comment below. Nuked system and rebuilt and all good.

Thanks,
Shane.

Are you properly passing the -d/--device parameter? Does your host system have the proper kernel drivers loaded? Are the kernel modules loading before Docker starts?

Please offer some additional details, such as a uname -a and dmesg, for starters.

  1. Yes /dev/dri:/dev/dri is passed (same as Plex)
  2. Ubuntu Desktop 20.04.1 full installation. Other H/W transcoding is working correctly.
  3. uname -a output:
    Linux Ubuntu-NUC7i5BNH 5.8.0-63-generic #71~20.04.1-Ubuntu SMP Thu Jul 15 17:46:08 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
  4. dmesg output:

Note: Weird - I ssh into my NUC and sudo sh, and can't ls /dev/dri - not sure how Plex is working with H/W transcoding then... may require some further investigation.

Update: All gone to crap. Looks like some drivers have issues as Plex no longer H/W transcoding. Weird... nothing changed but now not working.

Update 2: I love docker-compose. quick /config backups for each container, full wipe and reinstall of Ubuntu, reinstall docker, docker-compose, portainer... all containers up and running again with full access to /dev/dri for DVR and Plex. Not sure what the issue is, but nuking it while overkill fixed it fast.