Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/mpv-player/mpv/llms.txt

Use this file to discover all available pages before exploring further.

Video output drivers are interfaces to different video output facilities. mpv automatically selects the best available driver, but you can override it with --vo.
mpv --vo=<driver> video.mkv
Pass a comma-separated priority list to fall back automatically:
mpv --vo=gpu-next,gpu video.mkv
Run mpv --vo=help to list all compiled-in video output drivers on your system.

gpu-next

libplacebo-based renderer. The recommended default. Generally faster and higher quality than gpu.

gpu

General-purpose GPU renderer. Mature, widely supported, with extensive options for scaling and color management.

gpu-next

gpu-next is the default video output driver. It is based on libplacebo and supports nearly the same feature set as --vo=gpu, while being faster and higher quality in most cases. Some features may be intentionally omitted or behave differently.
mpv --vo=gpu-next video.mkv
For a detailed list of differences between gpu-next and gpu, see the GPU-Next vs GPU wiki page.

gpu

gpu is a general-purpose, customizable, GPU-accelerated output driver. It supports extended scaling methods, dithering, color management, custom shaders, HDR, and more.
mpv --vo=gpu video.mkv
gpu abstracts over several graphics APIs and windowing contexts, controlled with --gpu-api and --gpu-context.

Predefined profiles

mpv --profile=fast video.mkv
Uses bilinear scaling and disables many quality-oriented features. Best for lower-end hardware.
Inspect a profile’s full settings:
mpv --show-profile=high-quality

GPU API and context

Use --gpu-api to select the graphics API and --gpu-context to select the windowing backend.
# Use Vulkan
mpv --gpu-api=vulkan video.mkv

# Use OpenGL
mpv --gpu-api=opengl video.mkv

# Use D3D11 (Windows)
mpv --gpu-api=d3d11 video.mkv
Available --gpu-context values:
ContextDescription
autoAuto-select (default)
x11X11/GLX (Linux, deprecated in favor of EGL)
x11eglX11/EGL
x11vkX11 Vulkan
waylandWayland/EGL
waylandvkWayland Vulkan
drmDRM/EGL (Linux, no desktop needed)
d3d11Direct3D 11 (Windows)
angleD3D11 via ANGLE (Windows)
winWin32/WGL (Windows)
winvkWin32 Vulkan
macvkVulkan on macOS (experimental)

GPU renderer options

These options apply to both --vo=gpu and --vo=gpu-next.

Scaling

Controls the filter used when upscaling video.
# Default: lanczos (good balance of quality and speed)
mpv --scale=lanczos video.mkv

# High quality (used by high-quality profile)
mpv --scale=ewa_lanczossharp video.mkv

# Fast (used by fast profile)
mpv --scale=bilinear video.mkv
Common values: bilinear, lanczos, ewa_lanczos, ewa_lanczossharp, ewa_lanczos4sharpest, mitchell, catmull_rom.List all available filters: mpv --scale=help
Filter for upscaling chroma information in subsampled video. Defaults to the value of --scale if unset.
mpv --cscale=ewa_lanczos video.mkv
Filter applied when downscaling video. Defaults to hermite.
mpv --dscale=mitchell video.mkv
When using convolution filters, extends the filter size during downscaling for higher quality. Enabled by default.
mpv --correct-downscaling video.mkv
Uses a sigmoidal color transform when upscaling to avoid emphasizing ringing artifacts. Enabled by default.
mpv --sigmoid-upscaling video.mkv

Color management

# Load an ICC profile for accurate color output
mpv --icc-profile=/path/to/profile.icc video.mkv

# Auto-detect the system ICC profile
mpv --icc-profile-auto video.mkv

# Enable HDR passthrough / set colorspace hint on the display
mpv --target-colorspace-hint=auto video.mkv
--target-colorspace-hint sets colorspace metadata on the display’s swapchain (useful for HDR passthrough). Supported on Wayland, D3D11, and winvk contexts. auto (default) only sets the hint when display parameters are known; yes always attempts to set it.

Dithering

# Dither to 8-bit output
mpv --dither-depth=8 video.mkv

# Auto-detect target depth (default)
mpv --dither-depth=auto video.mkv

# Disable dithering
mpv --dither-depth=no video.mkv
Explicitly setting --dither-depth to your display’s bit depth is recommended, as bit depth cannot be auto-detected on most platforms.

Other video output drivers

Produces no video output. Useful for benchmarking.
mpv --vo=null video.mkv
Uses the XVideo extension for hardware-accelerated display. Compatible but low-quality, with OSD and subtitle issues. For compatibility with old systems only.
mpv --vo=xv video.mkv
Intel VA API video output with hardware decoding support. Low quality with OSD issues. Prefer --vo=gpu --hwdec=vaapi instead.
mpv --vo=vaapi video.mkv
VDPAU display and optional hardware decoding. No reason to use this over --vo=gpu --hwdec=nvdec.
mpv --vo=vdpau video.mkv
Direct Rendering Manager output using Kernel Mode Setting. Use when no graphical environment is installed. Does not support hardware acceleration (use the drm backend for --vo=gpu for that).
mpv --vo=drm video.mkv
mpv --vo=drm --drm-connector=HDMI-A-1 video.mkv
Wayland output designed for DRM stateless or VA API hardware decoding. Avoids GPU-to-CPU copies. Requires --hwdec=auto-safe for best results.
This driver is experimental and generally lower quality than gpu/gpu-next. Standard --vo=gpu and --vo=gpu-next switch to the appropriate Wayland context automatically.
Uses the Direct3D interface. For systems without proper OpenGL drivers and where ANGLE does not perform well.
mpv --vo=direct3d video.mkv
SDL 2.0+ render output. For systems where no proper graphics drivers are available.
mpv --vo=sdl video.mkv