mpv (简体中文)

From ArchWiki
Jump to navigation Jump to search

翻译状态: 本文是英文页面 Mpv翻译,最后翻译时间:2016-04-13,点击这里可以查看翻译后英文页面的改动。

mpv 是一个基于 MPlayer 和 MPlayer2 的多媒体播放器。 它支持多种视频文件格式、音频和视频编解码器和字幕类型。 在这里可以找到mpv播放器与上述播放器之间的区别的综合列表(可能不是完全统计)。


安装 official repositories里的软件包mpv or Arch User Repository 里的 mpv-gitAUR


mpv 提供了一个叫做OSC的优雅的用户界面(在移动鼠标时出现),为了降低普通用户的使用难度,还有其他的图形界面:

  • Baka MPlayer — 免费、开源、跨平台, 基于libmpv的多媒体播放器。(Qt 5) || baka-mplayer, baka-mplayer-gitAUR
  • bomi — 强大易用的多媒体播放器 (Qt 5)。 || bomiAURbomi-gitAUR
  • GNOME MPV — 一个简单的 mpv 前端 (GTK+ 3). || gnome-mpv-gitAUR[broken link: package not found]gnome-mpv
  • SMPlayer — Qt 写的拥有额外特性的多媒体播放器 (CSS 主题, YouTube 整合等等) (Qt 5). || smplayer
  • xt7-player-mpv — Qt/Gambas 写的 mpv 图形界面,提供了一套丰富的配置选项,包括过滤器和驱动,ladspa 插件支持以及资源库/播放列表管理, 还有YouTube, 在线电台, podcasts, DVB-T 和更多。 || xt7-player-mpv-gitAUR
Note: CMPlayer/bomi 安装包已在内部集成 mpv


mpv's configuration is read from the files mpv.conf (settings), input.conf (key bindings), and lua-settings/osc.conf (on screen display). For a full list of options, see the man page or the github docs options.rst, input.rst, and osc.rst.

If the environment variable XDG_CONFIG_HOME is not set, user configuration files will be read from the ~/.config/mpv directory. System-wide configuration files are read from the /etc/mpv directory.

一个示例 input.conf 文件

Copying the following into ~/.config/mpv/input.conf will add a number of useful keybindings to mpv such as rotating video 90 degrees, zooming and panning.

Alt+RIGHT add video-rotate 90
Alt+LEFT add video-rotate -90
Alt+- add video-zoom -0.25
Alt+= add video-zoom 0.25
Alt+j add video-pan-x -0.05
Alt+l add video-pan-x 0.05
Alt+i add video-pan-y 0.05
Alt+k add video-pan-y -0.05



Unlike mplayer and mplayer2, mpv has both VA-API and VDPAU support built-in. To enable it, run mpv with the --hwdec='method' option. You can find list of all available methods looking for --hwdec=<api> in man page mpv (1). To make this persistent, add the line hwdec=method to your configuration file. When hardware decoding is used, the video output should be set to opengl, opengl-hq or vdpau (if using hwdec=vdpau). Using vo=vaapi is not recommended for use anymore [1]. If hardware decoding cannot be used, mpv will automatically fall back to software decoding. See options.rst and vo.rst for more information.


The opengl-hq video output is an OpenGL output preconfigured with various options by the mpv developers. To make use of it, specify it in your configuration file.


This comes with a GLSL debanding filter by default, which may lead to bad performance for some users, and can reduce the visual quality of grainy content. You can disable it easily though.



The default key to quit mpv, saving the video's current position and state, is Shift+q. This key can be changed by adding the quit_watch_later string in the key bindings configuration file.

To always automatically save the current playback position on quit, start mpv with a flag --save-position-on-quit. To make option permanent, add line save-position-on-quit to configuration file.


Set softvol-max=value in your configuration file to a reasonable amount, such as softvol-max=600. Additionally (or alternatively), you can utilize dynamic range compression with af=drc.


You can cycle between aspect ratios using Shift+a from version 0.8.0 onwards.


Run mpv with --wid=0. This tells mpv to draw onto a window with a window ID of 0.


It may be useful to always show the GUI window, even for audio files, especially when mpv is not started from terminal. This can be done by using --force-window option.


With the help of mozpluggerAUR, mpv can be used in a supported browser to play video. See Browser plugins#MozPlugger for configuration details. This coupled with a user script such as ViewTube, allows you to use mpv in place of a site's integrated video player.

Browser plugins#Video players workarounds[broken link: invalid section] page shows other easy ways to watch videos.


The development of mpv's Lua scripts are documented in DOCS/man/lua.rst and examples are shown in TOOLS/lua of the mpv repository. This blog post introduces the music.lua script, which shows how Lua scripts can be used to improve mpv as a music player. streaming over mpv

If youtube-dl is installed, mpv can directly open a Twitch livestream.

Alternatively, livestreamer[broken link: archived in aur-mirror] can be used to stream Twitch. See Livestreamer#Twitch.

Another alternative based on Livestreamer is this Lua script:

使用youtube-dl 并选择格式

The default --ytdl-format is bestvideo+bestaudio/best. For youtube videos that have 4K resolutions available, this may mean that your device will struggle to decode 4K VP9 encoded video in software even if the attached monitor is much lower resolution.

Setting the right youtube-dl format selectors can fix this easily though. In the following configuration example, only videos with a vertical resolution of 1080 pixels or less will be considered.


If you wish to avoid a certain codec altogether because you cannot hardware-decode it, you can add this to the format selector. For example, we can additionally choose to ignore VP9 as follows:


youtube-dl audio with search

To find and play audio straight from your terminal with mm ' SEARCH ' put the following function in your .bashrc:

mm () { youtube-dl ytsearch:"$@" -q -f bestaudio --ignore-config --console-title --print-traffic --max-downloads 1 --no-call-home --no-playlist -o - | mpv --no-terminal --no-video --cache=256 -; }


If you're using a compositor (e.g. in KDE Plasma 5) and find that composition is disabled (e.g. in Plasma this would make you unable to present windows or see window thumbnails in the default app switcher) when mpv is playing a video, try x11-bypass-compositor=no


Vapoursynth is an alternative to AviSynth that can be used on Linux and allows for Video manipulation via python scripts. Vapoursynths python scripts can be used as video filters for mpv.

To use vapoursynth filters you have to install the vapoursynth package and compile mpv with the --enable-vapoursynth build flag.

Debanding (flash3kyuu)

To use the f3k_db debanding filter install vapoursynth-plugin-flash3kyuu_deband-gitAUR[broken link: archived in aur-mirror] and write a python script that uses the vapoursynth extension.

The following sample script can be used to enable debanding in mpv.

import vapoursynth as vs
core = vs.get_core()

clip = video_in
clip = core.std.Trim(clip, first=0, length=500000)
clip = core.f3kdb.Deband(clip, grainy=0, grainc=0, output_depth=16)

Finally specify the python script in the config file or use a command line argument when executing mpv.

mpv <video_file>