之前的 MPC 系教程和 madVR 教程都有些過(guò)時(shí)了。老教程直接通過(guò)注冊(cè)表來(lái)設(shè)置雖然簡(jiǎn)單直接,但不利于維護(hù),索性重新寫一篇。
和 mpv 的教程 類似,本教程只提及最具普適性的選項(xiàng),不為播放“高清病毒”,也不追求“極限畫質(zhì)”而故意榨取 CPU 和顯卡性能。
本教程基于 K-Lite Codec Pack Full,其中已經(jīng)包含了 MPC-HC 和 madVR。MPC-HC 現(xiàn)在已由 clsid2(原 MPC 6.4.9.1 開發(fā)者)接手繼續(xù)開發(fā),而 madVR 應(yīng)該已經(jīng)不需要再多做介紹。
madVR 其實(shí)并不需要很高的硬件性能就可以達(dá)到相當(dāng)好的效果,所以默認(rèn)建議使用。如果你不想使用 madVR,也可以選擇 K-Lite Codec Pack Standard 或者 MPC-BE。我們不推薦使用 PotPlayer。
安裝
直接從前文給出的 K-Lite Codec Pack 官網(wǎng)鏈接下載安裝包,運(yùn)行即可。安裝過(guò)程中的大部分選項(xiàng)都可以保留默認(rèn),除了下面這兩處:
– 因?yàn)槲覀円J(rèn)使用 madVR 作為視頻渲染器,所以這里要選擇“Video renderer: madVR”(當(dāng)然,如果你不用 madVR,這里保留默認(rèn)的“MPC Video Renderer”就好)
– 為了保證播放穩(wěn)定可靠,我們一般建議只使用軟件解碼(見后文補(bǔ)充說(shuō)明)
友情提示,K-Lite Codec Pack 安裝包可能捆綁有贊助推廣軟件,不需要的話記得留意把它取消安裝。
簡(jiǎn)單配置
K-Lite Codec Pack 默認(rèn)使用 MPC-HC 作為播放器,對(duì)于大部分常見的視頻文件格式和編碼都默認(rèn)使用 LAV 分離器和解碼器,設(shè)置都沒有什么需要特別修改的地方。你只需要看看播放器的其他行為設(shè)置,讓它更符合你的操作習(xí)慣即可,例如啟動(dòng)時(shí)默認(rèn)進(jìn)入全屏模式、快捷鍵等等。
如果你不用 madVR,默認(rèn)會(huì)使用 MPC Video Renderer 作為渲染器,默認(rèn)設(shè)置也不需要改動(dòng)。
madVR 配置
如果你使用 madVR,接下來(lái)我們還有一些關(guān)于 madVR 的配置建議。
– 如果你正在使用顯示器自帶的出廠色彩校正模式,或者是已通過(guò)硬件校色校準(zhǔn)的顯示器,可以在這里選擇“this display is already calibrated”,并在下方選擇對(duì)應(yīng)的色域,例如 sRGB 則選擇“BT.709”(sRGB 和 BT.709 的色域是完全相同的),DCI-P3 則選擇“DCI-P3”,gamma 一般保留默認(rèn)的“pure power curve 2.20”即可:
當(dāng)然,如果你通過(guò)軟件對(duì)屏幕進(jìn)行了校色,這里應(yīng)該選擇“calibrate this display by using eternal 3DLUT files”,詳見后文補(bǔ)充說(shuō)明。
– 打開 madVR 自帶的去色帶功能,強(qiáng)度保持默認(rèn)的“low/high”即可。色帶是最為常見的視頻瑕疵之一,默認(rèn)啟用去色帶是利遠(yuǎn)大于弊的:
很多時(shí)候,我們的顯示器刷新率不是片源幀率的整數(shù)倍(例如顯示器刷新率通常為 60 Hz 而動(dòng)畫通常為 23.976 fps),此時(shí)會(huì)因每一幀實(shí)際在屏幕上的呈現(xiàn)時(shí)間不均等而造成卡頓感(俗稱 3:2 pull down judder)。madVR 的 smooth motion 功能正是為此設(shè)計(jì),建議默認(rèn)打開:
madVR 自帶的各種縮放算法(scaling algorithms)是其最大特色之一。這里我們提供三套推薦的縮放算法相關(guān)配置,按對(duì)性能的要求分為低、中、高三檔:
需要指出的是,這里對(duì)性能要求的高低并不絕對(duì)等同于畫質(zhì)的高低,“低”檔設(shè)置的質(zhì)量其實(shí)已經(jīng)相當(dāng)好了,而“高”檔設(shè)置在一些低質(zhì)量片源上反而有可能放大片源瑕疵。綜合來(lái)說(shuō)我們最推薦“中”檔設(shè)置,是在畫質(zhì)、功耗和泛用性之間較為平衡的選擇。
以“中”檔為例,設(shè)置完成后應(yīng)該是如下圖的狀態(tài):
在完成本文的配置后,你可以打開一個(gè)碼率較高的視頻,按下 Ctrl + j 觀察顯示的 dropped frames、delayed frames 和 presentation glitches 這幾項(xiàng)計(jì)數(shù),如果播放一段時(shí)間后這幾個(gè)數(shù)字都保持穩(wěn)定沒有增加,則基本可以確定視頻播放沒有什么問題了:
madVR 功能很豐富,這里不打算一一詳解。再次推薦有意了解的同學(xué)閱讀暮星(萬(wàn)年冷凍庫(kù))的這篇文章。
使用 XySubFilter with libass 字幕渲染器
對(duì) Windows 平臺(tái)上字幕渲染器的歷史有些了解的朋友大概都知道 VSFilter (DirectVobSub) 到 xy-VSFilter/XySubFilter 的演化過(guò)程。原版 VSFilter 早已作古,其改版 xy-VSFilter/XySubFilter 開發(fā)也基本停滯,留有不少陳年 bug,在 4K 分辨率開始普及后性能問題也開始凸顯。另外,VSFilter 系只支持 Windows 平臺(tái)上基于 DirectShow 的播放器(如 MPC 系、PotPlayer),無(wú)法跨平臺(tái)使用。libass 則是一個(gè)另起爐灶的跨平臺(tái)字幕渲染器,性能也更佳,諸如 mpv、VLC 和很多移動(dòng)平臺(tái)上的播放器都使用 libass 來(lái)渲染字幕,近年來(lái)越來(lái)越普及。
由于 VSFilter 系長(zhǎng)期的壟斷地位而成為事實(shí)標(biāo)準(zhǔn),絕大部分字幕組只能以 VSFilter 的渲染結(jié)果為準(zhǔn)來(lái)制作和調(diào)整字幕顯示效果(例如額外增大部分 OTF 字體豎排時(shí)的字號(hào)來(lái)彌補(bǔ)字體顯示會(huì)變小的 bug)。libass 最近做出了一些妥協(xié)性修改,顯示效果絕大部分時(shí)候都已經(jīng)與 VSFilter 一致。因此,現(xiàn)在是擺脫 VSFilter 的歷史包袱,遷移到 libass 的一個(gè)好時(shí)機(jī)。
XySubFilter with libass 就是在 XySubFilter 基礎(chǔ)上修改以 libass 作為后端的字幕渲染器,讓 DirectShow 播放器也能享受到 libass 高性能而不犧牲兼容性,推薦大家使用。
安裝過(guò)程非常簡(jiǎn)單,只需要到項(xiàng)目的 GitHub 發(fā)布頁(yè)面下載最新版本,解壓到一個(gè)合適的位置,以管理員身份運(yùn)行 Install_XySubFilter.bat,然后在 MPC-HC 的選項(xiàng)中啟用即可:
補(bǔ)充說(shuō)明
使用 HDMI 連接顯示器時(shí)注意設(shè)置輸出范圍
Intel 集成顯卡和 NVIDIA 顯卡有時(shí)會(huì)在使用 HDMI 輸出時(shí),默認(rèn)使用有限范圍(limited range),嚴(yán)重影響顯示對(duì)比度。所以在使用 HDMI 連接顯示器時(shí),要注意檢查輸出范圍,在顯示控制面板中將輸出范圍設(shè)置為全范圍(full range),如果控制面板中沒有提供選項(xiàng),可以借助 madVR 附帶的 madLevelsTweaker.exe 工具來(lái)調(diào)整。
DVI、DisplayPort 默認(rèn)應(yīng)該就是全范圍,筆記本電腦的自帶屏幕一般也不需要專門設(shè)置。
是否應(yīng)該開啟硬解(硬件解碼)?
近幾年的主流 PC 對(duì)最常見的視頻編碼(H.264 和 H.265)硬解的支持已經(jīng)有了一些提高,但出現(xiàn)各種問題的幾率仍不算低。為了保證播放穩(wěn)定可靠,我們一般建議只使用軟件解碼。如果你有其他需求,例如希望降低筆記本電腦功耗、提高電池續(xù)航,可以嘗試開啟硬解。
首先打開 K-Lite Codec Pack 的 Codec Tweak Tool,選擇 Configuration – DirectShow Filters – LAV Video Decoder (MPC-HC) 打開 LAV 解碼器設(shè)置界面,然后在右上角選擇“D3D11”:
如果在硬解開啟時(shí)播放遇到奇怪問題,應(yīng)該首先嘗試禁用硬解來(lái)排查。
關(guān)于雙顯卡筆記本的設(shè)置
如果你使用的是集成顯卡 + NVIDIA 獨(dú)立顯卡的筆記本,默認(rèn)設(shè)置下 MPC-HC 只會(huì)調(diào)用集成顯卡來(lái)進(jìn)行渲染計(jì)算,性能有限。如果你發(fā)現(xiàn)播放時(shí)顯卡性能成為瓶頸,可以嘗試改用更高性能的獨(dú)立顯卡。
NVIDIA 控制面板屏蔽了 MPC-HC 默認(rèn)的主程序文件名 mpc-hc64.exe,本來(lái)是無(wú)法直接設(shè)置使用獨(dú)立顯卡的。K-Lite Codec Pack 在安裝時(shí)如果檢測(cè)系統(tǒng)環(huán)境中有雙顯卡(NVIDIA Optimus)存在,會(huì)自動(dòng)將 MPC-HC 主程序文件名改為 mpc-hc64_nvo.exe。如果你的 MPC-HC 主程序仍然是 mpc-hc64.exe,需要先改個(gè)名字,或者用 NVIDIA Profile Inspector 解鎖。詳情可以參考這里。
然后在 NVIDIA 控制面板 – 3D 設(shè)置 – 管理 3D 設(shè)置 – 程序設(shè)置下,添加 MPC-HC 主程序,將首選圖形處理器改為“高性能 NVIDIA 處理器”,并將電源管理模式改為“自適應(yīng)”。
使用 ICC profile 為 madVR 生成 3DLUT 文件實(shí)現(xiàn)色彩管理
我們需要用到校色軟件 DisplayCAL 配套的一個(gè)小程序 3DLUT Maker。首先從 DisplayCAL 官網(wǎng)下載安裝(如果你還沒有的話),然后運(yùn)行 3DLUT Maker,“Destination profile”選擇你顯示器的 ICC profile 文件,確保“Apply calibration (vcgt)”不勾選,文件格式當(dāng)然是“madVR (.3dlut)”,其余保持默認(rèn)即可:
點(diǎn)擊右下角按鈕,選擇保存位置,完成后,把得到的 .3dlut 文件放在一個(gè)合適的位置,然后打開 madVR 設(shè)置,按下圖設(shè)置,確保“disable GPU gamma ramps”不勾選:
然后保存設(shè)置即可。