0.29.0 23 Jul 2018

Open-source general-purpose video player.


Developer website:

mpv is a free and open-source general-purpose video player. mpv is based on the MPlayer and mplayer2 projects, which it seeks to improve.

What's New

Version 0.29.0:


  • ao/openal: Add better sample format and channel layout selection
  • ao/openal: Add support for direct channels output
  • cocoa-cb: initial implementation via opengl-cb API
  • context_drm_egl: Introduce 30bpp support (requires Mesa 18.0.0_rc4 or later)
  • osx: add some more menu bar items as suggested by Apples's HIG
  • vo_gpu: make screenshots use the GL renderer (#5498, #5240)
  • x11: support Shift+TAB as an input key bind (#5849)
  • ytdl_hook: support native dash demuxer, if present


  • ao_alsa, ao_pulse: reduce requested buffer size
  • audio: change format negotiation, remove channel remix fudging
  • client API: deprecate opengl-cb API and introduce a replacement API
  • demux: lower demuxer cache default sizes from 400MB/400MB to 50MB/150MB
  • osx: always deactivate the early opengl flush on macOS
  • scripting: change when/how player waits for scripts being loaded
  • vo_gpu: various improvements to HDR peak detection
  • vo_gpu: various improvements to HDR tone mapping
  • wayland_common: update to stable xdg-shell
  • ytdl_hook: parse youtube playlist urls to set start index if --ytdl-raw-option=yes-playlist= is specified


  • af_lavrresample: deprecate this filter


  • build: drop support for SDL1 (only applied to ao_sdl)


  • add a number of --audio-resample-* options, which should from now on be used instead of --af-defaults=lavrresample:
  • ao/openal: --openal-direct-channels
  • command: add --osd-on-seek option defaulting to bar
  • command: add a change-list command (#5435)
  • options: add --http-proxy
  • options: add a builtin low-latency profile
  • vaapi: add option to select a non-default device path with --vaapi-device (#4320)
  • video: add option to reduce latency by 1 or 2 frames
  • vo_gpu: introduce --target-peak (#5521)


  • command: change cycle-value command behavior (#5772)
  • config: replace config dir lua-settings/ with dir script-opts/
  • options: --lavfi-complex now requires uniquely named filter pads.
  • options: --ytdl is now always enabled, even for libmpv
  • options: make --deinterlace=yes always deinterlace (#5219)
  • options: slightly improve filter help output for lavfi bridge
  • vo: rename --vo=opengl-cb to --vo=libmpv


  • encoding: deprecate a bunch of obscure options (--ovoffset, --oaoffset, --ovfirst, --oafirst)
  • options: deprecate --vf-defaults and --af-defaults
  • osx: --gpu-context=cocoa with --gpu-api=opengl is now deprecated in favour of --vo=libmpv


  • command: remove an old compatibility hack that allowed CLI aliases to be set as property, deprecated in 0.26.0
  • input: remove legacy command handling for MPlayer commands that were deprecated in 2013
  • options: drop --opensles-sample-rate, as --audio-samplerate should be used if desired
  • options: drop deprecated --videotoolbox-format, --ff-aid, --ff-vid, --ff-sid, --ad-spdif-dtshd, --softvol options
  • options: remove --video-stereo-mode
  • options: remove deprecated ao/vo auto profiles
  • options: remove the following encoding options: --ocopyts (now the default, old timestamp handling is gone), --oneverdrop (now default), --oharddup (you need to use --vf=fps=VALUE), --ofps, --oautofps, --omaxfps
Fixes and minor enhancements:
  • HIDRemote: fix volume buttons on macOS 10.13 (#5721)
  • TOOLS/autoload: Fix broken "disabled" option
  • TOOLS/autoload: be more robust with slow directory listings (#5618)
  • ao_sdl: fix default buffer size
  • build: add static libraries to libmpv.pc
  • build: bump waf to 2.0.9 (fixes Python 3.7 compatibility)
  • build: manually add standard library search paths for linking (#5791)
  • common: round all integer times to milliseconds
  • demux, player: fix playback of sparse video streams (w/ still images)
  • demux: support for some kinds of timed metadata (e.g. ICY)
  • demux_mkv: add V_AV1 identifier for AV1
  • demux_mkv: support Meridian Lossless Packing in Matroska (#5923)
  • display additional metadata tags during video playback
  • drm_atomic: Fix memory leaks in drm_atomic_create
  • enable cache for FUSE filesystems on OpenBSD and FreeBSD
  • gpu: prefer 16bit floating point FBO formats to 16bit integer ones
  • hwdec_vaegl: Fix VAAPI EGL interop used with gpu-context=drm
  • input.conf: use exact value for [ binding, which does the inverse of ]
  • input: add a keybinding to toggle hardware decoding
  • input: minor additions to default key bindings (#973)
  • osc: fix accidentally skipping files when seeking with slider
  • player: fix strange behavior on edition switching
  • player: fix track autoselection of external files yet again
  • terminal-unix: stop trying to read when terminal disappears (#5842)
  • video: actually wait for last frame being rendered on EOF
  • video: fix --video-rotate in some cases
  • video: fix crash with vdpau when reinitializing rendering (#5447)
  • vo_gpu: fix anamorphic screenshots (#5619)
  • vo_vdpau: fix resizing and rotation problems


  • OS X 10.8 or later


Current Version (0.x)


Version Downloads
Multimedia Design / Video
23 Jul 2018
Intel 64 / OS X