跳转至内容

mpv

来自 ArchWiki

mpv 是一个基于 MPlayer 和已停止维护的 mplayer2 的媒体播放器。它支持多种视频文件格式、音频和视频编解码器以及字幕类型。在 mpv 和上述播放器之间的详细(尽管承认不完整)差异列表可以在 [1] 中找到。

安装

安装 mpv 包。

前端

请参阅 多媒体应用程序列表#mpv-based

配置

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.conf 中的示例和 mpv(1) § 命令接口

将以下示例添加到 ~/.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 按键绑定,请参阅 [2]

附加配置文件

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

  • ~/.config/mpv/script-opts/osc.conf 管理屏幕控制器。请参阅 mpv(1) § 屏幕控制器 了解更多信息。
  • ~/.config/mpv/scripts/script-name.lua 用于 Lua 脚本。请参阅 [3] 获取示例。

请参阅 mpv(1) § 文件 了解其他文件和目录的信息。

脚本

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

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

JavaScript

自 2014 年以来,JavaScript(ES5,通过 MuJS)已被支持作为 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)

Lua

mpv 的 Lua 脚本开发记录在 mpv(1) § LUA 脚本 中,示例在 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 格式,以 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 环境灯。

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

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 程序在后台运行。要么执行

$ mpv --profile=svp video.mkv

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

如果你想使用硬件解码,你必须使用 copy-back 解码器,因为普通解码器与 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 支持因漏洞(参见 FS#70962)而在 Arch 上被禁用,并且由于其上游不活跃而未重新添加:请安装 mpv-fullAUR
  • --vo=kitty “使用适用于文本控制台的 Kitty 协议进行视频输出,该协议适用于所有支持此协议的终端”

音频

音量太低

在配置文件中将 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

高清音频直通

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

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

音量标准化

本文章或章节需要扩充。

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

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

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

这会将按键 n 绑定到循环音频滤波器设置(af)在指定值之间。

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

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

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

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

使用 --pause 选项,mpv 将以暂停状态启动,而 --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)"

这会扩展为 文件名 - [HH:MM:SS.mmm] (数字).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"

要使用 yta 搜索词 在终端模拟器中查找和流式传输音频,请将以下函数放入你的 .bashrc 中。

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

系统集成

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

  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 视频输出设备设置(如果硬件支持)。在诸如尝试在 4K 显示器上使用 Intel HD4XXX 系列显卡或类似显卡播放视频之类的情况下,你会发现使用任何 OpenGL 输出设置时,视频播放都不可靠,卡顿到有时完全停止,并且伴有严重的画面撕裂。如果你遇到任何这些问题,使用 XV(仅限 Xorg)视频输出设备可能有所帮助。

~/.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) § 窗口 中所述,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/Troubleshooting#Cursor size or theme issues on Wayland

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

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

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

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

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

如果在 PipeWire屏蔽 的系统上 mpv 崩溃或无法播放音频,并报告没有输出或管道损坏,请将 --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

© . This site is unofficial and not affiliated with Arch Linux.

Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.