mpv

出自 ArchWiki

mpv 是一个基于 MPlayer 和现已停止维护的 mplayer2 的媒体播放器。它支持多种视频文件格式、音频和视频编解码器以及字幕类型。关于 mpv 和上述播放器之间详细(但不可否认是不完整的)的差异列表,请点击此处查看。

安装

安装 mpv 软件包或 mpv-gitAUR 以获取开发版本。

前端

请参阅 应用程序列表/多媒体#基于 mpv 的应用程序

配置

mpv 自带良好的通用默认设置,应能在配置较弱/较旧显卡的电脑上良好运行。但是,如果您拥有一台配置较现代显卡的电脑,mpv 允许您进行大量配置以实现更好的视频质量(仅受限于显卡性能)。为此,只需创建几个配置文件(默认情况下它们不存在)。

注意: 配置文件从系统范围的 /etc/mpv/ 和用户范围的 ~/.config/mpv/ 读取(除非设置了 环境变量 XDG_CONFIG_HOME),其中用户设置会覆盖系统范围的设置,而所有这些设置都会被命令行覆盖。建议使用用户特定的配置,因为它可能需要一些试错。

为了帮助您入门,mpv 提供了带有默认设置的示例配置文件。复制它们作为起点

$ cp -r /usr/share/doc/mpv/ ~/.config/

mpv.conf 包含 mpv 的大部分设置,input.conf 包含按键绑定。通读这两个文件以了解它们的工作原理以及可用的选项。

通用设置

将以下设置添加到 ~/.config/mpv/mpv.conf

字幕配置

启用模糊搜索

sub-auto=fuzzy

更改字体

sub-font="fontName"

将字幕加粗以提高可读性

sub-bold=yes

高质量配置

默认情况下,mpv 使用平衡质量和性能的设置。此外,还有两个预定义的配置文件可用:fast 用于最大性能,high-quality 用于卓越的渲染质量。您可以使用 --profile=name 选项应用特定的配置文件,并使用 --show-profile=name 检查其内容。

profile=high-quality

使用 i 键可以调出显示 mpv 运行状况的实时统计信息。它对于确保您的硬件能够跟上您的配置以及比较不同的配置非常有用。

最后两个选项有点复杂。video-sync=display-resample 使音频和视频不同步时,它将重新采样音频而不是丢弃视频帧(音频音调的轻微变化通常比丢帧更不易察觉)。mpv wiki 上有一篇关于它的深入文章,标题为 显示同步interpolation 通过更改帧的显示方式来使运动在显示器上显得更流畅,以便源帧率更好地与显示器的刷新率协调(不要与 SVP 的技术混淆,SVP 的技术实际上是将视频转换为 60fps)。mpv wiki 上有一篇关于它的深入文章,标题为 插帧,尽管它通常也称为 smoothmotion

profile=high-quality
video-sync=display-resample
interpolation
注意: 如果正在使用 NVIDIA Optimus,则 video-sync=display-resample 行可能会导致视频加速。它还会完全搞乱某些系统上的帧步调,似乎完全阻止了插帧工作。

除此之外,您仍然可以做很多事情,但事情变得更加复杂,需要更强大的显卡,并且处于不断开发中。简要概述一下,可以加载特殊的着色器,这些着色器执行奇异的缩放和锐化技术,包括一些实际使用在图像上训练的深度神经网络(用于真实世界和动画内容)。要了解更多关于这方面的信息,请查看 mpv wiki,特别是 用户着色器部分

您可能还会发现许多其他可取的选项。值得查看 mpv(1)。从命令行运行 mpv 以检查关于配置的错误消息也很有帮助。

自定义配置文件

mpv.conf 中,可以创建配置文件,它们本质上只是“选项组”,您可以使用它们来

  • 在不同的配置之间快速切换,而无需重写文件。
  • 为特殊内容创建特殊的配置文件。
  • 嵌套 配置文件,以便您可以从更简单的配置文件中创建更复杂的配置文件

创建配置文件很容易。mpv.conf 顶部的区域称为顶层,您在那里编写的任何选项将在 mpv 启动后生效。但是,一旦您通过在方括号中写入配置文件的名称来定义配置文件,您在其下方编写的每个选项(直到您定义新的配置文件)都被视为该配置文件的一部分。这是一个 mpv.conf 的示例

profile=myprofile2        #Top level area, load myprofile2
ontop=yes                 #Always on top

[myprofile1]              #A simple profile, top level area ends here
profile-desc="a profile"  #Optional description for profile
fs=yes                    #Start in full screen

[myprofile2]              #Another simple profile
profile=high-quality            #A built in profile that comes with mpv
log-file=~~/log           #Sets a location for writing a log file, ~~/ translates to ~/.config/mpv

顶层区域中只有两行,下面定义了两个单独的配置文件。当 mpv 启动时,它会看到第一行,加载 myprofile2 中的选项(这意味着它加载 high-qualitylog-file=~~/log 中的选项),最后加载 ontop=yes 并完成启动。请注意,myprofile1 永远不会被加载,因为它永远不会在顶层区域中被调用。

或者,可以从命令行调用 mpv,使用

$ mpv --profile=myprofile1 video.mkv

它将忽略除 myprofile1 的选项之外的所有选项。

自动配置文件

某些类型的配置文件将根据文件扩展名或使用的协议自动加载。

这些配置文件将为所有具有匹配文件扩展名的文件加载(分别为所有 .mkv.gif 文件)

[extension.mkv]
keep-open
volume-max=150

[extension.gif]
osc=no
loop-file

每当播放任何 http 或 https 流时,都会自动加载此配置文件(例如 mpv https://example.com/video.mp4

[protocol.https]
speed=2
keep-open

[protocol.http]
profile=protocol.https

运行 mpv --list-protocols 以查看 mpv 支持的不同协议。

按键绑定

鉴于 /usr/share/doc/mpv/input.confmpv(1) § COMMAND INTERFACE 中的示例,按键绑定非常简单。

将以下示例添加到 ~/.config/mpv/input.conf

shift+s         screenshot each-frame
Shift+UP        seek  600
Shift+DOWN      seek -600
=               cycle video-unscaled
-               cycle-values window-scale 2 3 1 .5
WHEEL_UP        add volume 5
WHEEL_DOWN      add volume -5
WHEEL_LEFT      ignore
WHEEL_RIGHT     ignore
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
Alt+BS          set video-zoom 0; set video-pan-x 0; set video-pan-y 0

有关尝试在 mpv 中重现 MPC-HC 按键绑定的方法,请参阅 [1]

额外的配置文件

此外,还可以创建一些配置文件和目录,其中包括

  • ~/.config/mpv/script-opts/osc.conf 管理屏幕控制器。有关更多信息,请参阅 mpv(1) § ON SCREEN CONTROLLER
  • ~/.config/mpv/scripts/script-name.lua 用于 Lua 脚本。有关示例,请参阅 [2]

有关其他文件和目录的信息,请参阅 mpv(1) § FILES

脚本

mpv 拥有 各种各样的脚本,可以扩展播放器的功能。为此,它具有 Lua 和 JavaScript 的内部绑定。

脚本通常通过将它们放在 ~/.config/mpv/scripts/ 目录中来安装(您可能需要先创建它)。之后,它们将在 mpv 启动时自动加载(此行为可以通过其他 mpv 选项更改)。一些脚本带有自己的安装和配置说明,因此请务必查看。此外,一些脚本已经过时、损坏且无人维护。

JavaScript

自 2014 年以来,JavaScript(通过 MuJS 的 ES5)一直被支持作为 mpv 脚本语言。目前只有 少量脚本 可用,但在 mpv(1) § JAVASCRIPT 中为任何有兴趣制作自己的脚本的人提供了文档。

要开始使用,请将带有 .js 扩展名的脚本放入 mpv scripts 目录中,例如

~/.config/mpv/scripts/fullscreen-off-on-pause.js
function onPauseChange (prop, enabled) {
    if (enabled) {
        mp.set_property('fullscreen', 'no')
    }
}

mp.observe_property('pause', 'bool', onPauseChange)

有关更多详细信息,例如关于使用 require 加载 CommonJS 模块的信息,请参阅 mpv(1) § CommonJS 模块和 require(id)

JavaScript 支持在 mpv 软件包以及一些 AUR 软件包中可用,例如 mpv-fullAURmpv-full-gitAUR

Lua

mpv 的 Lua 脚本的开发记录在 mpv(1) § LUA SCRIPTING 中,示例在 TOOLS/lua 中,这些示例安装到 /usr/share/mpv/scripts

例如,您可以启用内置脚本来自动裁剪带有黑边的视频

$ ln -s /usr/share/mpv/scripts/autocrop.lua ~/.config/mpv/scripts

mpv-ytdlAutoFormat

mpv-ytdlautoformat 是一个 Lua 脚本,用于自动更改 Youtube 和 Twitch 或您想要的域的 ytdl-format,更改为 480p 或您想要的质量。

mpv-webm

mpv-webm(或简称为 webm)是一个非常易于使用的 Lua 脚本,允许在观看视频时创建 WebM 文件。它包括多个功能,并且没有任何额外的依赖项(完全依赖于 mpv)。

ytdl-preload

ytdl-preload 是一个 Lua 脚本,用于预加载播放列表中下一个 ytdl 链接。

注意: 该脚本仍在积极开发过程中。

C

mpv-mpris

C 插件 mpv-mpris 允许其他应用程序通过 MPRIS 协议与 mpv 集成。例如,安装了 mpv-mpris 后,当电话呼入时,kdeconnect 可以自动暂停 mpv 中的视频播放。另一个例子是蓝牙音频设备上的按钮(播放/暂停等)。

要使用该插件,请安装 mpv-mpris

Vapoursynth

Vapoursynth 是 AviSynth 的替代品,可以在 Linux 上使用,并允许通过 python 脚本进行视频处理。Vapoursynth 的 python 脚本可以用作 mpv 的视频滤镜。

mpv 软件包现在默认启用 Vapoursynth 支持。

SVP 4 Linux (SmoothVideoProject)

SmoothVideoProject SVP 是一个主要以将视频转换为 60fps 而闻名的程序。它对于 64 位 Linux 是免费(指免费啤酒)且功能齐全的(Windows 和 OS X 需要付费,并且与 32 位 Linux 不兼容)。

它有三个主要功能,每个功能都可以根据需要禁用/启用(您不是被迫使用运动插帧)。

  1. 运动插帧youtube 视频)- 一种将视频转换为 60fps 的算法。这会产生一些人喜欢而另一些人讨厌的有点争议的“肥皂剧效果”。不幸的是,该算法并不完美,并且也引入了相当多的奇怪伪影。该算法可以(通过滑块)针对性能或质量进行调整。它还具有一些伪影减少设置,这些设置通过生成的帧插值实际帧,从而降低伪影的可见性。帧率检测可以设置为自动或手动(手动似乎可以解决某些用户的性能问题)。
  2. 黑边照明youtube 视频)- 如果图像的宽高比在您的显示器上产生黑边,SVP 将使用屏幕上内容生成的“光线”照亮黑边。它具有一定程度的自定义性,但默认值非常接近最佳状态。
  3. LED 环境照明控制youtube 视频)- 具有控制连接到电视的 LED 环境照明的能力。

一旦您编译了带有 Vapoursynth 支持的 mpv,就很容易让 SVP 与 mpv 一起工作。只需安装 svp-binAUR,打开 SVP 程序以让它评估您的系统性能(您可能需要先关闭其他程序,以便它获得准确的读数),最后将以下 mpv 配置文件添加到您的 mpv.conf[3]

mpv.conf
[svp]
input-ipc-server=/tmp/mpvsocket     # Receives input from SVP
hr-seek-framedrop=no                # Fixes audio desync
watch-later-options-remove=vf       # Do not remember SVP's video filters

# Can fix stuttering in some cases, in other cases probably causes it. Try it if you experience stuttering.
#opengl-early-flush=yes

然后,为了使用 SVP,您必须在运行 SVP 程序的情况下,先在后台运行 SVP 程序,然后再使用该配置文件使用 mpv 打开文件。可以执行以下操作

$ mpv --profile=svp video.mkv

或在 mpv 配置 的顶层部分中设置 profile=svp

如果您想使用硬件解码,则必须使用回拷解码器,因为普通解码器与 Vapoursynth 不兼容(选择以 -copy 结尾的 hwdec 选项)。例如

hwdec=auto-copy
hwdec-codecs=all

无论哪种方式,mpv 开发人员都不鼓励使用硬件解码,并且它不太可能在性能上产生显着差异。

技巧与窍门

图像

硬件视频加速

请参阅 硬件视频加速

硬件加速视频解码可通过 --hwdec=API 选项获得。有关所有支持的 API 和其他必需选项的列表,请参阅 mpv(1) § hwdec

要使其永久生效(例如在从桌面环境播放视频时),请将其添加到配置文件中

~/.config/mpv/mpv.conf
hwdec=auto

要允许 CPU 处理视频滤镜,请选择 *-copy API。

在视频运行时使用键盘快捷键 Ctrl+h 来切换硬件解码。

要排除硬件加速故障,可能需要调整日志级别(请参阅 mpv(1) § msg-level)。例如,--msg-level=vd=v,vo=v,vo/gpu/vaapi-egl=trace 启用以下功能

  • 来自视频解码器 (vd) 和视频输出 (vo) 模块的详细消息。
  • 用于视频解码的模块的更详细的跟踪消息。在这里,在不调整任何日志级别的情况下运行 mpv 一次后,凭经验确定感兴趣的模块是 vo/gpu/vaapi-egl

快速切换宽高比

您可以使用 Shift+a 在宽高比之间循环切换。

忽略宽高比

您可以使用 --keepaspect=no 忽略宽高比。要使该选项永久生效,请将行 keepaspect=no 添加到配置文件中。

绘制到根窗口

使用 --wid=0 运行 mpvmpv 将绘制到窗口 ID 为 0 的窗口。

始终显示应用程序窗口

要即使对于音频文件也显示应用程序窗口(当从命令行启动 mpv 时),请使用 --force-window 选项。要使该选项永久生效,请将行 force-window=yes 添加到配置文件中。

禁用视频输出

要从命令行启动时禁用视频输出,请使用 --vid=no 选项,或其别名 --no-video

终端视频

  • --vo=tct “在文本控制台上工作的彩色 Unicode 艺术视频输出驱动程序。”
  • --vo=caca “在文本控制台上工作的彩色 ASCII 艺术视频输出驱动程序。” libcaca 支持已在 Arch 上禁用,原因是存在漏洞(请参阅 FS#70962),并且由于其上游不活跃而未添加回来:安装 mpv-fullAUR

音频

音量太小

在您的配置文件中将 volume-max=value 设置为合理的值,例如 volume-max=150,这样您就可以将音量增加到 150%,这比原来的音量大两倍多。将音量增加得太高会导致削波失真。此外(或作为替代),您可以使用带有 af=acompressor动态范围压缩

指定音频输出

运行以下命令以获取可用音频输出设备列表

$ mpv --audio-device=help

然后将一个添加到 ~/.config/mpv/mpv.conf。例如

audio-device=alsa/hdmi:CARD=NVidia,DEV=1

HD 音频直通

要启用 TrueHD 和 DTS-MA 等高清音频编解码器以直通到 AV 接收器,请将以下内容添加到 ~/.config/mpv/mpv.conf

audio-spdif=ac3,eac3,dts-hd,truehd

音量标准化

本文或章节需要扩充。

原因: 添加更多关于可用滤波器的详细信息,请参阅 [4] 以比较 loudnormdynaudnorm。(在 Talk:Mpv 中讨论)

不同的源可能具有不同或不一致的响度,因此 mpv 用户可能需要配置自动音量标准化。例如

~/.config/mpv/input.conf
n cycle_values af loudnorm=I=-30 loudnorm=I=-15 anull

这会将按键 n 绑定为循环音频滤波器设置 (af) 通过指定的值

  • loudnorm=I=-30:loudnorm 设置,I=-30,柔和音量,可能适用于背景音乐
  • loudnorm=I=-15:更大音量,可能适合当前正在观看的视频
  • anull:将音频滤波器重置为空,即禁用音频滤波器
注意: 绑定按键不会更改默认音频滤波器。要更改默认值,请将例如 af=loudnorm=I=-30 添加到主配置文件。

mpv 中的音频滤波由 FFmpeg 后端提供。有关详细信息,请参阅 Wikipedia:EBU R 128ffmpeg loudnorm 滤波器

另请参阅上游问题 [5][6],其中提到了不同的选项。

使用 Lua 脚本改进 mpv 作为音乐播放器

这篇博文 介绍了 music.lua 脚本,该脚本展示了如何使用 Lua 脚本来改进 mpv 作为音乐播放器。

退出时保存播放位置

默认情况下,您可以按 Shift+q 保存播放位置并退出。可以通过在按键绑定配置文件中设置 quit_watch_later 来更改快捷键。

要自动保存退出时的当前播放位置,请使用 --save-position-on-quit 启动 mpv,或将 save-position-on-quit 添加到配置文件中。

保存播放列表位置并在下一文件暂停

播放列表可以只是一个文件列表,请参阅 mpv(1) § playlist。要播放播放列表并记住其位置

$ mpv --save-position-on-quit --pause --reset-on-next-file=pause --playlist=/path/to/playlist

使用选项 --pausempv 将以暂停状态启动,而 --reset-on-next-file=pause 将在切换到下一个文件时重置暂停模式。

播放 DVD

mpv 不支持 DVD 菜单。要使用视频 DVD 最长标题的主流启动,请使用命令

$ mpv dvd://

可选的标题说明符是一个数字(从 0 开始),用于在 DVD 上选择不同的视频流

$ mpv dvd://[title] 

通过指定本地副本的路径,可以容纳已复制到本地文件系统上的 DVD(例如通过 dvdbackup 工具):--dvd-device=PATH

请参阅以下 桌面文件 示例,了解如何从本地文件系统播放 DVD

[Desktop Entry]
Type=Application
Name=mpv Media Player DVD 
GenericName=Multimedia player
Comment=Play movies and songs
Icon=mpv
Exec=mpv dvd:// --player-operation-mode=pseudo-gui --force-window --idle --dvd-device=%f
Terminal=false
Categories=AudioVideo;Audio;Video;Player;TV;
# (MimeType and X-KDE-Protocols omitted, see original mpv.desktop file)

通过将 Exec 行替换为

Exec=mpv dvd://0 dvd://1 dvd://2 dvd://3 dvd://4 dvd://5 dvd://6 dvd://7 dvd://8 dvd://9  --player-operation-mode=pseudo-gui --force-window --idle --dvd-device=%f

mpv 播放器将 DVD 标题 0 到 9 排队到播放列表中,这允许用户连续播放标题,或使用 mpv GUI 在 DVD 标题中向前和向后跳跃。

安装 libdvdcss,以修复错误

[dvdnav] Error getting next block from DVD 1 (Error reading from DVD.)

恢复旧版 OSC

自 0.21.0 版本以来,mpv 已将屏幕控制替换为底部栏。如果您想恢复屏幕控制,您可以编辑 mpv 配置 如此处所述

可重现的屏幕截图

屏幕截图模板选项可以包含屏幕截图帧的精确时间码 (HH:MM:SS.mmm)。有意义的文件名使了解屏幕截图的来源变得容易。可以这样设置

~/.config/mpv/mpv.conf
screenshot-template="%F - [%P] (%#01n)"

这将展开为 filename - [HH:MM:SS.mmm] (number).jpg。示例结果

Gunsmith Cats/
├── Gunsmith Cats Ep. 01 - [00:00:50.217] (1).jpg
├── Gunsmith Cats Ep. 01 - [00:22:55.874] (1).jpg
├── Gunsmith Cats Ep. 01 - [00:22:55.874] (2).jpg
└── Gunsmith Cats Ep. 02 - [00:15:05.778] (1).jpg

一个好处是它排序良好,因为按字母顺序,时间码在剧集编号内排序。

有关更多信息,请参阅 mpv(1) § screenshot-template

创建单张屏幕截图

使用开始时间 (HH:MM:SS) 创建单张屏幕截图的示例

$ mpv --no-audio --start=00:01:30 --frames=1 /path/to/video/file --o=/path/to/screenshot.png

屏幕截图将保存在 /path/to/screenshot.png 中。

流媒体

通过 mpv 进行 Twitch.tv 直播

如果安装了 yt-dlpyoutube-dlAURmpv 可以直接打开 Twitch 直播。

或者,请参阅 Streamlink#Twitch

另一个基于 Livestreamer 的替代方案是这个 Lua 脚本:https://gist.github.com/ChrisK2/8701184fe3ea7701c9cc

youtube-dl 和选择格式

默认的 --ytdl-formatbestvideo+bestaudio/best。对于提供 4K 分辨率的 youtube 视频,这可能意味着即使连接的显示器分辨率低得多,您的设备也难以在软件中解码 4K VP9 编码的视频。

不过,设置正确的 youtube-dl 格式选择器可以轻松解决此问题。在以下配置示例中,仅考虑垂直分辨率为 1080 像素或更低的视频。

ytdl-format="bestvideo[height<=?1080]+bestaudio/best"

如果您希望完全避免某种编解码器,因为您无法对其进行硬件解码,则可以将其添加到格式选择器中。例如,我们可以另外选择忽略 VP9,如下所示

ytdl-format="bestvideo[height<=?1080][vcodec!~='vp0?9']+bestaudio/best"

如果您更喜欢最佳质量的开放编解码器(VP9 和 Opus),请使用

ytdl-format="((bestvideo[vcodec^=vp9]/bestvideo)+(bestaudio[acodec=opus]/bestaudio[acodec=vorbis]/bestaudio[acodec=aac]/bestaudio))/best"

使用搜索功能的 youtube-dl 音频

要使用 yta search terms 从终端模拟器查找和流式传输音频,请将以下函数放入您的 .bashrc

function yta() {
    mpv --ytdl-format=bestaudio ytdl://ytsearch:"$*"
}

系统集成

从 KDE 剪贴板打开视频链接

如果安装了 youtube-dlAURyt-dlp 并且正在使用 KDE Plasma,则可以在 KDE 剪贴板中创建一个自定义操作,以方便地播放来自视频分享网站的链接。

  1. 打开剪贴板配置菜单(通常通过右键单击系统托盘中的图标)并转到操作选项卡。
  2. 单击添加操作,然后输入一个正则表达式来检测您想要播放视频的网站(例如,^http.+(youtu|twitch) 检测 YouTube 和 Twitch URL)。
  3. 单击添加命令,在命令下输入 mpv %s,在描述下输入 mpv

现在,您可以通过按下 Ctrl+Alt+r 并从上下文菜单中选择 mpv 来在 mpv 中播放剪贴板中的视频链接。您可能需要转到高级设置并从禁用 WM_CLASS 类型窗口的操作部分中删除 Firefox。

故障排除

常规调试

如果您在使用 mpv 的播放时遇到问题(或者如果它完全无法运行),那么您应该做的前三件事是

  1. 从命令行运行 mpv-v 标志增加详细程度)。如果幸运的话,那里会有一个错误消息告诉您哪里出了问题。
    $ mpv -v video.mkv
  2. mpv 输出一个日志文件。日志文件可能难以筛选,但如果某些东西坏了,您可能会在那里看到它。
    $ mpv -v --log-file=./log video.mkv
  3. 在没有配置的情况下运行 mpv。如果这运行良好,那么问题出在您的配置中的某个地方(可能是您的硬件无法跟上您的设置)。
    $ mpv --no-config video.mkv

如果 mpv 运行了,但只是运行不佳,那么第四件值得一看的事情是实时统计信息(使用 i),以确切了解其性能如何。

修复卡顿播放和画面撕裂

mpv 默认在其支持的硬件上使用 OpenGL 视频输出设备设置。在某些情况下,例如尝试在使用 Intel HD4XXX 系列卡或类似显卡的 4K 显示器上回放视频,您会发现视频播放不可靠,卡顿到有时完全停止,并且在使用任何 OpenGL 输出设置时会出现严重的画面撕裂。如果您遇到任何这些问题,使用 XV (Xorg only) 视频输出设备可能会有所帮助

~/.config/mpv/mpv.conf
vo=xv
注意: 这是 X 上兼容性最好的 VO,但质量可能较低,并且在 OSD 和字幕显示方面存在问题。

甚至可以进一步提高播放性能(尤其是在配置较低的硬件上),但这在大多数情况下会大幅降低视频质量。

可以考虑以下 选项 来提高视频播放性能

~/.config/mpv/mpv.conf
vd-lavc-fast
vd-lavc-skiploopfilter=skipvalue
vd-lavc-skipframe=skipvalue
vd-lavc-framedrop=skipvalue
vd-lavc-threads=threads

窗口管理器的问题

mpv(1) § Window 中所述,默认情况下,mpv 在全屏模式下会禁用任何活动的窗口合成器。这样做是为了防止播放期间潜在的性能问题。

对于诸如 KWin 或 Mutter 之类的窗口管理器,即使在窗口模式下禁用窗口合成也可能是有利的。这可以通过设置 x11-bypass-compositor=yes 选项来实现。

禁用合成有两个缺点

  • 重新启用合成可能会在一段时间内引入卡顿,尤其是在使用 KWin 合成时。
  • 合成提供的任何效果都将暂时不可用(直到 mpv 重新启用它),这在 Plasma 中会阻止默认的应用程序切换器工作。

为了避开这些问题,您可以尝试保持启用合成器,使用 x11-bypass-compositor=no

没有音量条,无法更改音量

在音量图标上滚动鼠标滚轮。

GNOME 黑屏 (Wayland)

如果使用 Wayland,mpv 可能不会暂停 GNOME 的节能设置,从而导致屏幕保护程序在视频播放期间关闭显示器。一种解决方法是将 gnome-session-inhibit 添加到 mpv.desktop 中的 Exec= 行的开头。

为了仅在播放期间抑制屏幕保护程序,请使用 mpv_inhibit_gnomeAUR。或者,可以使用基于 gnome-session-inhibitmpv lua 脚本

提示: io.mpv.Mpv flatpak 应用程序已经包含了 mpv_inhibit_gnome 插件。

在 GNOME Wayland 下光标主题未被遵守

请参阅 GNOME/故障排除#Wayland 上光标大小或主题问题

关于 AMD GPU 上缺少 CUDA 库的错误消息

在版本 v0.34.1 及更早版本上使用 AMD GPU 上的 VAAPI 硬件加速时,您可能会看到一个持久的错误消息,提示 Cannot load libcuda.so.1。这可以通过设置 gpu-hwdec-interop=vaapi 来抑制。

相关错误报告:Github issue #9691, Github issue #8765

此问题已在上游的 pull request #9842 中修复。

如果 PipeWire 被屏蔽则无法播放音频

如果 mpvPipeWire屏蔽的系统上崩溃或无法播放音频,报告没有输出或管道损坏,请设置 --ao 选项以匹配您的环境。在 mpv.conf 中设置它以进行持久配置。

mpv 将无法从文件开始播放 DVD

如果 mpv 将无法从纯 VIDEO_TS/VOB 结构的文件中播放 DVD,则可能是恢复播放位置功能存在问题。尝试清除 .config/mpv/watch_later 文件夹,或使用 no-resume-playback 选项启动 mpv 和/或 设置 save-position-on-quit=no 选项。

修复从暂停恢复播放后的卡顿

如果视频在使用 PulseAudio 时卡顿,请尝试 mpv(1) § --pulse-latency-hacks 中讨论的 pulse-latency-hacks 选项

~/.config/mpv/mpv.conf
pulse-latency-hacks=yes