A couple of other reasons I can think of why it wouldn't work: Does the user you're running ffmpeg as have write permission on /dev/video*, /dev/media* and /dev/dri/card* devices? And did the compile time checks for v4l2_request support in FFmpeg pass? (you need to see v4l2_request under "External libraries providing hardware acceleration:", and h264_v4l2request under "Enabled hwaccels:", in the output of FFmpeg's configure script when you're compiling it). For the FFmpeg configure checks to pass, AFAIK you need the kernel headers from a recent kernel with v4l2-request support installed, e.g. kernel v5.6.