What is the mpv.conf to enable hardware decoding for Wayland + Nvidia?

I have tried

gpu-context=wayland
hwdec=vdpau
vo=gpu

but mpv crashes with floating point exception (core dumped). Is it impossible? If not, what is the correct conf?

I chose “proprietary drivers” at the installation, so Nvidia driver 515.65.01 has been automatically installed.

Nothing to do with wayland or xorg…

mpv --gpu-context=help 
mpv --hwdec=help
mpv --vo=help 

You might need cuda.

1 Like

But cuda seems to be 4.1GB. Do I really need to install this just to enable hardware video decoding? The outputs of the three commands are below.

image

GPU contexts (APIs):
    auto (autodetect)
    wayland (opengl)
    x11egl (opengl)
    drm (opengl)
    waylandvk (vulkan)
    x11vk (vulkan)
    displayvk (vulkan)
Valid values (with alternative full names):
  nvdec (h263-nvdec)
  nvdec (h263p-nvdec)
  nvdec (h264-nvdec)
  nvdec (hevc-nvdec)
  nvdec (mjpeg-nvdec)
  nvdec (mpeg1video-nvdec)
  nvdec (mpeg2video-nvdec)
  nvdec (mpeg4-nvdec)
  nvdec (vc1-nvdec)
  nvdec (vp8-nvdec)
  nvdec (vp9-nvdec)
  nvdec (wmv3-nvdec)
  nvdec (av1-nvdec)
  vaapi (h263-vaapi)
  vaapi (h263p-vaapi)
  vaapi (h264-vaapi)
  vaapi (hevc-vaapi)
  vaapi (mjpeg-vaapi)
  vaapi (mpeg2video-vaapi)
  vaapi (mpeg4-vaapi)
  vaapi (vc1-vaapi)
  vaapi (vp8-vaapi)
  vaapi (vp9-vaapi)
  vaapi (wmv3-vaapi)
  vaapi (av1-vaapi)
  vdpau (h263-vdpau)
  vdpau (h263p-vdpau)
  vdpau (h264-vdpau)
  vdpau (hevc-vdpau)
  vdpau (mpeg1video-vdpau)
  vdpau (mpeg2video-vdpau)
  vdpau (mpeg4-vdpau)
  vdpau (vc1-vdpau)
  vdpau (vp9-vdpau)
  vdpau (wmv3-vdpau)
  vdpau (av1-vdpau)
  nvdec-copy (h263-nvdec-copy)
  nvdec-copy (h263p-nvdec-copy)
  nvdec-copy (h264-nvdec-copy)
  nvdec-copy (hevc-nvdec-copy)
  nvdec-copy (mjpeg-nvdec-copy)
  nvdec-copy (mpeg1video-nvdec-copy)
  nvdec-copy (mpeg2video-nvdec-copy)
  nvdec-copy (mpeg4-nvdec-copy)
  nvdec-copy (vc1-nvdec-copy)
  nvdec-copy (vp8-nvdec-copy)
  nvdec-copy (vp9-nvdec-copy)
  nvdec-copy (wmv3-nvdec-copy)
  nvdec-copy (av1-nvdec-copy)
  vaapi-copy (h263-vaapi-copy)
  vaapi-copy (h263p-vaapi-copy)
  vaapi-copy (h264-vaapi-copy)
  vaapi-copy (hevc-vaapi-copy)
  vaapi-copy (mjpeg-vaapi-copy)
  vaapi-copy (mpeg2video-vaapi-copy)
  vaapi-copy (mpeg4-vaapi-copy)
  vaapi-copy (vc1-vaapi-copy)
  vaapi-copy (vp8-vaapi-copy)
  vaapi-copy (vp9-vaapi-copy)
  vaapi-copy (wmv3-vaapi-copy)
  vaapi-copy (av1-vaapi-copy)
  vdpau-copy (h263-vdpau-copy)
  vdpau-copy (h263p-vdpau-copy)
  vdpau-copy (h264-vdpau-copy)
  vdpau-copy (hevc-vdpau-copy)
  vdpau-copy (mpeg1video-vdpau-copy)
  vdpau-copy (mpeg2video-vdpau-copy)
  vdpau-copy (mpeg4-vdpau-copy)
  vdpau-copy (vc1-vdpau-copy)
  vdpau-copy (vp9-vdpau-copy)
  vdpau-copy (wmv3-vdpau-copy)
  vdpau-copy (av1-vdpau-copy)
  qsv (h264_qsv-qsv)
  qsv (hevc_qsv-qsv)
  qsv (mpeg2_qsv-qsv)
  qsv (vc1_qsv-qsv)
  cuda (av1_cuvid-cuda)
  qsv (av1_qsv-qsv)
  cuda (h264_cuvid-cuda)
  cuda (hevc_cuvid-cuda)
  cuda (mjpeg_cuvid-cuda)
  qsv (mjpeg_qsv-qsv)
  cuda (mpeg1_cuvid-cuda)
  cuda (mpeg2_cuvid-cuda)
  cuda (mpeg4_cuvid-cuda)
  cuda (vc1_cuvid-cuda)
  cuda (vp8_cuvid-cuda)
  qsv (vp8_qsv-qsv)
  cuda (vp9_cuvid-cuda)
  qsv (vp9_qsv-qsv)
  v4l2m2m-copy (h263_v4l2m2m-v4l2m2m-copy)
  v4l2m2m-copy (h264_v4l2m2m-v4l2m2m-copy)
  qsv-copy (h264_qsv-qsv-copy)
  qsv-copy (hevc_qsv-qsv-copy)
  v4l2m2m-copy (hevc_v4l2m2m-v4l2m2m-copy)
  v4l2m2m-copy (mpeg4_v4l2m2m-v4l2m2m-copy)
  v4l2m2m-copy (mpeg1_v4l2m2m-v4l2m2m-copy)
  v4l2m2m-copy (mpeg2_v4l2m2m-v4l2m2m-copy)
  qsv-copy (mpeg2_qsv-qsv-copy)
  qsv-copy (vc1_qsv-qsv-copy)
  v4l2m2m-copy (vc1_v4l2m2m-v4l2m2m-copy)
  v4l2m2m-copy (vp8_v4l2m2m-v4l2m2m-copy)
  v4l2m2m-copy (vp9_v4l2m2m-v4l2m2m-copy)
  cuda-copy (av1_cuvid-cuda-copy)
  qsv-copy (av1_qsv-qsv-copy)
  cuda-copy (h264_cuvid-cuda-copy)
  cuda-copy (hevc_cuvid-cuda-copy)
  cuda-copy (mjpeg_cuvid-cuda-copy)
  qsv-copy (mjpeg_qsv-qsv-copy)
  cuda-copy (mpeg1_cuvid-cuda-copy)
  cuda-copy (mpeg2_cuvid-cuda-copy)
  cuda-copy (mpeg4_cuvid-cuda-copy)
  cuda-copy (vc1_cuvid-cuda-copy)
  cuda-copy (vp8_cuvid-cuda-copy)
  qsv-copy (vp8_qsv-qsv-copy)
  cuda-copy (vp9_cuvid-cuda-copy)
  qsv-copy (vp9_qsv-qsv-copy)
  auto (yes '')
  no
  auto-safe
  auto-copy
  auto-copy-safe
Available video outputs:
  libmpv           render API for libmpv
  gpu              Shader-based GPU Renderer
  vdpau            VDPAU with X11
  wlshm            Wayland SHM video output (software scaling)
  xv               X11/Xv
  vaapi            VA API with X11
  x11              X11 (software scaling)
  null             Null video output
  image            Write video frames to image files
  tct              true-color terminals
  drm              Direct Rendering Manager (software scaling)

mpv.config

vo=gpu
hwdec=auto
hdr-compute-peak=no

OR

vo=gpu
hwdec=nvdec
hdr-compute-peak=no
vo=gpu
hwdec=cuda
hdr-compute-peak=no

console

mpv --no-config --hwdec=auto --vo=gpu --hdr-compute-peak=no "Videofile"

8k 60fps HDR works

you need no cuda extra install

In your case, is it Wayland, not X11? I have tried all the three you said (did not expect the third one would work, because cuda is not installed), and all three crashed with the same message.

Xlib:  extension "NV-GLX" missing on display ":0".
Xlib:  extension "NV-GLX" missing on display ":0".
zsh: floating point exception (core dumped)

The video is just a typical 1080p 29fps h264 video.

Is that a system with 2 graphics cards?

No, only one RTX2060 card.

By the way, I logged in to X11 and that conf worked without crashing. Are you sure that you are using Wayland?

PS: If it is of any worth, there are two monitors.

i use x11.
wayland +nvidia= not a good solution

Well… After some web searching, I have found

I think to remember that Nvidia doesnt support VAAPI at all. There is however a wrapper that might work, or not. For VDPAU, it requires X11 to run and wont work on wayland or even xwayland.

Source

If Nvidia’s hardware decoding does not work under Wayland, I wish Arch MPV page had mentioned the fact so that we would not have wasted time.

It’s a Wiki, so you’re invited to add that important piece of information yourself.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.