5-06 62,753
之前的 MPC 系教程和 madVR 教程都有些過時了。老教程直接通過註冊表來設置雖然簡單直接,但不利於維護,索性重新寫一篇。
和 mpv 的教程 類似,本教程只提及最具普適性的選項,不為播放“高清病毒”,也不追求“極限畫質”而故意榨取 CPU 和顯卡性能。
本教程基於 K-Lite Codec Pack Full,其中已經包含了 MPC-HC 和 madVR。MPC-HC 現在已由 clsid2(原 MPC 6.4.9.1 開發者)接手繼續開發,而 madVR 應該已經不需要再多做介紹。
madVR 其實並不需要很高的硬件性能就可以達到相當好的效果,所以默認建議使用。如果你不想使用 madVR,也可以選擇 K-Lite Codec Pack Standard 或者 MPC-BE。我們不推荐使用 PotPlayer。
安裝
直接從前文給出的 K-Lite Codec Pack 官网链接下載安裝包,運行即可。安裝過程中的大部分選項都可以保留默認,除了下面這兩處:
– 因為我們要默認使用 madVR 作為視頻渲染器,所以這裡要選擇“Video renderer: madVR”
(當然,如果你不用 madVR,這裡保留默認的“MPC Video Renderer”就好)
– 為了保證播放穩定可靠,我們一般建議只使用軟件解碼(見後文補充說明)
友情提示,K-Lite Codec Pack 安裝包可能捆綁有贊助推廣軟件,不需要的話記得留意把它取消安裝。
簡單配置
K-Lite Codec Pack 默認使用 MPC-HC 作為播放器,對於大部分常見的視頻文件格式和編碼都默認使用 LAV 分離器和解碼器,設置都沒有什麼需要特別修改的地方。你只需要看看播放器的其他行為設置,讓它更符合你的操作習慣即可,例如啟動時默認進入全屏模式、快捷鍵等等。
如果你不用 madVR,默認會使用 MPC Video Renderer 作為渲染器,默認設置也不需要改動。
madVR 配置
如果你使用 madVR,接下來我們還有一些關於 madVR 的配置建議。
– 如果你正在使用顯示器自帶的出廠色彩校正模式,或者是已通過硬件校色校準的顯示器,可以在這裡選擇“this display is already calibrated”,並在下方選擇對應的色域,例如 sRGB 則選擇“BT.709”(sRGB 和 BT.709 的色域是完全相同的),DCI-P3 則選擇“DCI-P3”,gamma 一般保留默認的“pure power curve 2.20”即可:
當然,如果你通過軟件對屏幕進行了校色,這裡應該選擇“calibrate this display by using eternal 3DLUT files”,詳見後文補充說明。
– 打開 madVR 自帶的去色帶功能,強度保持默認的“low/high”即可。色帶是最為常見的視頻瑕疵之一,默認啟用去色帶是利遠大於弊的:
– 很多時候,我們的顯示器刷新率不是片源幀率的整數倍(例如顯示器刷新率通常為 60 Hz 而動畫通常為 23.976 fps),此時會因每一幀實際在屏幕上的呈現時間不均等而造成卡頓感(俗稱 3:2 pull down judder)。madVR 的 smooth motion 功能正是為此設計,建議默認打開:
– madVR 自帶的各種縮放算法(scaling algorithms)是其最大特色之一。這裡我們提供三套推薦的縮放算法相關配置,按對性能的要求分為低、中、高三檔:
chroma upscaling | image downscaling | image upscaling | |
低 | Cubic (Bicubic50) | Cubic (Bicubic50) + LL | Lanczos (3 taps) + SL |
中 | Cubic (Bicubic50) + AR | Cubic (Bicubic50) + LL + AR (relaxed) | Jinc + AR + SL |
高 | super-xbr (100) + AR | SSIM (1D – 100%) + LL + AR (relaxed) | NGU Sharp (medium) |
需要指出的是,這裡對性能要求的高低並不絕對等同於畫質的高低,“低”檔設置的質量其實已經相當好了,而“高”檔設置在一些低質量片源上反而有可能放大片源瑕疵。綜合來說我們最推薦“中”檔設置,是在畫質、功耗和泛用性之間較為平衡的選擇。
以“中”檔為例,設置完成後應該是如下圖的狀態:
在完成本文的配置後,你可以打開一個碼率較高的視頻,按下 Ctrl + j 觀察顯示的 dropped frames、delayed frames 和 presentation glitches 這幾項計數,如果播放一段時間後這幾個數字都保持穩定沒有增加,則基本可以確定視頻播放沒有什麼問題了:
madVR 功能很豐富,這裡不打算一一詳解。再次推薦有意了解的同學閱讀暮星(万年冷冻库)的这篇文章。
使用 XySubFilter with libass 字幕渲染器
對 Windows 平台上字幕渲染器的歷史有些了解的朋友大概都知道 VSFilter (DirectVobSub) 到 xy-VSFilter/XySubFilter 的演化過程。原版 VSFilter 早已作古,其改版 xy-VSFilter/XySubFilter 開發也基本停滯,留有不少陳年 bug,在 4K 分辨率開始普及後性能問題也開始凸顯。另外,VSFilter 系只支持 Windows 平台上基於 DirectShow 的播放器(如 MPC 系、PotPlayer),無法跨平台使用。libass 則是一個另起爐灶的跨平台字幕渲染器,性能也更佳,諸如 mpv、VLC 和很多移動平台上的播放器都使用 libass 來渲染字幕,近年來越來越普及。
由於 VSFilter 系長期的壟斷地位而成為事實標準,絕大部分字幕組只能以 VSFilter 的渲染結果為準來製作和調整字幕顯示效果(例如額外增大部分 OTF 字體豎排時的字號來彌補字體顯示會變小的 bug)。libass 最近做出了一些妥協性修改,顯示效果絕大部分時候都已經與 VSFilter 一致。因此,現在是擺脫 VSFilter 的歷史包袱,遷移到 libass 的一個好時機。
XySubFilter with libass 就是在 XySubFilter 基礎上修改以 libass 作為後端的字幕渲染器,讓 DirectShow 播放器也能享受到 libass 高性能而不犧牲兼容性,推薦大家使用。
安裝過程非常簡單,只需要到项目的 GitHub 发布页面下載最新版本,解壓到一個合適的位置,以管理員身份運行 Install_XySubFilter.bat,然後在 MPC-HC 的選項中啟用即可:
補充說明
使用 HDMI 連接顯示器時注意設置輸出範圍
Intel 集成顯卡和 NVIDIA 顯卡有時會在使用 HDMI 輸出時,默認使用有限範圍(limited range),嚴重影響顯示對比度。所以在使用 HDMI 連接顯示器時,要注意檢查輸出範圍,在顯示控制面板中將輸出範圍設置為全範圍(full range),如果控制面板中沒有提供選項,可以藉助 madVR 附帶的 madLevelsTweaker.exe 工具來調整。
DVI、DisplayPort 默認應該就是全範圍,筆記本電腦的自帶屏幕一般也不需要專門設置。
是否應該開啟硬解(硬件解碼)?
近幾年的主流 PC 對最常見的視頻編碼(H.264 和 H.265)硬解的支持已經有了一些提高,但出現各種問題的幾率仍不算低。為了保證播放穩定可靠,我們一般建議只使用軟件解碼。如果你有其他需求,例如希望降低筆記本電腦功耗、提高電池續航,可以嘗試開啟硬解。
首先打開 K-Lite Codec Pack 的 Codec Tweak Tool,選擇 Configuration – DirectShow Filters – LAV Video Decoder (MPC-HC) 打開 LAV 解碼器設置界面,然後在右上角選擇“D3D11”:
如果在硬解開啟時播放遇到奇怪問題,應該首先嘗試禁用硬解來排查。
關於雙顯卡筆記本的設置
如果你使用的是集成顯卡 + NVIDIA 獨立顯卡的筆記本,默認設置下 MPC-HC 只會調用集成顯卡來進行渲染計算,性能有限。如果你發現播放時顯卡性能成為瓶頸,可以嘗試改用更高性能的獨立顯卡。
NVIDIA 控制面板屏蔽了 MPC-HC 默認的主程序文件名 mpc-hc64.exe,本來是無法直接設置使用獨立顯卡的。K-Lite Codec Pack 在安裝時如果檢測系統環境中有雙顯卡(NVIDIA Optimus)存在,會自動將 MPC-HC 主程序文件名改為 mpc-hc64_nvo.exe。如果你的 MPC-HC 主程序仍然是 mpc-hc64.exe,需要先改個名字,或者用 NVIDIA Profile Inspector 解鎖。詳情可以參考这里。
然後在 NVIDIA 控制面板 – 3D 設置 – 管理 3D 設置 – 程序設置下,添加 MPC-HC 主程序,將首選圖形處理器改為“高性能 NVIDIA 處理器”,並將電源管理模式改為“自適應”。
使用 ICC profile 為 madVR 生成 3DLUT 文件實現色彩管理
我們需要用到校色軟件 DisplayCAL 配套的一個小程序 3DLUT Maker。首先從 DisplayCAL 官网下載安裝(如果你還沒有的話),然後運行 3DLUT Maker,“Destination profile”選擇你顯示器的 ICC profile 文件,確保“Apply calibration (vcgt)”不勾選,文件格式當然是“madVR (.3dlut)”,其餘保持默認即可:
點擊右下角按鈕,選擇保存位置,完成後,把得到的 .3dlut 文件放在一個合適的位置,然後打開 madVR 設置,按下圖設置,確保“disable GPU gamma ramps”不勾選:
然後保存設置即可。
- VCB-Studio 視頻播放器推薦及教程索引 - 2023年5月8日
- 基於 MPC-HC 和 madVR 的播放器配置入門 - 2023年5月6日
- 跨平台播放器 mpv 配置入門 - 2023年2月15日
你好,我按教程設置好了,不知道什麼原因,用madVR時沒有字幕,換成MPC視頻渲染器就有字幕了。
感謝,步驟很詳細,配置好了!
大家播放視頻時GPU佔用多少啊,我的13500H核顯按中等設置接近80%了
視頻出字幕時整個畫面會微微泛白是什麼原因
回復給 1122txz: 找到原因了,HDR
非常棒,很感謝解決了新的OLED顯示器在WIN上看HDR視頻和其他視頻的色彩問題
我想問下,我是核顯筆記本,之前都好好的用了一年多了,今天開始突然播放視頻就花屏,用系統自帶的播放器就沒問題,這個是什麼原因,有大佬幫看看嗎?
回復給 yejl2017: 原來的視頻跟你現在的視頻格式一樣嗎,如果電腦性能較差,可以重新設置下
按教程里的設置了,播放視頻有時畫面卡住,聲音正常,關閉重新播放又正常了。有大佬知道是怎麼回事嗎
回復給 Lan1998: 可能渲染速度跟不上。如果硬件性能不是很高的話效果調低點試試
回復給 剁椒紅燒魚: 1050ti顯卡加6核12線程處理器性能應該是夠的,我關一下LAV Video Decoder裡面的D3D11試試
筆記本i913980HX+4070,MPC_HC 18.6.3,關閉硬件解碼,改了跑在獨顯上,masVR配置低中高都是試了個遍沒太大差別,播放3840×2160 @120fps視頻downscale到2560*1440時(外接屏幕),dropped frames和presentation glitchs一直會緩慢增加,偶發大掉幀導致畫面卡頓,平均rendering 大概3.5ms,有沒有大佬知道怎麼回事?
看樣子要拋棄 PotPlayer 了
請問ass字幕的字體包應該怎麼加載呢,直接丟壓縮包或者解壓之後放進視頻路徑都不行,用mpcbe就能正常加載
回復給 aa: 你可以用MKVToolNix的附件功能把字體直接打包在MKV文件里,那樣手機和電視也能正常加載字體。lolihouse好像還開發了一個工具,可以節省打包字體後的體積。不過我都是直接右鍵選擇把字體為全部用戶安裝,常用的字體不多,遇上一個裝一個,長時間下來也就幾G大小。
回復給 wbsLF: 好的,我也裝一下字體吧,謝謝謝謝
回復給 wbsLF: 豪德,就我一個純唐氏還在ffmpeg -attach "" -metadata:s:0 mimetype=application/x-truetype-font
難蚌
您好,不知道為什麼,我按照教程使用 K-Lite Codec Pack (MPC-HC + madVR)看低分辨率視頻,顯示效果仍然是模糊的低分辨率,和其他普通播放器播放沒有區別,請問如何可以讓低分辨率視頻變得銳利呢?謝謝