ffplay hwaccel mjpeg воспроизведение

ffplay hwaccel mjpeg воспроизведение

TL;DR: Как воспроизвести поток MJPEG с моей веб-камеры/устройства захвата HDMI через FFPLAY с аппаратным ускорением в Ubuntu 22.04?

Длинное описание:

У меня есть несколько дешевых устройств захвата HDMI, которые могут выводить поток MJPEG с разрешением 1920x1080.

Вот возможности одного из моих устройств:https://pastebin.com/9b0yXjEi

Долгое время я использовал следующую однострочную игру:

ffplay -fflags nobuffer -f video4linux2 -framerate 30 -video_size 1920x1080 -input_format mjpeg /dev/hdmi-rpi

Он запускается практически мгновенно, за несколько миллисекунд, и использует 15% одноядерного ЦП + 9% графического процессора в моем Ryzen 5700G.

Но я хотел пойти дальше и использовать аппаратное ускорение. Поэтому я попробовал это:

ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -f v4l2 -framerate 30 -video_size 1920x1080 -input_format mjpeg -i /dev/hdmi-rpi -vcodec rawvideo -f matroska - | ffplay -i -

Но это использует %29 CPU + %49 GPU (также запускается немедленно)

И еще один тест с MPV:

stulluk ~ $  mpv --demuxer-lavf-format=video4linux2 --demuxer-lavf-o=input_format=mjpeg,video_size=1920x1080,framerate=30 av://v4l2:/dev/hdmi-rpi 
 (+) Video --vid=1 (mjpeg 1920x1080 30.000fps)
[ffmpeg/video] mjpeg: overread 8
VO: [gpu] 1920x1080 yuvj422p
V: 00:00:15 / 00:00:15 (99%)
[ffmpeg/demuxer] video4linux2,v4l2: Some buffers are still owned by the caller on close.
[ffmpeg] ioctl(VIDIOC_QBUF): Bad file descriptor
[ffmpeg] ioctl(VIDIOC_QBUF): Bad file descriptor
[ffmpeg] ioctl(VIDIOC_QBUF): Bad file descriptor

Exiting... (Quit)
stulluk ~ $ 

При указанной выше настройке MPV использует 13% CPU и 9% GPU.

Поэтому я хочу узнать, есть ли способ использовать HWaccel с FFplay, чтобы уменьшить загрузку процессора?

И дополнение: есть ли способ использовать новый рендерер Vulcan с MJPEG? Если да, то как скомпилировать FFmpeg и как его использовать?

Связанный контент