mpv 0.21.0 – Open-source general-purpose video player.

mpv 0.21.0

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.

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 a 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, and more.

GPU video decoding

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


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

What’s New

Version 0.21.0:

  • config: allow profile forward-references in default profile
  • demux_lavf: "support" mov edit lists and log errors if used (FFmpeg only)
  • hwdec: Add support for CUDA and cuvid/NvDecode (mostly useful on Linux where VDPAU still lacks HEVC Main 10 support; keep using DXVA2 on Windows)
  • osc: add right-click behavior to playlist and chapter buttons
  • osc: add user-alterable margin for top/bottombar
  • rpi: add --hwdec=rpi-copy
  • sd_lavc: enable teletext
  • vaapi: support drm devices when running in vaapi-copy mode
  • vd_lavc: Add hwdec wrapper for crystalhd
  • vo_opengl: add hw overlay support and use it for RPI
  • vo_opengl: basic mali fbdev support
  • vo_opengl: rpi: merge vo_rpi features
  • vo_opengl: remove pre/post/scale-shaders in favor of user-shaders
  • config: deprecate ao and vo auto-profiles
  • vo_rpi: deprecate this VO
Options and Commands: Added
  • add --teletext-page option
  • af_pan: add af-command support to change the matrix
  • af_rubberband: add af-command and option to change the pitch
  • command: add a load-script command
  • command: add a video-dec-params property
  • command: add an apply-profile command
  • command: add audio-pts property to get the audio pts
  • command: add options to property list
  • command: add sub-text property for current subtitle text
  • command: export profile list as a property
  • options: add --hwdec=yes as alias for --hwdec=auto
  • player: add --player-operation-mode=pseudo-gui
  • player: add --video-osd=no option to disable video OSD
  • player: add --watch-later-directory option
  • stream_bluray: select title by playlist (bd://mpls/[playlist] )
  • vo_opengl: disable glFlush() by default, and add an option to enable it for testing
Options and Commands: Changed
  • af_rubberband: default to channels=together
  • command: allow absolute seeks relative to end of stream
  • command: make bitrate properties observable
  • command: make most options observable
  • msg: make --log-file and --dump-stats accept config path expansion
  • options: deprecate --playlist-pos to --playlist-start
  • options: make input options generally runtime-settable
  • options: rename subtitle options (--sub-text- → --sub; --ass- → --sub-ass-)
  • osc: change default layout to bottombar, seekbarstyle to bar, use larger scalewindowed and scalefullscreen
  • player: make --terminal, --log-file, --dump-stats, --osc, --ytdl, --audio-*, --priority, --stop-screensaver settable at runtime
  • vo_drm: change CLI options
    • Change connector selection to accept human readable names (such as eDP-1, HDMI-A-2) rather than arbitrary numbers.
    • Change GPU selection to accept GPU number rather than device paths.
    • Merge connector and GPU selection into one --drm-connector.
    • Add support for --drm-connector=help.
    • Add support for --drm-* in EGL backend.
  • vo_opengl: rename 3dlut-size to icc-3dlut-size
Options and Commands: Removed
  • command: remove hwdec-active and hwdec-detected properties
  • command: remove vo-cmdline
  • options: drop unreferenced --bluray-angle option
  • vo, ao: disable positional parameter suboptions
  • vo_xv: replace no-colorkey with ck-method=none
Options and Commands: Deprecated
  • all VOs and AOs: deprecate sub-options, add them as global options
  • command: deprecate "cache" property, replace with "cache-percent"
  • deprecate --vo-defaults
  • deprecate --vo=opengl-hq alias in favor of opengl-hq profile
  • options: deprecate --mute=auto
  • vo_direct3d: deprecate direct3d_shaders alias, use shaders by default
  • vo_opengl: deprecate 'drm-egl' backend and introduce 'drm' instead
Fixes and Minor Enhancements
  • TOOLS/ die if we can't parse main options
  • TOOLS/ don't filter files by extension
  • ao_alsa: try to fallback to "hdmi" before "iec958" for spdif
  • ao_rsound: fix compilation
  • aspect: use nominal width instead of actual width for video-unscaled
  • audio/out: prevent underruns with spdif under certain conditions
  • audio: fix late audio start
  • audio: fix missed wakeup when changing audio output device
  • audio: fix segfault when yanking USB DAC
  • charset_conv: Use CP949 instead of EUC-KR
  • command: don't log "ignore" command with -v verbosity
  • command: try selecting the next track if track switching fails
  • demux_mkv: don't crash if --ordered-chapters-files fails
  • displayconfig: treat a refresh rate of 1 as invalid
  • ipc: log when listening to IPC socket
  • macOS: fix fullscreen regression on 10.11 and newer
  • mp_image: fix clearing to black with p010 format
  • osc: Fix scaling issues when toggling fullscreen
  • osc: align text vertically in top/bottombar
  • osc: change seekbar background's alpha scaling
  • osc: fix display of chapters and playlist scaling
  • osc: move tooltip to inside seekbar for top/bottombar
  • osc: show playlist/chapter list on prev/next instead of osd
  • path: default ~~ paths to home directory
  • player: do not let pseudo-gui override user config settings
  • player: enable reading from stdin after loading input.conf
  • player: fix instant subtitle refresh on track switches
  • player: make --force-window work with opengl-cb
  • stream_file: don't use poll() on directories (would hang on macOS
  • stream_lavf: fix determining seekability
  • sub: actually apply text alignment options to non-ASS subtitles
  • terminal-win: support modifier keys in console input
  • vo_drm: fix segfault when using invalid card
  • vo_opengl: apply 90° rotation to chroma texture size
  • vo_opengl: fix incorrect video rendering after vdpau preemption recovery
  • vo_opengl: partially fix dumb-mode cropping with rotation
  • vo_opengl: rpi: use overlay for yuv420p too
  • w32_common: initialize playback status as soon as possible
  • wayland: reject resize events with either dimension being 0
  • x11: fix external fullscreen update
  • ytdl_hook: Add title to playlist items if available
  • ytdl_hook: Set aspect ratio for anamorphic video
  • ytdl_hook: Support playlist entries without subtitles
  • ytdl_hook: add chapters by parsing video's description
  • ytdl_hook: don't add subtitles with unknown duration
  • ytdl_hook: temporarily force disable dash segments formats


OS X 10.8 or later, 64-bit processor


  Download Now


You may also like...

Leave a Reply