i’m starting to think it’s the debian base of this container image. it may just be too out of date for my GPU.
i think i'm giving up on this for now.
thanks all!
hey all!
for the life of me, i cannot get VAAPI hardware accelerated encoding to work. i always get this error:
Error: ffmpeg exited with code 234: Device creation failed: -22.
Failed to set value '/dev/dri/renderD128' for option 'vaapi_device': Invalid argument
Error parsing global options: Invalid argument`
at ChildProcess.<anonymous> (/app/node_modules/fluent-ffmpeg/lib/processor.js:180:22)
at ChildProcess.emit (node:events:524:28)
at ChildProcess._handle.onexit (node:internal/child_process:293:12)
AMD Radeon RX 9060 XT
the peertube vaapi transcoding plugin is installed
i have mesa-va-drivers and mesa-libgallium installed from bookworm backports.
the container is rootful.
/dev/dri is mapped
the render group id matches between host and container.
SELinux is set to allow containers access to devices.
no joy.
vainfo
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
error: can't connect to X server!
libva info: VA-API version 1.17.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_17
amdgpu: os_same_file_description couldn't determine if two DRM fds reference the same file description.
this is a great thought and i'm not sure, probably not.
when i examine /dev/dri in the container, it has the groupid that it has on host, but not the name. peertube user is not in that group.
i tried making the render group in the container with the same gid and added peertube to it, but it didn't change anything. this process may not be correct, however, to achieve that goal.
any suggestions for quadlet on how to bring in the render group and add container peertube user to it?
Are you using rooted or rootless podman? I'm running rootless and am quite sure I needed to add my local user to the video group. I'm out and about, but can investigate later if you want. Otherwise you seem on the right track
I'm using rootless podman, not sure if that will make a big difference.
Add the user running the containers to the video using the following command:
sudo usermod -a -G video [username]
Then I have this in my quadlet for the containers that need HW acceleration. As I understand it, keep-groups means the user rights to use video resources will be passed from the OS into the container.