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.

If they do, bad things may happen!

libva info: va_openDriver() returns 0

vainfo: VA-API version: 1.17 (libva 2.12.0)

vainfo: Driver version: Mesa Gallium driver 25.0.4-1~bpo12+1 for AMD Radeon Graphics (radeonsi, gfx1200, ACO, DRM 3.63, 6.15.4-1-default)

vainfo: Supported profile and entrypoints VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSlice VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSlice VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointEncSlice VAProfileHEVCMain10 : VAEntrypointVLD VAProfileHEVCMain10 : VAEntrypointEncSlice VAProfileJPEGBaseline : VAEntrypointVLD VAProfileVP9Profile0 : VAEntrypointVLD VAProfileVP9Profile2 : VAEntrypointVLD VAProfileAV1Profile0 : VAEntrypointVLD VAProfileAV1Profile0 : VAEntrypointEncSlice VAProfileNone : VAEntrypointVideoProc

i’ve also tried updating the packages from trixie and sid, and installing the firmware-linux-nonfree.

i’ve tried disabling SELinux. i’ve tried making the container permissive.

no change.

any help is appreciated! thank you!

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.

  • Nico198X@europe.pubOP
    link
    fedilink
    English
    arrow-up
    1
    ·
    3 hours ago

    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.

  • Fisch@discuss.tchncs.de
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    5 hours ago

    I use podman too and I set up hardware acceleration for Jellyfin. I’ll update this with how I did it once I’m home.

    Edit: Here’s my compose.yml (I use podman-compose):

    services:
      jellyfin:
        image: lscr.io/linuxserver/jellyfin:latest
        container_name: jellyfin
        dns:
          - 9.9.9.9
        environment:
          - PUID=1000
          - PGID=1000
          - TZ=Europe/Berlin
        volumes:
          - ./config:/config:Z
          - ~/drive/media:/media:z
        devices:
          - /dev/dri:/dev/dri
        ports:
          - 8096:8096
          - 7359:7359/udp
          - 1900:1900/udp
        restart: unless-stopped
    
    • Nico198X@europe.pubOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      3 hours ago

      thanks! that seems in line with what i’m doing, though my container is rootful.

  • El_tripped_a_fan@piefed.social
    link
    fedilink
    English
    arrow-up
    3
    ·
    9 hours ago

    I don’t use containers myself, but I bet the hardware acceleration section of the Jellyfin container install doc would be helpful.

    • Nico198X@europe.pubOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      9 hours ago

      what i’m so surprised about is that it works for owncast, and the setup is the same.

      rootful. render group isn’t named in the container and the owncast user isn’t in the group.

      but it works, and peertube doesn’t.

    • Nico198X@europe.pubOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      9 hours ago

      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 with peertube in it?

  • shaun@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    9 hours ago

    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