[Ch.13.5~13.7] [篇三] MPV Player 官方文档中有关配置项OPTION的说明 v0.34.0

上一篇(篇二)主要讲述了 MPV 播放器行为,视频相关的 Option 文档,本篇把剩余有关音频,字幕,窗口这几个较为重要的章节给续上,主讲第13.5章节(音频)至13.7章节(窗口)的文档内容,基本覆盖了绝大多数日常使用的需求。还是那句话,部分配置项值得去研究和尝试,但绝大多数保持默认就好。个人渣翻,内容上有疏漏或谬误的地方下方评论区反馈。创作过程不易,给个免费的赞推给更多有需要的人。

以下节选自 mpv player 官方使用手册中的 OPTION 章节,版本 v0.34.0,不保证内容的时效性,仅供参考,实际还是以官方发布的最新文档为准,善用 Ctrl + F 快速定位你想要的内容: 

Ch.13.5 音频

–audio-pitch-correction=<yes|no>

如果启用了该选项(默认),以不同于正常速度播放会自动插入 scaletempo2 音频滤镜(audio filter,或称音效滤镜)。有关详细内容,请参见音频滤镜的段落。

–audio-device=<name>

使用给定的音频设备,这包括音频输出名称,例如 alsa,后面紧接着是 /,最后接上音频输出指定设备名。该选项的默认值为 auto,使用默认设备按照优先级顺序来尝试每一项音频输出。

你可以用 –audio-device=help 列出音频设备,这会以引号的形式输出设备名,后面跟上一段描述。设备名就是那些你传给 –audio-device 选项的内容。API可以使用音频设备列表属性来检索音频设备列表。

虽然该选项通常采用上述方法中指定的其中一个字符串,但你也可以通过手动创建来强制大多数音频输出(AO)使用的设备。例如 name/force 会强制名为 name 的音频输出使用名为 foobar 的设备。不过,–ao 选项则会明确地强制使用特定的音频输出。为了避免此类冲突,请不要同时使用 –ao 和 –audio-device 选项。

–audio-exclusive=<yes|no>

开启独占输出模式,在该模式中,系统通常被锁定,且只有 mpv 可以输出音频。

这仅会在某些音频输出中起作用,例如 wasapi 以及 coreaudio,其他音频输出则会静默地忽略该选项,对它们来说要么是没有独占模式这一说法,要么就是没有在 mpv 中实现这一特性。

–audio-fallback-to-null=<yes|no>

如果没有可以被打开的音频设备,则表现出与给定 –ao=null 选项等同,通常在搭配 –audio-device 选项使用时会有效果:如果被选中的设备不存在也不会产生一个错误,客户端API用户(或者是Lua脚本)可以让播放正常地进行下去,并且检查 current-ao 和 audio-device-list 当中的内容以便于做出有关如何继续执行的高级决策。

–ao=<driver>

指定用到的音频输出驱动,请参见 Ch.14 AUDIO OUTPUT DRIVERS 章节获取详情以及可用驱动的描述。

–af=<filter1[=parameter1:parameter2:…],filter2,…>

指定用于音频流的滤波器列表,参见 Ch.16 AUDIO FILTERS 章节获取详情以及可用滤波器的描述。存在用于修改先前指定列表的选项变体:–af-add,–af-pre,–af-del,不过你正常使用是用不到这些选项的。

–audio-spdif=<codecs>

指定应该被采用的用于压缩传入音频的编解码器列表,这对于传统的 S/PDIF 和 HDMI 都有效。

可能的编解码器有 ac3,dts,dts-hd,eac3,truehd。可以通过采用 , 分隔的方式指定多个编解码器。dts 指的是低码率 DTS 核心,而 dts-hd 指的是 DTS MA(是一类随系统支持的接收器),如果同时指定 dts 和 dts-hd,则表现等同于仅指定 dts-hd。

在早期的mpv版本中你可以使用 –ad 选项来强制(使用指派的) spdif 包装器,已不再奏效。

警告

没有充分的理由需要用到该选项,HDMI 是支持未压缩的多通路 PCM 的,而且 mpv 也支持通过 FFmpeg 的新款 DCA 解码器(基于 libdcadec 库)来解码无损 DTS-HD。

–ad=<decoder1,decoder2,…[-]>

依据解码器的名称,指定用到的音频解码器属性列表。当决定采用哪个解码器时,通常会选择首个匹配音频格式的解码器,如果不行那就换下一个,最后则会尝试其他所有未被明确指定或者被选项排除载外的解码器。

在列表结尾的 – 符号会抑制这种退回至其他不在 –ad 选项列表中的可用解码器的行为, 位于实体条目之前的 + 则会强制使用该解码器,这两种用法通常不会用到,原因是它们会破坏正常的解码器自动选择机制,强烈不建议使用这些奇技淫巧。

–ad=help

列出所有可用的解码器。

警告

不能对压缩传入音频(AC3 and DTS via SPDIF/HDMI)使用该选项,请使用 –audio-spdif 选项。

–volume=<value>

设置启动音量,0 表示静音,100 表示无音量减小或放大作用,兼容传入负值,不过一律按 0 值对待。

从 mpv 0.18.1 开始,该选项始终用来控制内置混音器(又名 “softvol”)。

注:外部音量一般是指设备扬声器音量,这也见怪不怪,许多播放器都会内置一个音量可视化组件调节的是内置均衡器音量。

–replaygain=<no|track|album>

根据存储在文件元数据中的回放增益(replay gain)值来调节音量增益。带上 –replaygain=no 选项(也是默认选项)则不会执行调节。用了 –replaygain=track 则会使用音轨增益,使用 –replaygain=album 选项则会使用专辑增益(如果存在的话),否则退回使用音轨增益。

–replaygain-preamp=<db>

以分贝(db)为单位,把预放大增益应用到选中的回放增益当中(默认:0)。

–replaygain-clip=<yes|no>

防止由回放增益通过自动降低增益(默认)造成的削减,使用 –replaygain-clip=no 禁用该选项。

–replaygain-fallback=<db>

如果文件不含回放增益标签,则使用以 db 为单位的增益效果。该选项始终适用于回放增益无故停摆的情况。若使用了该选项,那么其他的回放增益选项不再起作用。

–audio-delay=<sec>

延迟音频若干秒(传入正或负浮点值),正值延迟音频,负值延迟视频。

–mute=<yes|no|auto>

设置启动时音频的静音状态(默认:no)

auto 是不建议使用且效果等同于 no 的潜在的参数值。

另见:–volume 选项

–softvol=<no|yes|auto>

不推荐使用/已失去原有作用!在 mpv 0.18.1 版本之前,该选项曾用来控制是使用音频输出驱动的音量控制还是mpv内置的音量滤波器。

当前的行为已变为始终启用 softvol,即正如被设为 yes 那般。而其他的参数行为已不再可用,尽管 auto 在大多数情况下仍然符合当前行为。

no 参数行为仍可以通过 ao-volume 以及 ao-mute 属性被部分地支持,但已没有选项可以重置这些设置过的效果。

–audio-demuxer=<[+]name>

当使用了 –audio-file 选项时使用该指定的音频解复用器类型。在解复用器名称之前使用 + 符号则表示强制使用,且会跳过部分检查。通过 –audio-demuxer=help 选项给出可用的解复用器名称。

–ad-lavc-ac3drc=<level>

为 AC-3 音频流选择动态范围压缩(Dynamic Range Compression,简称DRC)等级,<level> 是一项 0~1 区间内的浮点值,其中 0 表示无压缩(默认),1 表示全压缩(使得高音通路更加平静,反之亦然)。同样可接受达到 6 的(等级)值,不过仅作为实验性质。该选项仅对那些包含所需压缩范围信息的 AC-3 音频流起作用。

标准已默认托管开启 DRC,但 mpv(以及一众其他的播放器)为了更好的音质会忽略该标准。

–ad-lavc-downmix=<yes|no>

是否向解码器请求对声道使用低混(默认:no)。部分解码器,像是 AC-3,AAC 以及 DTS,可以在解码的过程中重新合成音频。所请求的输出通道数是由 –audio-channels 选项进行设置,这对于在立体系统中使用环绕音会起到帮助。

–ad-lavc-threads=<0-16>

指定被用来解码的线程数。实际是否支持多线程取决于编解码器,即使写有该设置,也仅支持部分无损编解码器。0 意味着自动检测设备中的核心数并使用该数值,直至最大值 16 为止(默认:1)。

–ad-lavc-o=<key>=<value>[,<key>=<value>[,…]]

向 libavcodec 解码器传入 AVOptions 数据结构。注意,已打无需 o= 以及通过 AVOptions 系统传入全部未知选项的补丁。AVOptions 完整列表可以在 FFmpeg 使用手册中找到。

该选项是键值对列表选项,参见 Ch.4.5 List Options 章节以获取详情。

–ad-spdif-dtshd=<yes|no>, –dtshd, –no-dtshd

如果传入的是 DTS,则使用 DTS-HD。

警告

该选项以及通过 –ad 选项开启功能是不被推荐的,建议使用 –audio-spdif=dts-hd

–audio-channels=<auto-safe|auto|layouts>

控制应该采用哪个声道输出音频(例如是环绕还是立体)。有以下几种可能:

–audio-channels=auto-safe

使用系统偏好的声道布局,如果未找到(例如当访问硬件设备而非系统混音器时),强制使用立体声道。一些音频输出可能会简单地接受全部的布局并且由它们自己(对声道)做低混处理。

该选项是默认设置。

 –audio-channels=auto

无论接受与否都发送给音频设备,优先在音频原始声道布局中使用。当用的是 HDMI 可能会导致问题(参考下面的警告)

–audio-channels=layout1,layout2,…

指定通过 ‘ , ‘ 分隔且应该被允许的声道布局的列表。技术上来说,该选项只会将滤波器输出链调整至列表中最为匹配的布局,并且将结果传入音频API。而音频API可能会选择不同的声道布局。

推荐给直接硬件输出使用上这个模式,特别是通过 HDMI(参考下面的 HDMI 警告)。

–audio-channels=stereo

强制使用简明的立体低混。相较于之前的条目该选项是个例外(参见以下有关具体实现的段落)

如果给定了一组布局,其中的各项条目可以是具体的声道布局名称(像是 5.1)或者是声道数,声道数指的是默认布局,比如说双声道指的是立体,六声道指的是5.1。

想知道已定义好的默认布局,参考 –audio-channels=help 选项的输出,同样也会列出扬声器名称,可以被用来表示任意的声道布局(例如 fl-fr-lfe 表示 2.1)。

如果声道布局列表中仅有1项条目,则解码器会被要求依据输出进行工作。这有时会触发解码器低混,可能会和 mpv 通常的低混有所差异。(只有部分解码器支持重新合成音频,例如 AC-3,AAC 或者 DTS,你可以使用 –ad-lavc-downmix=no 选项使得解码器始终输出到它的原始布局中去)一种结果是 –audio-channels=stereo 选项会触发解码器低混,而 auto 或者 auto-safe 则不会,即使它们最终选择了立体声道。之所以会发生这种情况是因为早在打开音频设备之前就已经决定好了是否要使用解码器低混。

如果媒体文件(即解码器)的声道布局和音频输出声道布局不匹配的话,mpv 将会尝试插入一层转换滤波器,你可能需要更改系统混音器的声道布局以满足你希望的输出,既然 mpv 不会对此做出调控的话。另外在部分音频输出中,对于排除此类情况的故障可以使用 –audio-exclusive=yes 选项完全绕开系统混音器。

警告

当通过 HDMI 调用音频的过程中使用 auto 可能会导致问题。正常情况下操作系统会报告所有可能走 HDMI 的声道布局,即使接收器不支持。如果接收器获取到了一个不受支持的声道布局,可能会发生随机事件,例如舍弃额外的声道或产生噪音。

推荐你把自己想要的布局设置到一份明确的白名单中。例如,大多数通过 HDMI 连接以及可以处理 7.1 声道的 A/V 接收器应该用 –audio-channels=7.1,5.1,stereo 的方式处理。

–audio-display=<no|embedded-first|external-first>

当播放音频文件时决定是否显示艺术(专辑)封面以及带有何种优先级。通常显示首个被找到的图像,多余的图像将作为可用的视频轨。

no:当播放音频文件时完全不显示视频画面。

embedded-first:优先显示内嵌图片,支持显示内嵌和外挂艺术封面(默认)。

external-first:优先显示外挂图片,支持显示内嵌和外挂艺术封面。

该选项不会对普通的视频流产生影响。

注:如果对媒体元数据感兴趣的话可以参考一下这篇专栏:

–audio-files=<files>

当浏览视频时从外部导入音频文件进行播放。

该选项是路径列表选项,参见 Ch.4.5 List Options 章节以获取详情。

–audio-file=<file>

仅限命令行/配置文件的 –audio-files-append 选项的别名,每使用一次该选项就会添加一个新的音轨,具体类似于 –sub-file 选项的工作方式。

–audio-format=<format>

选择用于从音频滤镜层到声卡输出上的采样格式。可被采用的 <format> 值会在后续的 format 音频滤镜描述中被列出。

注:后续有一章节主要会将音频滤镜相关的内容。

–audio-samplerate=<Hz>

选择使用到的输出采样率(当然声卡同样也受限于此)。如果选择的采样频率和当前媒体流中的不一致,将会向音频滤镜中插入 lavrresample 音频滤镜以弥补差异。

–gapless-audio=<no|yes|weak>

尝试在文件变更点处不带静音或中断地播放连续地音频文件。默认:weak。

no:禁用无缝衔接音频。

yes:使用为首个文件的播放而选择的参数打开音频设备,随后保持开启以完成无缝衔接播放。这意味着如果首个文件码率比较低,那么下一个文件可能会被重采样至相同的低码率,从而导致降低声音品质。如果你播放的文件具有不同的参数,空滤使用像是 –audio-samplerate 和 –audio-format 之类的选项以明确选择共享的输出格式是什么。

weak:正常来说,音频设备会保持开启(使用首次被初始化的格式)。如果解码器输出的音频格式有变动,音频设备会重启。这意味着你通常会在那些用着相同设置进行编码的文件中获得无缝衔接的音频,但在另外的情况中可能不会无缝衔接。在保持音频设备开启的精确条件下是实现细节,把那个且可能会锁着版本的变更而改动。目前来讲,即使采样格式有变化设备也将保持开启,但采样率是可变的。如果在仍有音频的情况下视频仍然在播放,尝试使用无缝衔接也明确会被放弃。

注意

该特性是以一种简单办法实现的,且当文件切换时依赖于音频输出设备的缓冲以实现继续播放。如果播放新文件起步较慢,比如说因为是从远程网络上播放或者是因为你特别制定了缓存设置需要时间来初始化缓存填充,那么已缓存的音频可能会在新文件可以开始播放之前被丢弃。

–initial-audio-sync, –no-initial-audio-sync

当开启一个视频文件或在跳转事件之后,mpv 默认会修改音频流使之与视频画面从相同的时间戳处开始,无论是在起始处插入静音或是裁剪掉首采样。禁用该选项会使得播放器表现得像旧版 mpv 那样:同时立即开始视频和音频播放,即使它俩的起始时间戳不尽相同,并且随后视频时间会逐步调整,如果之后有必要做到正确同步的化。

–volume-max=<100.0-1000.0>, –softvol-max=<…>

设置以百分制为单位的音量最大放大级别(默认:130),130 数值允许你将音量音量调节至正常水平的约两倍。

不建议也不应该使用 –softvol-max 这一选项别名。

–audio-file-auto=<no|exact|fuzzy|all>, –no-audio-file-auto

额外加载与视频文件名相匹配的音频文件,参数将指定怎样的外部音频文件才算匹配:

no:不要自动加载外部的音频文件(默认)。

exact:加载带有音频文件扩展名的媒体文件名。

fuzzy:加载所有包含媒体文件名的音频文件。

all:加载所有在当前以及 –audio-file-paths 选项指定目录中的音频文件。

–audio-file-paths=<path1:path2:…>

等同于 –sub-file-paths 选项,但是作用于自动加载的音频文件。

该选项是路径列表选项,参见 Ch.4.5 List Options 章节以获取详情。

–audio-client-name=<name>

指定播放器报告给音频API的应用名。如果你想强制使用不同的音频配置(例如带有 PulseAudio),或是为了在使用 libmpv 库时设置你自己的应用名的情况下可能会比较有用。

–audio-buffer=<seconds>

设置音频输出的最小缓冲。实际上如果该选项被设置音频设备可能会创建一个比这更大的缓冲。如果设备创建一个比这更小的缓冲,那么额外的音频将会被缓冲至额外的软件缓冲区中。

更大的缓冲会使得软件音量以及其他滤波器反应更慢,在变更播放速度方面引入额外的问题。并且会阻塞播放器变更音频格式。更小的缓冲可能会导致音频的丢失。

默认:0.2(200ms)

–audio-stream-silence=<yes|no>

部分音频硬件(例如 A/V 接收器)经常会忽略掉发送到 HDMI 的初始音频,每当经过 HDMI 的音频停止或恢复播放时都会发生。为了弥补这种情况,你可以开启该选项使得在跳转期间不会停止或重启音频,并且用静音填充中间的间隙。同样的,当暂停播放时,音频同样也不会停止,而是在暂停期间保持静音播放。需要注意的是如果没有选择音轨,音频设备依旧会被立即关停。

不是所有的音频输出都支持该选项。

–audio-wait-open=<secs>

与 –audio-stream-silence=yes 选项一同使用才有意义。如果给定了该选项,播放器会在打开音频设备之后,在向其发送实际音频数据之前等待给定秒数的时间。如果你那宝贵的硬件会丢弃发送给它的前1~2秒的音频数据则会有作用。如果 –audio-stream-silence=yes 没有设置,选项就是妥妥地浪费时间。

Ch.13.6 字幕

注意

修改样式和位置不是对所有的字幕都能起到效果,基于图像的字幕(DVD,Bluray/PGS,DVB)因为根本原因无法被修改。ASS 格式的字幕正常是无法被特意修改的,但可以用 –sub-ass-override 选项控制覆盖样式。

之前部分用在文本字幕上的选项被称为 –sub-text-*,现在被命名为 –sub-*,并且那些明确用于 ASS 的选项已经从 –ass-* 重命名为 –sub-ass-*。以上这些均收录在本小节中。

–sub-demuxer=<[+]name>

为 –sub-file 强制决定字幕解复用器的类型,请给出由 –sub-demuxer=help 选项打印得到的解复用器名称。

–sub-delay=<sec>

延迟字幕 <sec> 秒,可以为负值。

–sub-files=<file-list>, –sub-file=<filename>

向外部字幕列表中提添加字符文件。

如果你仅用了一次 –sub-file 选项,则默认显示该字幕文件。

如果  –sub-file 被多次使用,可以在播放期间通过循环字幕轨的方式切换用到的字幕。可以同时显示两条字幕:使用 –sid 选项来选择首个字幕的索引,然后用  –secondary-sid 选择第二个索引(索引会在 –sid= 选项之后以媒体流列表的形式打印在终端上)。

–sub-files 是路径列表选项(参见 List Options 章节以获取详情),比并且可以接受多个以 : (Unix平台)或者 ; (Windows平台)作为分隔的文件名,虽然 –sub-file 一次只能接受单个文件名,但可以多次使用添加多个文件。从技术上来说,–sub-file 是 –sub-files-append 选项在终端/配置文件中唯一的别名。

–secondary-sid=<ID|auto|no>

选择次要字幕流,同 –sid 选项类似。如果选择了次要字幕,那么同普通字幕一起会被渲染为顶部标题样式(即在屏幕的顶部显示),并提供了同时渲染两条字幕的办法。

对于这项特性有一些附加说明,比如,位图(bitmap)字幕始终会被渲染到它们通常所在的位置,因此选择位图字幕作为次要字幕将会导致字幕重叠。如果禁用了视频画面则始终不会显示次要字幕。

注意

对于次要字幕来说,任何格式化标签的样式和解释说明都是不可用的。这和把 –no-sub-ass 选项用来去掉样式是一个道理。

注意

如果首要(main)字幕流包含将字幕显示在屏幕顶部的格式化标签,则会与次要字幕产生重叠。为了避免这种情况的发生,你可以使用 –no-sub-ass 来禁用掉首要字幕流中的样式。

–sub-scale=<0-100>

文本字幕字体大小系数(默认:1)。

注意

这同样也会影响 ASS 字幕,并且可能会导致错误的字幕渲染。请谨慎使用,或者使用 –sub-font-size 选项。

–sub-scale-by-window=<yes|no>

是否随窗口大小缩放字幕(默认:yes)。如果被禁用,变更窗口大小将不会改变字幕字体大小。

类似 –sub-scale,该选项可能会破坏 ASS 字幕渲染。

–sub-scale-with-window=<yes|no>

使字幕字体大小关联到窗体,而不是视频画面。如果你始终想要保持相同的字体大小会有所帮助,即使视频画面无法完全覆盖窗口,例如,因为屏幕横纵比与窗口横纵比不匹配(并且播放器添加了黑边框)。

默认:yes

该选项容易被叫错。与之容易混淆且读音相近的选项 –sub-scale-by-window 所不同的是,–sub-scale-with-window 选项仍然会随着大致的窗口大小进行缩放,而其他的选项则不会。

仅会影响纯文本字幕(或者如果 –sub-ass-override 选项值被设置得足够高的话,也会影响到 ASS 字幕)

–sub-ass-scale-with-window=<yes|no>

类似 –sub-scale-with-window 选项,但只会影响 ASS 格式的字幕,类似 –sub-scale 可能会破坏 ASS 字幕渲染。

默认:no

–embeddedfonts=<yes|no>

使用内嵌在 Matroska 容器文件和 ASS 脚本中的字体(默认:yes)。这些字体可被用于 SSA/ASS 字幕的渲染。

–sub-pos=<0-150>

指定字幕在屏幕上的位置。数值表示以屏幕高度作为百分比的字幕的垂直位置。100 表示原始位置,一般不是位于屏幕底部的绝对位置,而是会在底部和字母之间留有边距。数值超过 100 会进一步向下移动字幕的位置。

警告

如果选项值超过 100,文本字幕可能会被裁剪掉(与之相反的是图像字幕),这是 libass 自身的限制。

同样也会影响到 ASS 字幕,并且除了上述问题以外可能会导致错误的字幕渲染。

使用 –sub-margin-y 选项可以更好地达成上述效果。

–sub-speed=<0.1-10.0>

用给定的值乘以字幕时间的时间戳,可以被用于修复基于画面帧的字母格式的播放速度,只对文本字幕有效果。

–sub-ass-force-style=<[Style.]Param=Value[,…]>

覆盖某些样式或脚本信息参数。

这是一个字符串列表选项,参见 Ch.4.5 List Options 章节以获取详情。

注意

使用该选项可能会导致错误的字幕渲染。

–sub-ass-hinting=<none|light|normal|native>

设置字体提示类型,<type> 可以是:

none:无提示(默认)

light:FreeType 自动提示,轻量模式

normal:FreeType 自动提示,普通模式

native:字体原生提示

警告

开启提示可能会导致文本错位(在部分情况下应该会和视频背景相匹配),或者同一些编写质量较差的 ASS 脚本一起减少动画的流畅度。建议不要使用该选项,除非实在需要。

–sub-ass-line-spacing=<value>

为 SSA/ASS 字幕渲染设置行间距值。

–sub-ass-shaper=<simple|complex>

设置被 libass 使用的文本布局引擎。

simple:仅使用 Fribidi,部分语言没办法正常渲染。

complex:使用 HarfBuzz,比较慢,但支持更多语言。

默认是 complex,如果 HarfBuzz 没有被编译进 libass 中,静默会还原为 simple。

–sub-ass-styles=<filename>

加载所有从指定文件中找到的 SSA/ASS 样式并且用它们来渲染文本字幕。文件语法具体类似 SSA/ASS 的 [V4 Styles] / [V4+ Styles] 区段。

注意

使用该选项可能会导致错误的字幕渲染。

–sub-ass-override=<yes|no|force|scale|strip>

控制用户所覆写的样式是否应该被应用。需要注意的是,所有这些覆盖的样式多少都会尝试去计算是否或者不去把字幕看作符号。

no:由字幕脚本指定的那样渲染字幕,(对原有样式)不作覆盖。

yes:应用 –sub-ass-* 所有的样式覆盖选项,修改这些选项中的任何一个默认样式可能会导致错误的字幕渲染(默认)

force:类似 yes,但同样也会强制使用所有的 –sub-* 选项,容易破坏渲染。

scale:类似 yes,但同样也会应用 –sub-scale 选项。

strip:从字幕中完全裁剪掉所有的 ASS 标签。这等同于旧版的 –no-ass / –no-sub-ass 选项。

该选项同样也控制着部分位图字幕(样式)的覆写,也包括在类似 SRT 格式中的 HTML 标签,尽管选项名当中没有提及。

–sub-ass-force-margins

如果字幕是 ASS 格式,当字幕头(toptitles)和字幕同时可用时,强制在它们两之间放置黑色边框作为间隔。

默认:no

–sub-use-margins

如果字幕是明文文本格式(或者 ASS 格式,如果 –sub-ass-override 选项值设置得足够高的话),当字幕头和字幕同时可用时,在它们两之间放置黑色边框作为间隔。

默认:yes

从 –sub-ass-use-margins 选项重命名而来,要想把 ASS 字幕放置到边框中(类似旧版选项那么做),同样也要加上 –sub-ass-use-margins 选项。

–sub-ass-vsfilter-aspect-compat=<yes|no>

当在播放扭曲变形的视频画面时为了和传统VS滤镜行为相兼容,拉伸 SSA/ASS 字幕。当视频是以正方像素(square pixels)存储时此选项开关无效。

从历史角度来看,渲染器最普遍地是用在 SSA/ASS 字幕格式上,VS滤镜所具有地不可靠行为会导致字幕被过度拉伸,如果视频以非常规的格式存储且需要缩放显示的话。该行为往往是令人厌烦且更新版本的VS滤镜可能会表现出不同的行为。然而,许多现有的脚本通过向相反的方向进行修正以补偿拉伸。因此,如果这样的脚本“正常”显示的话,问题不会同预期那样显现出来。启用该选项开关模拟旧版VS滤镜的行为(虽不建议但被许多现存脚本期望使用)

默认启用。

–sub-ass-vsfilter-blur-compat=<yes|no>

由视频分辨率而不是脚本分辨率缩放 /blur 标签(默认开启)。在VS滤镜中这是一项bug,因为某些缘故,用于兼容的名称不再固定。

请注意该选项使用实际的视频分辨率来计算偏移缩放系数,而不是视频滤镜链或者视频输出(VO)所用到的分辨率。

–sub-ass-vsfilter-color-compat=<basic|full|force-601|no>

像 (xy-)vsfilter 那样调整颜色(默认:basic)。从历史角度来说,VSFilter 并不是已知的色彩空间(色域),仅作为被用于 SD 视频的色彩空间时这本身没啥问题,但当这一切换到 HD(BT.709)时,VSFilter 依旧是将 RGB 颜色转换成 BT.601,将它们渲染到视频帧内,并处理为视频输出(VO),这本该用 BT.709 转换为 RGB,结果是意外调整了字幕颜色。

basic:仅处理 BT.601->BT.709 调整(色调映射),如果打算显示字幕则需要该项(默认)。

full:使用所有被 libass 和 mpv 支持的色彩空间来处理全 YCbCr Matrix 的字幕头。可能会造成体验较差的断裂感且并非为了兼容性所必须的设置(如果希望这么做的话),这也就是为什么该参数不是作为默认项。

force-601:强制 BT.601->BT.709 调整,无视字幕头和视频色彩空间。

no:完全禁用色彩调整,所有的颜色均属于 RGB(色域)。

选择除 no 以外的任意参数项都会让字幕颜色最终显示效果取决于视频的色彩空间,并且从理论上来说,例如在另外的视频文件中将不会复用字幕脚本。–sub-ass-override 选项不会影响该选项的解析。

–stretch-dvd-subs=<yes|no>

当播放损坏的 DVD 上的扭曲画面时为了让字体的观感更好些,拉伸 DVD 字幕。然而当视频是以方形像素的形式存储时,该选项开关无效,也就是说 DVD 输入无法用于此案例。

许多工作室倾向于在制作 DVD 时为方形像素格式设计使用位图字体,导致字体在 DVD 播放器上播放时看上去被拉伸了,该选项就是为了修复这个问题,然而可能的代价就是部分字幕会出现对齐错乱的问题。(例如符号转换)

默认禁用。

–stretch-image-subs-to-screen=<yes|no>

拉伸 DVD 或其他图像字幕到屏幕上,忽略视频画面的边距。这与 –sub-use-margins 选项之于文本字幕有着类似的作用,但文本字幕的自延伸除外,而不仅限于复位。(至少大多数时候是无法避免的,理论上因为图像位图可以由单个覆盖全屏的位图构成,并且播放器无法确切知道文本部分位于何处。)

该选项不会正确显示字幕,谨慎使用。

默认禁用。

–image-subs-video-resolution=<yes|no>

使用视频分辨率重载图像字幕(默认:no)。一般地,字幕画布会适应视频画布(例如信箱布局模式),设置该选项会使用视频画面大小作为字幕画布大小。用来测试损坏的字幕可能会有用,这种情况经常出现在当视频已被转码,然而尝试保留旧字幕时。

–sub-ass, –no-sub-ass

原生地渲染 ASS 字幕(默认启用)。

注意

该选项已被 –sub-ass-override=strip 选项所阻止,你可能还需要 –embeddedfonts=no 选项用以达到相同的行为。同样地,使用 –sub-ass-override=style 选项在不过度破坏字幕的前提下应该给与更好的效果。

如果 –no-sub-ass 选项被指定,播放时剔除并忽略所有的标签和样式声明。字幕渲染器则会使用通过 –sub- 选项指定的字体样式。

注意

使用 –no-sub-ass 选项可能会导致 ASS/SSA 字幕的非正常渲染或完全损坏。有时对于强制覆盖 ASS 字幕样式会有帮助,但通常应该避免使用。

–sub-auto=<no|exact|fuzzy|all>, –no-sub-auto

加载与视频文件名相匹配的额外字幕文件。参数指定如何匹配外部字幕文件。默认启用 exact 参数项。

no:不要自动加载外部字幕文件。

exact:加载名称中带有字幕文件扩展以及可能地语言后缀(默认)的媒体文件。

fuzzy:加载所有包含媒体文件名的字幕。

all:加载当前目录下以及 –sub-file-paths 选项指定的目录中全部的字幕。

–sub-codepage=<codepage>

你可以使用该选项来指定字幕编码页,uchardet 会被用来猜测字符集(如果 uchardet 没有编译进 mpv 当中,那么 utf-8 默认有效。)

该选项的默认值是 auto,启用自动检测。

以下步骤被用于确定最终的编码页,顺序如下:

  • 如果指定的编码页带有 + 符号标识,则使用该页码。

  • 如果数据看起来像 UTF-8 格式,则假定它为 UTF-8。

  • 如果 –sub-codepage 选项被设置为特定的编码页,则用之。

  • 采用 uchardet,并且如果成功的话,则用之。

  • 否则使用 UTF-8-BROKEN

伪编码页 UTF-8-BROKEN通常被用于内部,如果显式设置,当遇到非法 UTF-8 字节序列而回退时,字幕会被解释为带 “Latin 1” 的 UTF-8 编码。在该模式下始终不会涉及 iconv(字符集转换)。

该选项在 0.23.0 版本的mpv中被修改,在 0.24.0 的版本中完全移除了对旧语法的支持。

注意

该选项仅对文本字幕起作用,其他类型的字幕(尤其是 mkv 文件中的字幕)始终会被假定为 UTF-8。

–sub-fix-timing=<yes|no>

调整字幕时间戳用于移除字幕之间的次要间距或重叠(如果差距小于210ms,间距或重叠则会被移除)。

–sub-forced-only=<auto|yes|no>

仅显示例如由 –slang 选项选择的、强制用于 DVD 字幕流的字幕(默认:auto)。当设为 auto,且当 –subs-with-matching-audio 选项开启并且选择非强制媒体流时才会启用。开启该选项将会隐藏字幕流中全部的字幕,而不会区分字幕流中的强制和非强制事件。

–sub-fps=<rate>

指定字幕文件的帧率(默认:视频帧率),仅影响文本字幕。

注意

<rate> 指定的帧率针对基于画面帧的字幕文件则起到加速作用,针对基于时间戳的字幕则起到减缓作用。

另行参见:–sub-speed 选项。

–sub-gauss=<0.0-3.0>

将高斯模糊应用到图像字幕上(默认:0),这将有助于让像素化的 DVD/Vobsubs 看起来更好些。非0数值也会开启软件层面的字幕缩放,可能会放慢字幕的显示速度。

注意

绝对不要应用到文本字幕上。

–sub-gray

将图像字幕转为灰度图,可能会有助于让黄色的 DVD/Vobsubs 看起来更好一些。(字面意思)

注意

绝对不要用于文本字幕。

–sub-paths=<path1:path2:…>

强烈不推荐使用,请使用 –sub-file-paths 选项。

–sub-file-paths=<path-list>

指定额外的目录用于搜索与视频匹配的字幕。可以通过 : (在 Windows 上使用 ;)来分隔多个目录。路径可以是相对或绝对路径,相对路径会被解释为相对于视频文件所在目录。如果文件是 URL,仅会扫描绝对路径以及 sub 配置目录的子目录。

该选项是路径列表选项,参见 Ch.4.5 List Options 章节以获取详情。

–sub-visibility, –no-sub-visibility

可被用于禁止显示字幕,但依旧会选择并解码字幕。

–secondary-sub-visibility, –no-secondary-sub-visibility

可被用于禁止显示次级字幕,但依旧会选择并解码字幕。

注意

如果设置 –sub-visibility=no,次级字幕也会被隐藏,无论 –secondary-sub-visibility 选项如何设置。

–sub-clear-on-seek

(作用不明,没啥用)

注:官方文档都这么说了,实在想要了解的话去看原文吧。

–teletext-page=<1-999>

该选项作用于 dvb_teletext 字幕流,且如果 FFmpeg 在编译时已支持该特性的话。

–sub-past-video-end

当视频播放到最后一帧之后,如果该选项被启用,字幕将会继续基于音频的时间戳进行更新。否则,视频最后一帧画面的字幕会停留在屏幕上。

默认:不可用

–sub-font=<name>

指定用于字幕的字体,而不是由它们自行指定特别的字体。默认是 sans-serif。

注意

当渲染的是 ASS 字幕时,–sub-font 选项(以及其他诸多样式同 –sub- 相关的选项)会被忽略,除非指定了 –no-sub-ass 选项。

该选项曾被用于支持字体设置模式,从 0.13.0 版本的 libass 起停止使用该功能。

–sub-font-size=<size>

指定字幕字体大小,单位是以高度为 720 像素窗口上按比例缩放后的像素大小。实际像素大小随着窗口的高度按比例进行缩放:如果窗口高度超过或小于 720 像素,文本的实际大小也会随之增加或减小。

默认:55

–sub-back-color=<color>

参见 –sub-color 选项说明。指定用于字幕文本背景的颜色。你可以使用 –sub-shadow-offset 选项来调整背景框相对于文本的大小。

–sub-blur=<0..20.0>

高斯模糊系数为 0 意味着不采用模糊处理(默认)。

–sub-bold=<yes|no>

设置文本格式为粗体

–sub-italic=<yes|no>

设置文本格式为斜体

–sub-border-color=<color>

参见 –sub-color 选项说明。指定用于字幕字体边框的颜色。

注意

当指定 –sub-back-color 选项(或者更准确地说:当没有设置该选项为完全透明时)时则忽略。

–sub-border-size=<size>

字幕字体边框按比例缩放后的像素大小(参见 –sub-font-size 选项以获取详细内容)。数值为 0 则禁用边框。

默认:3

–sub-color=<color>

指定用于没有样式的文本字幕颜色。

按照 r/g/b 的形式指定颜色,其中各颜色分量是由 0.0 ~ 1.0 范围内的数值指定。同样也可以通过使用 r/g/b/a 形式指定透明度,其中 alpha 值为 0 表示完全透明,1.0 表示不透明。如果未给定 alpha 分量,则使用的颜色为 100% 不透明。

向选项中传入单个数值用于设置字幕灰度,并且 gray/a 的形式允许你额外指定 alpha 分量。

作为替代,颜色同样可以按照 #RRGGBB 的形式指定为 RGB 十六进制三字节,其中每个2数位组表示范围从 0(00) ~ 255 (FF)的色彩值。例如,#FF0000 表示红色,这与网页色彩类似,Alpha 通过 #AARRGGBB 给定。

–sub-margin-x=<size>

按比例缩放像素后的、用于字幕的左右屏幕边距(参见 –sub-font-size 选项以获取详细内容)。

该选项指定字幕离左边框,同样也有离右边框、会被较长文本突破的距离。

默认:25

–sub-margin-y=<size>

按比例缩放像素后的、用于字幕的上下屏幕边距(参见 –sub-font-size 选项以获取详细内容)。

该选项指定了无样式文本字幕的垂直边距。如果你只是想要增加字幕垂直方向的位置,请使用 –sub-pos 选项。

默认:22

–sub-align-x=<left|center|right>

控制文本字幕应该与屏幕上的哪个角对齐(默认:center)。

绝对不要用在 ASS 字幕上,除非在 –no-sub-ass 模式下。同样地,该选项也不能用在图像字幕上。

–sub-align-y=<top|center|bottom>

控制多行字幕该如何与自身对齐方位无关地进行调整(默认:auto,受 –sub-align-y 的定义进行调节)。推荐向左调节使得字幕更加易读。

–sub-ass-justify=<yes|no>

如果 –sub-ass-override 选项没有被设为 no,则将 –sub-justify 选项的定义应用到 ASS 字幕上,默认:no。

–sub-shadow-color=<color>

参见 –sub-color 选项说明,用于字幕文本阴影的颜色。

–sub-shadow-offset=<size>

指定按比例缩放像素后字幕文本阴影的偏移大小(参见 –sub-font-size 选项以获取详细内容)。数值 0 表示禁用阴影。

默认:0

–sub-spacing=<size>

指定按比例缩放像素后水平字幕字体的间隔大小(参见 –sub-font-size 选项以获取详细内容)。该值是在普通字母间隔的大小上进行扩增,允许使用负值。

默认:0

–sub-filter-sdh=<yes|no>

采用能够去除为听力障碍或困难人群所准备的字幕附件的滤镜。该选项特别用于英语,但对于其他语言也可能会起到一部分作用。意图是可以始终开启该选项,虽这样也可能无法去除所有的附加部分。去除讲述人标签(例如 MAN:),将圆括号以及方括号内的任何文本转为大写。

默认:no

–sub-filter-sdh-harder=<yes|no>

使用 harder SDH 滤镜(如果已启用 –sub-filter-sdh 选项),同样也会去除讲述人标签以及对圆括号中的内容使用小写或大写字母。

默认:no

–sub-filter-regex-…=…

设置正则表达式列表来匹配文本字幕,并且移除任意与之匹配的行(默认:留空)。该选项是字符串列表选项,请参见 List Option 以获取详细内容。一般来说,你应该使用 –sub-filter-regex-append=<regex> 选项,其中的每项都会添加一个新的正则表达式,而不需要担心(参数长度)溢出的问题。

列表项会按顺序进行匹配,如果匹配到某个正则表达式,则停止匹配,并且该字幕行会被丢弃。默认地,与文本相对等的是 ASS 事件(如果字幕格式有所不同,则始终会进行转换)的文本字段,可能会包含用于格式化的标签。匹配过程对大小写不敏感,但这个过程具体是怎样完成的取决于 libc,并且可能只对 ASCII 字符起作用,无法用在位图/图像字幕上。在一些较底层的OS上不可用(需要 POSIX 正则的支持)。

从技术上来讲,使用正则列表来匹配内容显得有些多余,既然你可以只使用单个拼接了多个正则表达式(来达到同样的目的)的话。不过这可以帮助你逐步诊断问题所在,每次使用临时禁用或启用个别的滤镜。

警告

该功能属于实验性质,可能会在将来调整选项语义,并且如果你使用了该选项,你应该做好之后要更新选项的准备,包括使用非常原始,或者部分用于控制大小写敏感的办法来替换原先的正则内容。

–sub-filter-jsre-…=…

作用同 –sub-filter-regex 一致,只不过需要传入 JavaScript 正则表达式。与所有的 –sub-filter-regex-* 控制选项共享/受之影响(见下文),并且同样也是实验性质,仅需 JavaScript 特性支持。

–sub-filter-regex-plain=<yes|no>

决定是否首先将 ASS“文本”字段转为普通文本(默认:no)。该选项会剔除 ASS 标签并使用 ASS 指令,像是 \N 换行。如果是多行结果那么(在头尾)固定 ^ 以及 $ 正则表达式匹配每一行,但依然会丢弃所有匹配到的行的全部内容。

–sub-filter-regex-warn=<yes|no>

记录警告级别的日志,而不是详细级别(默认:no),对测试有用。

–sub-filter-regex-enable=<yes|no>

决定是否启用正则表达式滤镜(默认:yes),需要注意的是如果没有向 –sub-filter-regex 选项中添加正则表达式列表,设置该选项为 yes 是没有任何作用的,这意味着临时启用或禁用滤镜会容易得多。

–sub-create-cc-track=<yes|no>

为每条视频流创建一条隐藏式字幕轨(closed captions track or CC track)(默认:no)。唯一的目的是让数据轨在开始播放时可被选择,而不是稍后惰性创建。该功能只能用于 ATSC A53 Part 4 Closed Captions(使用编解码器 eia_608 作为字幕轨被 mpv 显示)。CC 字幕轨会被标记为“默认”并且根据普通字幕轨的选取规则进行选择。

如果视频流不含隐藏字幕,或者如果没有任何视频可解码,那么 CC 字幕轨留空且不会显示任何文本。

–sub-font-provider=<auto|none|fontconfig>

决定使用提供给后端的哪种 libass 字体(默认:auto)。auto 将会尝试使用原生的字体提供器:在 Linux 上是 fontconfig,在 macOS 上是 CoreText,在 Windows 上是 DirectWrite。fontconfig 表示强制使用 fontconfig 字体提供器,如果 libass 构建时加入支持的话(如果不支持,则行为类似 none)。

none 字体提供器会有效禁用系统字体,但仍会尝试使用内嵌的字体(除非设置了 –embeddedfonts=no 选项,这与其他所有字体提供器的行为一致),如果提供了 subfont.ttf ,以及 fonts 子目录下的字体文件。(回退行为会比其他字体提供器更加严格,并且如果字体名不匹配,可能不会渲染任何找不到对应字体的文本。)

Ch.13.7 窗口

–title=<string>

设置窗口标题。该选项用于视频窗口,并且如可能的话,也能设置音频流标题。

警告

该功能的一个问题是会导致 CPU 的高使用率,取决于用到的属性。变更窗口标题往往是一项较慢的操作,并且如果标题随着每帧画面都要变动的话,可能会严重影响播放。

–screen=<default|0-32>

在多显示器配置当中(即一台电脑接入多项显示输出),该选项会通知 mpv 该在哪块屏幕上显示视频画面。

注意(X11)

该选项无法在所有的窗口管理器上都能正常工作。在某些情形中,你可以尝试使用 –geometry 选项来直接定位到窗口。也有可能是窗口管理器提供了原生功能来控制哪块屏幕上的应用窗口应该被使用。

另见 –fs-screen 选项。

–screen-name=<string>

在多显示器配置当中,该选项会基于从视频后端得到的屏幕名称,通知 mpv 该在哪块屏幕上显示视频画面。–screen 选项当中相同的附加说明也会应用于此。如果 –screen 选项被明确设定,则忽略该选项且不做任何处理。

–fullscreen, –fs

全屏播放

–fs-screen=<all|current|0-32>

在多显示器配置当中(即一台电脑接入多项显示输出),该选项会通知 mpv 把相应的屏幕变为全屏显示。如果使用 current 选项,mpv 将退回至用户利用 screen 选项提供的内容(以此确定该在哪块屏幕上进行全屏显示)。

注意(X11)

该选项仅在窗口管理器能够理解 EWMH_NET_WM_FULLSCREEN_MONITORS 指示的前提下正常运作。

注意(macOS)

all 选项在 macOS 上不起作用且行为类似 current。

另见 –screen 选项说明。

–fs-screen-name=<string>

在多显示器配置当中,该选项会通知 mpv 基于从视频后端得到的屏幕名称把相应的屏幕变为全屏显示。–fs-screen 选项当中相同的附加说明也会应用于此。如果 –fs-screen 选项被明确设定,则忽略该选项且不做任何处理。

–keep-open=<yes|no|always>

当播放或跳转超过文件结尾处,并且没有文件可播放时(同时没有使用 –loop 选项),不要退出,而是暂停播放器。当尝试跳转至文件结尾之后时,播放器将会试图跳转到最后一帧处。

一般来说,该选项的动作类似在文件结尾处(EOF)进行 set pause yes 操作,无论 –keep-open-pause=no 选项是否被设置。

可给定以下参数:

no:如果当前文件已结束,转到下一个文件或退出。(默认)

yes:如果当前文件时列表中的最后一项也不要退出播放器,等同于不带参数的 –keep-open 选项。

always:类似 yes,但同时会应用到播放列表最后一项之前的文件上,这意味着将不会自动转到下一个文件进行播放。

注意

当使用 –frames 选项时,该选项不会如您所愿,具体来说跳转到下一个文件这件事,如果(–frames)使用了 force 参数同样也会退出播放。

同样,如果发生错误或非寻常的事件,播放器也会无条件地退出。

从 0.6.0 版本的 mpv 开始,如果播放列表中还有下一个文件,或者循环播放列表的话则不会暂停。大致上,当播放器能够正常退出时会选择暂停,但实际上有个别不符合上述情形的案例(例如 mpv –keep-open file.mkv /dev/null 会正常播放 file.mkv,随后在打开 /dev/null 虚拟设备文件时失败,随即退出)。(在 0.8.0 版本的 mpv 中引入了 always 参数,恢复了原有的行为。)

–keep-open-pause=<yes|no>

如果设为 no,仅仅会停在文件末尾,并且当你向后跳转直至再次停止的地方继续播放,而不是在 –keep-open 选项被激活时选择暂停。默认:yes。

–image-display-duration=<seconds|inf>

如果当前文件是图像,用给定的秒数来播放图像(默认:1)。inf 意思是始终保持文件开启(直到用户手动停止播放)。

不像 –keep-open 选项,(在此情景中)播放器不会暂停,而是会持续播放直至时间截止。(在播放过程中理应不会占用任何资源。)

该选项将图像文件认定为仅有1帧视频画面且没有音频流。播放器可能会认定某个非图像(输入)为图像,比方说,如果 –length 选项被用来减少视频帧的长度为1帧,或者如果你跳转到最后一帧的话。

该选项对作用于 mf:// 或 –merge-files 的帧率无影响。为此,请使用 –mf-fps 选项。

设置了 –image-display-duration 选项会隐藏 OSC 并且咋命令行输出中不会追踪播放时间,并且也不会在编码过程中复制图像帧。为了强制播放器进入“哑巴模式”并且精确计算秒数,或者在编码期间复制图像,你需要使用 –demuxer=lavf –demuxer-lavf-o=loop=1,并且使用 –length 或者 –frames 选项在特定时间后停止。

–force-window=<yes|no|immediate>

(强制)创建视频输出窗口,即使没有视频输入。当假定 mpv 为 GUI 应用时该选项会有用。目前,(强制创建的)窗口大小始终为 640×480,并且从属于 –geometry,–autofit 以及类似的选项。

警告

窗口仅会在初始化完成之后创建(以确保如果视频画面大小与 –force-window 设定默认窗口大小不一致的情况下,默认的窗口安置依旧能正常运作)。如果没能正确初始化可能会导致问题,比如说在网络连接较差时打开 URL 链接,或是打开一个损坏的视频文件。immediate 模式(即刻模式)可被用于始终在程序启动期间就创建好窗口,但同时也会引入额外的问题。

–taskbar-progress, –no-taskbar-progress

(仅 Windows 平台)启用/禁用以任务条的形式渲染播放进度(Windows 7 及以上版本)。

默认开启。

–snap-window

(仅 Windows 平台)将播放器窗口对齐至屏幕边缘。

–ontop

将播放器窗口始终置于其他窗口之上。

在 Windows 平台上,如果配合全屏模式使用,则会导致 mpv 被当作是绕开桌面窗口管理器(DWM)且排除在全屏模式之外的窗口来对待。

–ontop-level=<window|system|desktop|level>

(仅 macOS 平台)设置窗口置顶程度的级别(默认:window)

window:置于其他所有窗口之上。

system:置于类似任务栏,菜单栏以及Dock栏等系统部件之上。

desktop:置于窗口后方的桌面以及桌面图标之上。

level:表示级别的数字编号。

–focus-on-open, –no-focus-on-open

(仅 macOS 平台)创建时强制开启视频窗口并且使之呈现在大多数窗口之前,默认启用。

–border, –no-border

播放视频画面时带上窗口边框以及润饰,由于该选项默认启用,使用 –no-border 以禁用标准窗口润饰。

–on-all-workspaces

(仅 X11 以及 macOS 平台)在全部的虚拟桌面上显示视频窗口。

–geometry=<[W[xH]][+-x+-y][/WS]>, –geometry=<x:y>

调节初始窗口的位置或尺寸大小。W 和 H 分别用来设置窗口的像素大小。x 和 y 分别用来指定从屏幕左上角起到显示画面的左上角为止,以像素为单位进行测算的窗口位置。如果在参数之后给定了百分比符号(%),则会将数值换算成按对应方位屏幕的百分比大小。指定(窗口)位置类似于标准 X11 –geometry 选项的格式,例如 +10-50 表示“放置在离左边框10个像素单位以及离底部边框50个像素单位的位置”,–20+-10 表示“放置在超过右边框20个像素单位并且超过上边框10个像素单位的位置”。紧跟在末尾 / 的整数指示窗口应该显示在哪个工作区域(虚拟桌面,仅 X11)。

如果使用了 –wid 选项来指定一个外部窗口,则忽略该选项。

该坐标是相对于完全支持 –screen 视频输出驱动的 –screen 给定的屏幕而言。

注意

通常仅能被图形界面的视频输出(VO)所支持,在编码模式下则忽略。

注意(X11)

该选项无法保证在所有的窗口管理器中都能正常运作。

另见 –autofit 以及 –autofit-larger 选项用于在不改变纵横比的情况下将窗口调整为给定的尺寸大小。

–autofit=<[W[xH]]>

在不变更窗口纵横比的前提下,设置初始窗口大小为 W x H 参数所指定的最大尺寸大小。大小按像素为单位测算,或者如果数值后面紧跟百分比符号(%),则按屏幕大小的百分比。

该选项永远不会变更窗口的纵横比大小,如果遇到纵横比不匹配的情况,则会缩减窗口尺寸直到符合指定的大小为止。

窗口所在位置不在考虑之列,也并非通过该选项进行变更(窗口管理器同样也可能会根据尺寸大小而异地来布置窗口)。使用 –geometry 选项来变更窗口位置,且在该选项之后生效。

参考 –geometry 选项以获取如何应对多显示器进行设置的细节。

而如果你仅仅是想要限制窗口的最大大小请使用 –autofit-larger 选项,而非总是强行指定窗口的大小。

如果你想要同时将窗口宽度和高度强行调整为指定的大小,请使用 –geometry 选项。

注意

通常仅能被图形界面的视频输出(VO)所支持,在编码模式下则忽略。

–autofit-larger=<[W[xH]]>

该选项的行为非常像 –autofit,除了当窗口超过指定大小时仅仅是改变窗口大小这一条以外。

–autofit-smaller=<[W[xH]]>

该选项的行为非常像 –autofit,除了能设置窗口的最小大小以外(正如 –autofit-larger 设置最大大小那样)

–window-scale=<factor>

调整视频窗口大小为画面大小的倍数,该选项会在 –autofit 以及其他一众选项之前得到应用(因此后者可能会覆盖该选项)。

例如, –window-scale=0.5 应该会按照视频画面一半的大小显示窗口。

–window-minimized=<yes|no>

无论视频窗口最小化与否,如果当前的视频输出(VO)支持的话,设置该选项会将窗口最小化(minimize)或恢复最小化(unminimize)。需要注意的是部分视频输出也许支持最小化却不支持恢复最小化(例如:Wayland)

该选项以及 –window-maximized 是否适用于程序启动或运行期间与否,以及是否会(在运行期间)更新以反映实际的窗口状态,很大程度上取决于视频输出和窗口系统。某些视频输出并没有实现或仅仅是实现了其中的一部分,而其他的视频输出可能会受制于窗口系统(特别是 Wayland)。

–window-maximized=<yes|no>

无论视频窗口最大化与否,如果当前的视频输出(VO)支持的话,设置该选项会将窗口最大化或恢复最大化。请参考 –window-minimized 以获取更多摘要信息。

–cursor-autohide=<number|no|always>

设置鼠标光标在经过给定的毫秒数之后自动隐藏,no 表示禁用自动隐藏指针,always 意味着光标始终保持隐藏状态。

–cursor-autohide-fs-only

如果设置了该选项,光标在窗口模式下始终可见。而在全屏模式下,则根据 –cursor-autohide 的设置显示或隐藏光标。

注:如果同时想要在窗口模式和全屏模式下实现光标防挡的效果,仅需指定 –cursor-autohide 的参数,建议与OSC窗口组件的自动隐藏时间保持一致以确保UI动画观感的统一。

–no-fixed-vo, –fixed-vo

–no-fixed-vo 强制关闭和重新打开多个文件的视频窗口(为每个文件逐个初始化或逆初始化)。

–force-rgba-osd-rendering

改变某些视频输出渲染OSD和文本字幕的方式,期间不会改变字幕的外观,只会对性能产生影响。对于支持本地 ASS 渲染的视频输出(比如说 gpu,vdpau,direct3d)可能会略微加快或放缓渲染速度,具体取决于 GPU 驱动程序以及硬件。对于其他视频输出只会让渲染速度变慢。

–force-window-position

每当视频画面参数,视频流或是文件变更时,强制将 mpv 的视频输出窗口移至默认位置。这曾经是默认行为,目前仅会影响 X11 视频输出。

–no-keepaspect, –keepaspect

–no-keepaspect 始终会将视频画面拉伸至窗口大小,并且会禁用窗口管理器强制窗口纵横比的提示(在全屏模式下则忽略)。

–no-keepaspect-window, –keepaspect-window

–keepaspect-window(默认)将会锁定窗口大小为视频画面的纵横比。–no-keepaspect-window 则会禁用该行为,并且如果窗口纵横比与视频画面不匹配的话则会添加黑色边框条(加以补偿)。该选项实际工作与否取决于视频输出的后端(在全屏模式下则忽略)。

–monitoraspect=<ratio>

设置显示器或电视屏幕的纵横比,数值 0 则禁用预先的设置(例如配置文件中的相应设置),如果启用了该选项则会覆盖 –monitorpixelaspect 的设置。

另请参见 –monitorpixelaspect 以及 –video-aspect-override 选项说明。

–hidpi-window-scale, –no-hidpi-window-scale

(仅 macOS,Windows,X11 以及 Wayland 平台)根据所支持的缩放系数来缩放窗口大小(默认:yes)。在常规的 HiDPI 分辨率下,以两倍大小打开窗口,但在非 HiDPI 分辨率下则显示为相同的大小,这在 macOS 平台上是某人启用的。

–native-fs, –no-native-fs

(仅 macOS 平台)使用操作系统提供的原生全屏机制(默认:yes)

–monitorpixelaspect=<ratio>

设置显示器或电视屏幕单个像素单位的纵横比(默认:1)。数值 1 表示方形像素(适用于全部(或是绝大部分?)的 LCD 屏)。另请参见 –monitoraspect 以及 –video-aspect-override 选项说明。

–stop-screensaver, –no-stop-screensaver

程序启动时关闭屏保(或是熄屏以及类似的机制)并在退出时再次开启(默认:yes),当播放器被暂停时总是会重新启用屏保。

不是所有的视频输出或平台都支持这项功能,有时候虽然实现了,但并不会起作用(特别是 Linux 桌面),具体请仔细阅读 Ch.12.1 Disabling Screensaver 章节。

–wid=<ID>

如果选择了支持该选项的视频输出,则通知 mpv 附加到现有的窗口中,并使用该窗口进行画面输出。mpv 会将视频画面的纵横比缩放至当前窗口大小,并且会在画面纵横比不同时添加黑色边框条进行补偿。

在 X11 平台上,ID 被解释为 X11 上面的窗口,与 MPlayer/mplayer2 所不同的是,mpv 始终会创建自己的窗口,并将 wid 所指向的窗口设为父窗口,且始终会调整自身窗口大小以完全覆盖父窗口。数值 0 被特别解释为 mpv 直接在根窗口上绘制界面。

在 win32 平台上,ID 被解释为 HWND,将其作为参数值转换为 intptr_t 类型,mpv 将会创建自己的窗口,并将 wid 窗口设为父窗口,就像 X11 那样。

在 macOS/Cocoa 平台上,ID 被解释为 NSView*,将其作为参数值转换为 intptr_t 类型,mpv 将会创建自己的子视图。由于 macOS 不支持外部进程的窗口内嵌,因此仅适用于 libmpv 库,并且在命令行中使用时会导致崩溃。

在 Android 平台上,ID 被解释为 android.view.Surface,将其作为参数值转换为 intptr_t 类型,与 –vo=mediacodec_embed 以及 –hwdec=mediacodec 选项一同使用媒体编解码器来直接渲染,或是使用 –vo=gpu –gpu-context=android(带或不带 –hwdec=mediacodec-copy 都可)。

–no-window-dragging

单击窗口并移动鼠标指针时不要移动窗口。

–x11-name

为基于 X11 的视频输出方案设置窗口类名。

–x11-netwm=<yes|no|auto>

(仅 X11 平台)控制 NetWN 协议功能的使用。

这可能会也可能不会对异常的窗口管理器有帮助,另外提供了一些现已删除的、由 –fstype 选项实现的功能。实际上,开发人员尚不清楚该选项在多大程度上被用户所需要,所以欢迎反馈。

具体来说,yes 将强制使用 NetWN 的全屏支持,即使是 WN 尚未公布的特性。这对于故意损坏的 WN(例如 XMonad)来说会非常有用。XMonad 据说没有宣传过对全屏的支持,因为 Flash 需要用到,显然,无论如何都想要使用全屏的应用程序应当忽略 NetWN 所支持的提示,或提供解决方案。对于 XMonad 有意破坏 X 协议的行为应该感到羞耻(好像 X 协议也不算太糟糕吧)。

默认情况下,会自动检测对 NetWN 的支持。

未来可能会移除该选项。

–x11-bypass-compositor=<yes|no|fs-only|never>

如果设为 yes,则要求合成器取消重定向 mpv 窗口(默认:fs-only),这将使用 _NET_WM_BYPASS_COMPOSITOR 作为提示。

fs-only 要求窗口管理器仅在全屏模式下禁用合成器。

no 将 _NET_WM_BYPASS_COMPOSITOR 的值设为 0,这是 EWMH 规范声明的默认值,即不做任何更改。

never 要求窗口管理器永不禁用合成器。

参考资料:

  • https://mpv.io/manualMPV Player Reference

  • https://mpv.iompv项目官网

资源下载: