[Ch.22] MPV Player 官方文檔中有關統(tǒng)計信息STATS的說明 v0.34.0
以下摘取自 mpv player 官方使用手冊中的STATS章節(jié),版本 v0.34.0,不保證內(nèi)容的時效性,僅供參考,實際還是以官方發(fā)布的最新文檔為準,善用 Ctrl + F 快速定位你想要的內(nèi)容:

該內(nèi)置腳本會顯示當前播放文件的相關信息與統(tǒng)計數(shù)據(jù),如果在軟件編譯時帶上了支持 Lua 的選項,則默認是啟用狀態(tài)??梢允褂?--load-stats-overlay=no 選項完全禁用此功能。
使用方法
默認情況下,以下這些快捷鍵處于激活狀態(tài),除非已綁定了其他的設置內(nèi)容:
i
以固定時長顯示統(tǒng)計信息
l(大寫的 i )
切換統(tǒng)計信息顯示狀態(tài)(直到再次切換之前一直顯示,也就是常駐顯示)
當統(tǒng)計信息在屏幕上可見時,下列快捷鍵被激活,無論現(xiàn)有的綁定內(nèi)容如何,它們允許你在狀態(tài)頁之間來回切換:
1
顯示常規(guī)的統(tǒng)計信息。
2
顯示畫面幀計時(滾動效果)
3
輸入緩存統(tǒng)計信息。
4
激活的快捷鍵(滾動效果)
5
內(nèi)部信息(滾動效果)
在支持滾動效果的頁面中,這些快捷鍵也同樣受支持:
UP
向上滾動一行
DOWN
向下滾動一行
字體
為了獲得最佳的視覺體驗,建議使用支持多種寬度和粗細的字體。軟件默認使用的是開源字庫? Source Sans Pro
配置
該腳本可以通過存放在mpv用戶目錄下的 script-opts/stats.conf 配置文件,以及 --script-opts 命令行選項進行自定義設置。配置語法在 Ch.20 ON SCREEN CONTROLLER 章節(jié)中描述過。
配置選項
key_page_1
默認:1
key_page_2
默認:2
key_page_3
默認:3
key_page_4
默認:4
key_page_0
默認:0
以上為當顯示統(tǒng)計信息時在頁面之間切換的快捷鍵。
key_scroll_up
默認:UP
key_scroll_down
默認:DOWN
scroll_lines(單次滾動行數(shù))
默認:1
以上為滾動快捷鍵和在支持的頁面上滾動的行數(shù)。
duration
默認:4
統(tǒng)計信息顯示的秒數(shù)(僅顯示一次)
redraw_delay(重繪延遲)
默認:1
刷新顯示的統(tǒng)計信息需要的秒數(shù)(切換成開啟狀態(tài)時)
persistent_overlay(持續(xù)性疊加)
默認:no
當設置為 no,其他腳本打印到屏幕上的文本可以復寫已顯示的統(tǒng)計信息。當設置為 yes,顯示的統(tǒng)計信息將以獨立的時長持續(xù)顯示,這會導致當多個腳本決定同時打印文本時出現(xiàn)文本重疊的問題。
plot_perfdata(繪制性能數(shù)據(jù))
默認:yes
顯示性能數(shù)據(jù)圖像。
plot_vsync_ratio(繪制視頻同步率)
默認:yes
plot_vsync_jitter(繪制視頻同步抖動)
默認:yes
顯示有關視頻同步以及抖動值圖像,僅當開啟時有效。
flush_graph_data
默認:yes
開啟時用于清空繪制圖像的數(shù)據(jù)緩沖。
font
默認:Source Sans Pro
字體名稱,為了最佳的視覺體驗,應當盡可能多地支持字體寬度。
font_mono
默認:Source Sans Pro
需要等寬字符才能對齊文本部分的字體名稱,當前,使用等寬數(shù)字足夠。
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
用于繪制圖像的顏色
注意:顏色均以十六進制數(shù)值的形式給出,且使用 ASS 標簽順序:BBGGRR(Blue Green Red)
不同的快捷鍵
額外的鍵位可以配置在 input.conf 文件中用于顯示統(tǒng)計信息:
以及用于直接顯示確切的頁面:
已激活快捷鍵頁面
列出已激活的快捷鍵以及它們綁定到的命令,但統(tǒng)計信息腳本自身的交互式鍵位除外,另見 --input-test 選項以獲取各個綁定的更多詳細內(nèi)容。
通過使用一種簡單的命令字符串分析方式,自動地對這些鍵位進行分組。不應該期望能夠做到文檔級別的分組準確度,但這依舊是比較實用的辦法。
使用 --idle --script-opts=stats-bindlist=yes 選項將會打印列表內(nèi)容到終端上并立即退出。默認情況下,長整行會縮短至79個字符,并且啟用終端轉(zhuǎn)義序列。
可以通過修改 yes 為數(shù)字(至少為40)的方式設置不同的長度限制,并且轉(zhuǎn)義序列可以通過在數(shù)值前添加 - 的方式被禁用,例如 ...=-yes 或者 ...=-120
與 --input-test 選項類似,列表包含來自 input.conf 與 用戶腳本的綁定內(nèi)容。
內(nèi)部信息頁面
在該頁面上顯示的大多數(shù)條目都具有比較模糊的含義。很有可能這其中沒有一項是對你有用的,所以請不要嘗試去使用,忘了它的存在就好。
第一次選擇該頁面會開始收集一些內(nèi)部性能數(shù)據(jù),也就意味著在播放器剩余運行時間內(nèi),軟件性能將略微低于普通水準(即使關閉了統(tǒng)計信息頁)。需要注意的是,統(tǒng)計頁面自身會占用大量CPU甚至是GPU資源,可能會對性能造成嚴重影響。
顯示的信息會在重繪延遲期間累計(以 poll-time 字段的形式顯示)
為每個Lua腳本添加條目,如果運行的腳本過多,列表的一部分內(nèi)容會超出屏幕顯示范圍,不過可以滾動查看。
如果底層平臺不支持單個線程時間內(nèi)的 pthread,那么顯示的時間是 0 或者某個隨機值(我懷疑在撰寫本文檔時,僅有Linux能夠通過pthread 為單個線程時間提供正確的API)
大多數(shù)條目都是惰性添加且僅在數(shù)據(jù)收集期間添加,這就是為什么條目會在一段時間后隨機地彈出。這也是為什么從統(tǒng)計數(shù)據(jù)開始被收集算起,非活動狀態(tài)的腳本內(nèi)存使用條目丟失的原因。
內(nèi)存使用實際是一個近似值,并不會反應內(nèi)部碎片的狀況。
默認情況下,JS腳本的內(nèi)存報告是被禁用的,因為在JS端收集數(shù)據(jù)會產(chǎn)生一定量的開銷??梢栽陂_啟mpv之前從外部導入 MPV_LEAK_REPORT=1 環(huán)境變量啟用這一功能。
如果條目中含有 /time 和 /cpu 的變形,前者提供實時時間(單調(diào)時鐘),而后者提供線程的CPU時間(僅當相關的 pthread API 正確工作和受支持時有效)

參考資料:
https://mpv.io/manual(MPV Player Reference)
https://mpv.io(mpv項目官網(wǎng))
