Unclaimed project
Are you a maintainer of mpv ? Claim this project to take control of your public changelog and roadmap.
Claim this project Changelog
mpv 🎥 Command line media player
audio c ffmpeg mplayer mpv multimedia +1
Last updated about 17 hours ago
© 2026 AnnounceHQ. All rights reserved.
Back to changelogNew September 23, 2024
v0.39.0 We are excited to announce the release of mpv 0.39.0, with more than 5 months of development since the last version. This release brings numerous improvements and fixes across nearly all components.
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.
This release requires FFmpeg 6.1 or newer and libplacebo 6.338.2 or newer.
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
This listing is not complete. Check DOCS/client-api-changes.rst for a history
of changes to the client API, and DOCS/interface-changes.rst for a history
of changes to other user-visible interfaces.
A complete changelog can be seen by running git log v0.38.0..v0.39.0
in the git repository or by visiting
https://github.com/mpv-player/mpv/compare/v0.38.0...v0.39.0.
C
curl A command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, MQTTS, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS. libcurl offers a myriad of powerful features
41.1kC