A free, open source, and cross-platform media player for Mac!

MPV Player for Mac

MPV Player for Mac

  -  22.69 MB  -  Open Source
  • Latest Version

    MPV Player 0.39.0 LATEST

  • Review by

    Sophia Jones

  • Operating System

    macOS 11.0 Big Sur or later

  • User Rating

    Click to vote
  • Author / Product

    MPV Player Team / External Link

  • Filename

    mpv-0.39.0.tar.gz

  • MD5 Checksum

    982ca47d1095a46d2659f228a25b6dd8

MPV Player for Mac is a free media player for the command line. It supports a wide variety of media file formats, audio and video codecs, and subtitle types.

MPV Player for macOS is a media player based on MPlayer and mplayer2. It supports a wide variety of video file formats, audio and video codecs, and subtitle types. Special input URL types are available to read input from a variety of sources other than disk files. Depending on platform, a variety of different video and audio output methods are supported.

It has a fully configurable, command-driven control layer which allows you to control MPV using keyboard, mouse, or remote control (there is no LIRC support - configure remotes as input devices instead).

Features and Highlights

Scripting
Powerful scripting capabilities can make the player do almost anything.

On Screen Controller
While the app strives for minimalism and provides no real GUI, it has a small controller on top of the video for basic control.

High quality video output
MPV has an OpenGL, Vulkan, and D3D11 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
It can leverage most hardware decoding APIs on all platforms. Hardware decoding can be enabled at runtime on demand.

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 Player is under active development, focusing on code refactoring and cleanups as well as adding features.

Note: MPV has no official GUI.

Also Available: Download MPV Player for Windows

What's new in this version:

Key highlights:
- A new select.lua script, allowing users to easily choose files from playlists, tracks, chapters, output devices, and more
- A native replacement for autoload.lua has been implemented. See --autocreate-playlist in the manual.
- NVIDIA RTX and Intel VSR scaling are now supported via the d3d11va filter
- Media controls are now supported on Windows
- Track selection has been improved, especially for multi-component languages like fr-CA
- A new fifth page has been added to stats.lua, displaying track information
- Compatibility with dmabuf-wayland has been significantly enhanced
- Multi-touch support has been introduced

Features:
New:
- vf_d3d11vpp: add support for Intel VSR and NVIDIA RTX scaling modes
- demux: add --autocreate-playlist
- audio: add pitch-shifting feature
- win32: add Media Control support
- various: allow changing GPU API options at runtime
- vo_gpu_next: support --gamma-factor
- vf_vapoursynth: upgrade to VapourSynth API v4
- select.lua: add this script
- console.lua: implement a command parser to complete more things
- demux_mkv: demux Block Additional Mappings
- cocoa-cb: add support for macOS color space transformation (EDR/HDR)
- powershell-completion: add PowerShell command line completion
- input: implement VO dragging deadzone
- win32: support multitouch
- wayland_common: support multitouch
- demux/packet: add support for ITU T.35 metadata in Matroska
- demux: support VVC Matroska demux
- terminal-win: support mouse input events
- x11_common: detect wm support for _NET_WM_STATE_SKIP_TASKBAR

Changed:
- loadfile: improve the format of terminal track information
- options: add secondary-{sid,sub-delay} to watch_later_options
- input: map Num 5 to distinct value when numlock is off
- input.conf: make Alt+BS reset panscan
- msg: don't use bold colors and instead use bright ones

Options and Commands:
Added:
- sub: add ass-video-aspect-override option
- input/keycodes: add KP_ADD/SUBTRACT/MULTIPLY/DIVIDE keycodes
- demux_playlist: use --directory-filter-types for --autocreate-playlist
- options: add --{video,audio,image}-exts
- player: don't decrement --ab-loop-count=N and add remaining-ab-loops
- player: don't decrement --loop-file=N and add remaining-file-loops
- sub: add (sub/osd)-border-style; renaming sub options
- input.conf: add zoom, pan, scale and rotate keybinds for numpad
- wayland: add a --wayland-present option
- mac/menu: add option to disable default shortcuts
- stats.lua: display file tags
- osc.lua: add option to use display fps for update interval
- osc.lua: add option to make rendering smoother
- opengl: add --egl-output-format, --egl-config-id
- vf_vapoursynth: add parameter to pass arbitrary string to script
- options: add --osd-playlist-entry
- {osc,stats}.lua: add 'auto' value to vidscale option
- input/cmd: add nonrepeatable prefix
- player: add option-info/<name>/expects-file
- command: add dolby-vision-profile and dolby-vision-level to track-list
- scripting: add mp.input.select()
- command: add normalize-path command
- OSC: implemented user configurable colors
- ao_wasapi: add --wasapi-exclusive-buffer option
- stats.lua: add option to disable scale with video size
- stats.lua: add option to control plot border width
- player/command: add track-list/N/decoder
- sd_ass: add sub-vsfilter-bidi-compat to enable vsfilter bidi compat
- {x11,w32}_common: implement --show-in-taskbar option

Changed:
- sub: merge vsfilter-aspect and vsfilter-blur-compat options
- input.conf: swap the positions of values for ctrl+h binding
- video/csputils: remove space from choice option for chroma loc
- input.conf: add KP_DIVIDE/KP_MULTIPLY key bindings
- external_files: allow specifying --cover-art-whitelist filenames
- x11_common: handle runtime keepaspect/keepaspect-window change
- video/out/gpu/context: convert --gpu-api to object settings list
- playlist: let playlist-next go to first item if player is idle
- playlist: let playlist-prev go to last item in playlist
- options: remove deprecated auto choice for --mute
- player/command: alias playback-time to time-pos
- input.conf: change 'u' binding to cycle between 'force' and default
- options: make sub-ass-override default to 'scale'
- sd_ass: only set sub-scale for 'scale', 'force' or 'strip'
- player/command: mark sub-text-ass as deprecated
- player/command: add sub-text/ass-full sub-property
- player/command: move sub-text-ass to a sub-property

Removed:
- command: remove deprecated packet-*-bitrate properties
- console.lua: remove the scale script-opt
- osc.lua: remove scaleforcedwindow
- Fixes and Minor Enhancements:
- wayland: fix vertical resizing
- stats.lua: don't use ASS tags when use_ass is false
- video/out/wayland_common: set key state only on keyboard_enter keys
- input: add MP_KEY_STATE_SET_ONLY
- vo_gpu: use fallback colorspace for Dolby Vision
- video/out/wayland_common: don't pass mouse inputs on resizing edges
- hwdec_vulkan: allow using multiple decoding family queues
- hwdec_vulkan: update to new libavutil queue family API
- drm_prime: fix use of formats with modifiers
- build: bump minimum Windows version to 10
- input/ipc-win: support fd:// for --input-ipc-client
- player/command: fix --force-window=yes acting like immediate
- sd_ass: fix margin y scale with font size
- sd_ass: fix sub scale with window when use_margins is enabled
- loadfile,select.lua: print bitrates of tracks
- wayland: avoid potential floating point errors while scaling
- vo_dmabuf_wayland: don't use -ve margins in window size calculation
- ytdl_hook.lua: allow changing try_ytdl_first during runtime
- wayland: fix missed int -> double conversion for cursor scaling
- player/loadfile: enable streams in order of types when loading file
- misc/natural_sort: avoid implementation-defined behavior in comparison
- demux: allow refresh seek for non-video streams
- demux_edl: fix infinite loop on empty EDL files
- d3d11: return minimum bitdepth for display output and swapchain
- stats.lua: add page 5 for currently selected tracks information
- autoload.lua: fix options update
- input: prevent MBTN_LEFT conflict with VO dragging
- TOOLS/autoload.lua: fix directory_mode and ext options
- player/video: fix incorrect VO frame duration and frame drops
- x11: correct position coordinates if mpv was launched with --fs
- vo_vaapi: fix use-after-free when quitting
- vo_vaapi: fix use-after-free of current frame
- playloop: don't loop when seeking to the end of cover art while paused
- build: dynamically generate mpv.desktop file protocols
- wayland: use wl->callback_surface for idle inhibitor creation
- wayland: cap xdg_wm_base at 4 if wm_capabilities aren't supported
- {options,player}: fix stream leaks
- console.lua: increase margins from the bottom-left corner
- external_files: detect language tags with hyphens
- player/loadfile: match language and subcodes
- player: normalize paths for resuming playback
- demux_mkv: fix image detection
- demux_mkv: make V_QUICKTIME codec detection generic
- osd: show left arrow when playing backwards
- wayland: set wl->scaling if there is no wl->current_output yet
- sub/osd: fix rounding when rescaling bitmap subtitle rects
- zsh-completion: complete --gpu-context
- stats.lua: show osd-dimensions property
- sub/lavc_conv: don't override style of converted teletext pages
- mac: make display-names unique to allow specific selection
- vo_dmabuf_wayland: use wl_fixed_from_int when setting viewport source
- vo_dmabuf_wayland: fix scaling for subsurface positioning
- demux: also read "CUESHEET" tag from stream metadata
- stats.lua: filter input bindings by typing them
- vo_{tct,sixel,kitty}: implement mouse support
- terminal-unix: ignore unhandled mouse CSI sequences
- terminal-unix: support mouse escape codes
- sd_ass: fix margins for all styles when overriding PlayResX
- stats.lua: inherit OSD styles
- options: fix runtime update of teletext-page
- ytdl_hook: add some more yt-dlp tags
- vulkan: don't tolerate suboptimal swapchain configurations
- vd_lavc: add Vulkan hardware decoding to autoprobe
- sub/osd: add log if osd rendering takes too long time
- vo_gpu_next: allow setting antiring value for cscale
- f_auto_filters: don't set interlaced-only for userdeint
- vo_dmabuf_wayland: reject formats not supported by the GPU
- ytdl_hook: make path and json available to other scripts