Skip to main content
Video output drivers are interfaces to different video output facilities. mpv automatically selects the best available driver, but you can override it with --vo.
Pass a comma-separated priority list to fall back automatically:
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.
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.
gpu abstracts over several graphics APIs and windowing contexts, controlled with --gpu-api and --gpu-context.

Predefined profiles

Uses bilinear scaling and disables many quality-oriented features. Best for lower-end hardware.
Inspect a profile’s full settings:

GPU API and context

Use --gpu-api to select the graphics API and --gpu-context to select the windowing backend.
Available --gpu-context values:

GPU renderer options

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

Scaling

Controls the filter used when upscaling video.
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.
Filter applied when downscaling video. Defaults to hermite.
When using convolution filters, extends the filter size during downscaling for higher quality. Enabled by default.
Uses a sigmoidal color transform when upscaling to avoid emphasizing ringing artifacts. Enabled by default.

Color management

--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

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.
Uses the XVideo extension for hardware-accelerated display. Compatible but low-quality, with OSD and subtitle issues. For compatibility with old systems only.
Intel VA API video output with hardware decoding support. Low quality with OSD issues. Prefer --vo=gpu --hwdec=vaapi instead.
VDPAU display and optional hardware decoding. No reason to use this over --vo=gpu --hwdec=nvdec.
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).
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.
SDL 2.0+ render output. For systems where no proper graphics drivers are available.