以下摘取自 mpv player 官方使用手册中的STATS章节,版本 v0.34.0,不保证内容的时效性,仅供参考,实际还是以官方发布的最新文档为准,善用 Ctrl + F 快速定位你想要的内容:
该内置脚本会显示当前播放文件的相关信息与统计数据,如果在软件编译时带上了支持 Lua 的选项,则默认是启用状态。可以使用 –load-stats-overlay=no 选项完全禁用此功能。
使用方法
默认情况下,以下这些快捷键处于激活状态,除非已绑定了其他的设置内容:
i
以固定时长显示统计信息
l(大写的 i )
切换统计信息显示状态(直到再次切换之前一直显示,也就是常驻显示)
当统计信息在屏幕上可见时,下列快捷键被激活,无论现有的绑定内容如何,它们允许你在状态页之间来回切换:
1
显示常规的统计信息。
2
显示画面帧计时(滚动效果)
3
输入缓存统计信息。
4
激活的快捷键(滚动效果)
5
内部信息(滚动效果)
在支持滚动效果的页面中,这些快捷键也同样受支持:
UP
向上滚动一行
DOWN
向下滚动一行
字体
为了获得最佳的视觉体验,建议使用支持多种宽度和粗细的字体。软件默认使用的是开源字库 Source Sans Pro
配置
该脚本可以通过存放在mpv用户目录下的 script-opts/stats.conf 配置文件,以及 –script-opts 命令行选项进行自定义设置。配置语法在 Ch.20 ON SCREEN CONTROLLER 章节中描述过。
配置选项
key_page_1
默认:1
key_page_2
默认:2
key_page_3
默认:3
key_page_4
默认:4
key_page_0
默认:0
以上为当显示统计信息时在页面之间切换的快捷键。
key_scroll_up
默认:UP
key_scroll_down
默认:DOWN
scroll_lines(单次滚动行数)
默认:1
以上为滚动快捷键和在支持的页面上滚动的行数。
duration
默认:4
统计信息显示的秒数(仅显示一次)
redraw_delay(重绘延迟)
默认:1
刷新显示的统计信息需要的秒数(切换成开启状态时)
persistent_overlay(持续性叠加)
默认:no
当设置为 no,其他脚本打印到屏幕上的文本可以复写已显示的统计信息。当设置为 yes,显示的统计信息将以独立的时长持续显示,这会导致当多个脚本决定同时打印文本时出现文本重叠的问题。
plot_perfdata(绘制性能数据)
默认:yes
显示性能数据图像。
plot_vsync_ratio(绘制视频同步率)
默认:yes
plot_vsync_jitter(绘制视频同步抖动)
默认:yes
显示有关视频同步以及抖动值图像,仅当开启时有效。
flush_graph_data
默认:yes
开启时用于清空绘制图像的数据缓冲。
font
默认:Source Sans Pro
字体名称,为了最佳的视觉体验,应当尽可能多地支持字体宽度。
font_mono
默认:Source Sans Pro
需要等宽字符才能对齐文本部分的字体名称,当前,使用等宽数字足够。
font_size
默认:8
用于渲染文本的字体大小。
font_color
默认:FFFFFF
字体颜色
border_size
默认:0.8
绘制在字体周围的边框大小
border_color
默认:262626
绘制边框的颜色
alpha
默认:11
绘制文本的透明度
plot_bg_border_color(绘制背景边框的颜色)
默认:0000FF
用于绘制图像的边框颜色
plot_bg_color(绘制背景颜色)
默认:262626
用于绘制图像的背景颜色
plot_color
默认:FFFFFF
用于绘制图像的颜色
注意:颜色均以十六进制数值的形式给出,且使用 ASS 标签顺序:BBGGRR(Blue Green Red)
不同的快捷键
额外的键位可以配置在 input.conf 文件中用于显示统计信息:
以及用于直接显示确切的页面:
已激活快捷键页面
列出已激活的快捷键以及它们绑定到的命令,但统计信息脚本自身的交互式键位除外,另见 –input-test 选项以获取各个绑定的更多详细内容。
通过使用一种简单的命令字符串分析方式,自动地对这些键位进行分组。不应该期望能够做到文档级别的分组准确度,但这依旧是比较实用的办法。
使用 –idle –script-opts=stats-bindlist=yes 选项将会打印列表内容到终端上并立即退出。默认情况下,长整行会缩短至79个字符,并且启用终端转义序列。
可以通过修改 yes 为数字(至少为40)的方式设置不同的长度限制,并且转义序列可以通过在数值前添加 – 的方式被禁用,例如 …=-yes 或者 …=-120
与 –input-test 选项类似,列表包含来自 input.conf 与 用户脚本的绑定内容。
内部信息页面
在该页面上显示的大多数条目都具有比较模糊的含义。很有可能这其中没有一项是对你有用的,所以请不要尝试去使用,忘了它的存在就好。
第一次选择该页面会开始收集一些内部性能数据,也就意味着在播放器剩余运行时间内,软件性能将略微低于普通水准(即使关闭了统计信息页)。需要注意的是,统计页面自身会占用大量CPU甚至是GPU资源,可能会对性能造成严重影响。
显示的信息会在重绘延迟期间累计(以 poll-time 字段的形式显示)
为每个Lua脚本添加条目,如果运行的脚本过多,列表的一部分内容会超出屏幕显示范围,不过可以滚动查看。
如果底层平台不支持单个线程时间内的 pthread,那么显示的时间是 0 或者某个随机值(我怀疑在撰写本文档时,仅有Linux能够通过pthread 为单个线程时间提供正确的API)
大多数条目都是惰性添加且仅在数据收集期间添加,这就是为什么条目会在一段时间后随机地弹出。这也是为什么从统计数据开始被收集算起,非活动状态的脚本内存使用条目丢失的原因。
内存使用实际是一个近似值,并不会反应内部碎片的状况。
默认情况下,JS脚本的内存报告是被禁用的,因为在JS端收集数据会产生一定量的开销。可以在开启mpv之前从外部导入 MPV_LEAK_REPORT=1 环境变量启用这一功能。
如果条目中含有 /time 和 /cpu 的变形,前者提供实时时间(单调时钟),而后者提供线程的CPU时间(仅当相关的 pthread API 正确工作和受支持时有效)
参考资料:
-
https://mpv.io/manual(MPV Player Reference)
-
https://mpv.io(mpv项目官网)