Mpv-0.36 how to setup

Options look pretty much the same to me.

for Rockchip.

  1. install labva-v4l2-request
  2. LIBVA_DRIVER_NAME=v4l2_request
    LIBVA_DRIVERS_PATH=/usr/lib/dri
    LIBVA_V4L2_REQUEST_MEDIA_PATH=/dev/media0
    LIBVA_V4L2_REQUEST_VIDEO_PATH=/dev/video19
  3. build jc’s ffmpeg & mpv vaapi enabled
  4. mpv --vo=gpu-next --hwdec-codecs=vaapi-copy
  5. no error, h265 a little dropped, libva-v4l2-request issue, too old.

edit,
source too old to rebuild,
FAILED: src/v4l2_request_drv_video.so.p/h265.c.o

Hi @Darksky,

Am looking for ffmpeg with v4l2-request support to work with Orange Pi 5-Plus (RK3588).

Does your rpi-ffmpeg 7.1 support v4l2-request? Is there a possibility to work on RK3588 (stateless, I think)?

The kernel-6.12.11-1 has hdmi-audio and have necessary vpu support. But unfortunately with ffmpeg-2:7.1-6 no vpu hardware acceleration on mpv-0.39.0-4.

lsmod | grep v4l2
v4l2_vp9               24576  1 hantro_vpu
v4l2_jpeg              16384  1 hantro_vpu
v4l2_h264              16384  2 hantro_vpu,rockchip_vdec2
v4l2_mem2mem           40960  2 hantro_vpu,rockchip_vdec2
videobuf2_v4l2         32768  3 hantro_vpu,rockchip_vdec2,v4l2_mem2mem
videodev              282624  4 videobuf2_v4l2,hantro_vpu,rockchip_vdec2,v4l2_mem2mem
videobuf2_common       77824  6 videobuf2_dma_contig,videobuf2_v4l2,hantro_vpu,rockchip_vdec2,v4l2_mem2mem,videobuf2_memops
mc                     73728  6 videodev,videobuf2_v4l2,hantro_vpu,videobuf2_common,rockchip_vdec2,v4l2_mem2mem

I do not have that board so know nothing about it. Looks pretty restrictive.

https://github.com/nyanmisaka/ffmpeg-rockchip

If not mistaken this ffmpeg-rockchip only works with vendor’s kernel 5.10 or 6.1 example armbian-6.1.y-vendor-rk35xx, kernel-6.1.75-joshua-git, BredOS-6.1.75-rkr3 or similar kernels but not with mainline kernel.

Wonder there any pre-build ffmpeg with v4l2-request support avialable for archlinux aarch64?

From quick searching jellyfin-ffmpeg is supposed to support rk3588 but may only support jellyfin’s player. Also everything I saw is using the BSP kernel.

Have tried ffmpeg-mpp-git on this kernel-6.12.11-1 but as expected with not work. ffmpeg-mpp-git was for the rockchip vendor’s kernel.

Will try your rpi-ffmpeg-7.1. Question how to find out whether AUR ffmpeg-full or ffmpeg-full-git contain support for v4l2-request?

Look at the PKGBUILD. AUR is becoming more x86 only though.

Thanks. Found

--enable-libv4l2 \

Nothing “v4l2-request”, does this meas no v4l2-request support?

Have been using Manjaro-Opi5-Plus with kernel-6.1.75-joshua-git which work with ffmpeg-mpp-git and libv4l-rkmpp-git. With this chromium-mpp and mpv do have vpu hardware acceleration.

Is trying out a mainline kernel-6.12.11-1 with hdmi-audio and supposedly with v4l2-request support for Opi5-Plus (RK3588) but unfortunately the alarm-repo ffmpeg-7.1 does not seems to support v4l2-request as such no vpu hardware acceleration on mpv.

Not sure whether I remember correctly that rpi-ffmpeg-7.1 has v4l2-request.

jc’s ffmpeg do have --enable-rkmpp option.

Mainline kernel currently does not have rockchip rkmpp support on rockchip vendor’s kernel has rkmpp support for now.

Looking for a pre-build ffmpeg with v4l2-request support to test in on a mainline kernel-6.12.11 which has v4l2-request on mpv-0.39.0-4 from archlinuxarm repo (or Manjaro repo).

Edit:
Hi @Darksky, tried to install your rpi-ffmpeg on MiniArch-EOS but it would not install due to invalid (PGP signature) eventhough has already set pacman.conf to :

# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
#SigLevel    = Required DatabaseOptional
#LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required
[alarm@MiniArch-opi5plus ~]$ sudo pacman -U /home/alarm/Downloads/rpi-ffmpeg-7.1-3-aarch64.pkg.tar.zst
[sudo] password for alarm: 
loading packages...
error: '/home/alarm/Downloads/rpi-ffmpeg-7.1-3-aarch64.pkg.tar.zst': invalid or corrupted package (PGP signature)
[alarm@MiniArch-opi5plus ~]$

How do I install the Manjaro keyring on MiniArch-EOS so that I can install packages?

sudo pacman-key --recv-keys <Manjaro-Repo Key>
sudo pacman-key --lsign <Manjaro-Repo Key>

maybe try this one time then change it back. rpi-ffmpeg has v4l-requests but does not have rkmpp enabled. So may be a waste of time.

https://www.archlinuxuser.com/2012/06/ignore-signature-check-when-doing.html

Just my 2 cents…

If it was me I would stay away from the mainline kernel with this. I would go with what people have working. Even with the RPi and all of their community support I have never seen HW working with mainline. The mainline kernel will never be as good as RPi’s kernel for several reasons. This is the reason I only supply the RPi kernels. I do test mainline kernel on the pi’s from time to time.

From what I have read with your device they have HW working with the vendor’s kernel and might only work using a CLI. RPi first started out this way.

If it was me and wanted HW I would use this ffmpeg:

https://github.com/nyanmisaka/ffmpeg-rockchip

And follow it’s companion guide:

https://github.com/nyanmisaka/ffmpeg-rockchip/wiki

To tell you the truth I do not know that v4l-requests is a factor with this device looking over the WIKI as it is not mentioned in it’s configs.

Thanks. The mainline kernel I am using does NOT support rkmpp so just need v4l2-request. Have forgotten to replaced “SigLevel = Never” this in pacman.conf earlier.

Have been using vendor’s kernel with vpu and gpu hardware acceleration with ffmpeg-mpp-git (similar to ffmpeg-rockchip if not mistaken but adapted to work with mpv). So I am covered with Manjaro-Opi5-Plus using the vendor’s kernel, ffmpeg-mpp-git, mpp-git and libv4l-rkmpp-git to have vpu hardware acceleration on mpv and purposed build chromium-mpp. Working very well indeed.

This MiniArch-EOS with mainline kernel-6.12.11-1 (the latest patched kernel) is supposed to support v4l2-request for vpu hardware acceleration. Was informed that Chromiumum_v131 from archlinuxarm repository currently does not support “v4l2-request” may be Chromium_v132 might out of the box.

As per my understanding and your confirmation, rpi-ffmpeg does support v4l2-request that is why I am trying it out.

Thanks for the guidance.

Edit: @Darksky,
Installed rpi-ffmpeg on MiniArch-EOS-Gnome-6.12.11-1 but unfortunately still NO vpu hardware acceleration,

mpv --hwdec=drm

Both option did not work.

[alarm@MiniArch-opi5plus ~]$ mpv --hwdec=drm --hwdec-codecs=all '/home/alarm/Videos/jellyfish-120-mbps-4k-uhd-h264.mkv' [alarm@MiniArch-opi5plus ~]$ mpv --hwdec=drm --hwdec-codecs=all '/home/alarm/Videos/jellyfish-120-mbps-4k-uhd-h264.mkv' 
● Video  --vid=1  --vlang=eng  (h264 3840x2160 29.97 fps) [default]
[vo/gpu/wayland] Unable to set DRM atomic cap: Operation not supported
VO: [gpu] 3840x2160 yuv420p
V: 00:00:06 / 00:00:30 (22%)
Exiting... (Quit)

[alarm@MiniArch-opi5plus ~]$ mpv --hwdec=auto --hwdec-codecs=all '/home/alarm/Videos/jellyfish-120-mbps-4k-uhd-h264.mkv' 
● Video  --vid=1  --vlang=eng  (h264 3840x2160 29.97 fps) [default]
[vo/gpu/wayland] Unable to set DRM atomic cap: Operation not supported
[ffmpeg] AVHWDeviceContext: Instance creation failure: VK_ERROR_INCOMPATIBLE_DRIVER
[ffmpeg/video] h264_v4l2m2m: Could not find a valid device
[ffmpeg/video] h264_v4l2m2m: can't configure decoder
Could not open codec.
[ffmpeg/video] h264_v4l2m2m: Could not find a valid device
[ffmpeg/video] h264_v4l2m2m: can't configure decoder
Could not open codec.
VO: [gpu] 3840x2160 yuv420p
V: 00:00:29 / 00:00:30 (100%)
Exiting... (End of file)
[alarm@MiniArch-opi5plus ~]$

try --hwdec-codecs=xxx

Tried mpv --hwdec-codecs=h264 --hwdec=auto

Did not make any difference, no vpu hardware acceleration. Also added “video” group, still no vpu hw acceleration on mpv.

my case Pi4,
#–hwdec-codecs=h264_v4l2m2m
#–hwdec-codecs=hevc_v4l2m2m
#–hwdec-codecs=h265_v4l2request
–hwdec-codecs=auto-safe
–profile=fast

Thanks for the tips. Tried them but unfortunately still no vpu hw acceleration on mpv-0.39.0-4. Am wondering whether need purpose build mpv with v4l2request patch and whether anyone have a prebuild mpv that work with v4l2request?

MiniArch-EOS-Gnome with kernel-6.12.11-1 runs well on Orange Pi 5 Plus except so far unable to get vpu hw acceleration on mpv-0.39.0-4 or chromium_v131

vendor’s kernel still the preferred kernel to use on Orange Pi 5 Plus where GPU and VPU hw acceleration works (AV1 videos still not supported well on RK3588 with mpp-git).

found this might help for RK.

@Rip2 thanks. Did not find a pre-build Kwiboo/FFmpeg from the link. Is there a pre-build package for download?