Streamlined CLI options

MPlayer's options parser was improved to behave more like other CLI programs, and many option names and semantics were reworked to make them more intuitive and memorable.

On Screen Controller

While mpv has no official GUI, it has a small controller that is triggered by mouse movement.

High quality video output

mpv has an OpenGL based video output that is capable of many features loved by videophiles, such as video scaling with popular high quality algorithms, color management, frame timing, interpolation, HDR, and more.

GPU video decoding

mpv leverages the FFmpeg hwaccel APIs to support VDPAU, VAAPI, DXVA2, VDA and VideoToolbox video decoding acceleration.

Embeddable

A straightforward C API was designed from the ground up to make mpv usable as a library and facilitate easy integration into other applications.

Active development

mpv is under active development, focusing on code refactoring and cleanups as well as adding features. Want a feature? Post a patch or request it!

What's New

Fixes and Minor Enhancements

  • ao_pipewire: log version and other useful debug info
  • wayland: error out if essential protocol support is missing
  • wayland: also log refresh rate on surface entrance
  • vo_gpu_next: fix undefined behavior on alpha-first formats
  • meson: prepend MPV_CONFDIR path with prefix
  • meson: unbreak dl check on BSDs without libdl
  • lcms: fix crash with lcms2-related options if lcms is disabled
  • meson: fix stdatomic detection on bsd
  • osc: don't spam window-controls bindings on every render
  • wayland: check for resize/move in touch event first
  • ao_coreaudio: use device's nominal sample rate for latency properties
  • ao_pipewire: properly clean up resources
  • filter_kernels: fix kaiser
  • hwdec/d3d11va: fix a possible memory leak
  • external_files: set log level for potential files to trace
  • vo_opengl: do not blindly reject all Microsoft's OpenGL implementations
  • ao_coreaudio: use AudioUnitReset as ao_driver.reset to prevent long restart
  • hwdec_drmprime: fix memory leak
  • vo: hwdec: fix libdrm-related memory leak
  • draw_bmp: ensure last slice width is less than total width
  • wayland: dispatch and wait for compositor events in uninit
  • demux: boost read EBU R128 gain values to ReplayGain's reference level
  • version.py/version.sh: bump copyright year
  • vulkan: fix build error for 32bit builds with clang
  • vo_wlshm: cleanup on failure
  • ra_d3d11: fix incorrect type
  • meson: also search for rst2html with .py extension
  • audio: fix crash during uninit with ao_lavc
  • mp_image: fix XYZ primaries default
  • vd_lavc: add "auto" choice for vd-lavc-dr
  • vo: implement VO_DR_FLAG_HOST_CACHED
  • x11: fix issue with xpresent timing feedback