之前的 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)
  • LL =“scale in linear light”
  • SL =“scale in sigmoidal light”
  • AR =“activate anti-ringing filter”
  • NGU Sharp 除了選擇“luma doubling”質量以外,其餘全部保留默認的“let madVR decide”即可
  • 需要指出的是,這裡對性能要求的高低並不絕對等同於畫質的高低,“低”檔設置的質量其實已經相當好了,而“高”檔設置在一些低質量片源上反而有可能放大片源瑕疵。綜合來說我們最推薦“中”檔設置,是在畫質、功耗和泛用性之間較為平衡的選擇。

    以“中”檔為例,設置完成後應該是如下圖的狀態:

    在完成本文的配置後,你可以打開一個碼率較高的視頻,按下 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”不勾選:

    然後保存設置即可。

    在 Windows 系統中啟用長路徑功能

    從本月起我們的成品可能不再遵從較為嚴格的路徑長度限制。這篇文章將簡單介紹如何在 Windows 系統中啟用長路徑功能。 Windows 系統中較為保守的最大路徑...

    阅读全文

    VCB-Studio 視頻播放器推薦及教程索引

    (Image Credit: しおん@pixiv) 目前我們推薦的播放器可以分成兩大陣營:mpv 和 MPC。前者跨平台,後者僅限 Windows。 mpv mpv 可以在 Windows、macOS 和桌面...

    阅读全文

    跨平台播放器 mpv 配置入門

    mpv 是著名開源項目 MPlayer 的分支,因其對最新軟硬件平台、視頻標準以及各種高畫質選項的支持而廣受好評,也是目前非 Windows 平台上高畫質播放器的不二選...

    阅读全文

    228 条评论

    1. “按下 Ctrl + j 觀察顯示的 dropped frames、delayed frames 和 presentation glitches 這幾項計數,如果播放一段時間後這幾個數字都保持穩定沒有增加,則基本可以確定視頻播放沒有什麼問題了”
      我是台式機,沒集顯,只有nvidia獨顯,雙屏。用1080P@60hz顯示器這3個參數很穩定;用2K@144hz顯示器,presentation glitches數值就一直增加,每次增加八九十吧,這樣正常么?

        1. 回復給Yune Neko: 請問該如何調整呢,我是3080筆記本禁用了核顯,也是presentation glitches和dropped frames也會增加,把madvr的縮放算法改成了低還是會增加

      1. 回復給小雞配齊: 請問你是如何調整的呢,我是3080筆記本禁用了核顯,也是presentation glitches會增加到七八十左右,dropped frames也會緩慢增加

        1. 回復給信: 我也不會 😯 。。。反正肉眼凡胎,看視頻倒是沒覺得目測沒啥影響。。。頭一回鼓搗madVR,不敢瞎改配置。。

    2. 感謝更新,之前的PotPlayer教程會在播放時產生撕裂,但開啟反撕裂又會黑屏,時隔幾年又有新教程了,真的很感謝!

    3. 請問mpchc的播放列表除了手動另存為和看歷史記錄以外,沒法自動保存嗎?看番看到一半關了或者去看別的視頻的話,播放列表就沒有原記錄了。

          1. 回復給月映紙: 那你就把文件加進播放列表(“打開文件”時勾選“添加到播放列表但不要打開”)而不是用“快速打開文件”(這就是替換播放列表)。

            或者更簡單的辦法直接拖到列表上不就完了(“查看——播放列表”把文件拖到列表上)。

      1. 回復給月映紙: 不怕麻煩的話,可以用emby/jellyfin這類媒體庫工具將動畫入庫,可以分集記錄播放歷史。電腦端可以考慮用embyToLocalPlayer這個項目(github,配合對應的瀏覽器插件)來關聯自己習慣的第三方播放器(個人環境下調用mpc-be是可以成功記錄播放歷史的,不轉碼需要自己填寫下配置文件)。移動端配合kodi等播放器可以實現多端播放記錄同步。

      1. 需要。

        “加載校色文件”只是載入了 VCGT 而已,再配合 madVR 的 3DLUT 才是完整的色彩管理。

        參考:https://bbs.acgrip.com/forum.php?mod=redirect&goto=findpost&ptid=10175&pid=96208&fromuid=2220

    4. 關於分離器,我發現有兩個,一個splitter,一個splilter source,兩者有大的區別嗎。
      我在使用source時,播放emby的HLS流式傳輸時,會發生卡頓或者不能正常渲染,或者切換軌道閃退之類的。

    5. 一個問題,我使用mpc-be搭配madvr,兩者都是最新版本。顯示器是8抖10bit,在顯卡輸出和系統設置里都是被識別成10bit,但在madvr的設置里,我看到是只能被識別成8bit,這個有什麼說法或者解決辦法嗎?

    6. 關於雙顯卡筆記本這個,我最近又看到一個解決方法,使用windows 11 系統的話,在系統設置里找到:

      **設置–屏幕–顯示卡–MPC-HC軟件–高性能**

      不知是否具有普適性

      1. Windows 10 1803 或更新都可以這樣,而且這個據說是可以 override NVIDIA 控制面板設置的。

        但是我不確定只這樣設置能否發揮獨顯最大性能(對應 NVIDIA 控制面板里的“電源管理模式”,默認是“節能”,需要改為“自適應”或更高),我手邊不方便測試,而且 K-Lite 已經會自動給 MPC-HC64.exe 改名了,就還是只寫了老辦法。

        1. 回復給boday: 只在Windows圖形設置里改使用的GPU會降頻,還是得在驅動改電源管理。不過圖形設置適應性更廣,某些程序比如OBS在顯卡驅動里改無效,而Windows圖形設置就可以。

    7. 關於CrystalDiskInfo跟XySubFilter共存的問題
      安裝XySubFilter後,只要CrystalDiskInfo發出警報聲音就會閃退

      之前打不開的原因就是因為我有一塊硬盤已經超過警報溫度了,嘗試發出聲音就直接閃退了
      過一天發現可以打開CrystalDiskInfo了是因為硬盤溫度還沒起來.
      現在仍然只要發出聲音就會閃退

      但奇怪的是,俺在新的win11虛擬機內測試,並沒有出現閃退問題
      看來是解決不了了,只能把警報聲音關掉了

      1. 回復給 Yune Neko: 我也遇到了這個問題,點擊CrystalDiskInfo的小人就會crash,拉了源碼下來debug斷點發現CrystalDiskInfo使用了MCI的接口並指定了lpstrDeviceType=MPEGVideo的方式來播放wav音頻,進而會調用到mciqtz32.dll里的方法(在HKLM\Software\Microsoft\Windows NT\CurrentVersion\MCI32里指定),mciqtz32.dll似乎又會去使用系統上安裝的DirectShow濾鏡,然後可能是某一步的兼容性出了問題就導致了崩潰。

        目前的一種解決方法是自己改CrystalDiskInfo的源碼然後編譯,把lpstrDeviceType=_T("MPEGVideo")改成lpstrDeviceType = _T("WaveAudio")。不知道濾鏡這塊有沒有什麼方法能解決問題

    8. 如果打開特別大的文件(4k8k),視頻卡卡的,presentation glitches就不增加,dropped frames增加,這應該是正常的。但是放一般碼率的片子,presentation glitches 一直緩慢增加,是madvr設置問題嗎?應該怎麼解決

        1. 回復給孤雨獨火: 我的電腦系統win11,中日雙語字幕的mkv格式視頻不顯示內嵌字幕,怎麼做才能讓mpc-hc自動載入外掛字幕?

            1. 回復給孤雨獨火: 視頻文件和字幕文件已經放同一個文件夾同名了,還是不能自動載入外掛字幕,請問可以怎麼解決?

        2. 回復給孤雨獨火: win10今天剛安裝mpchc,魔法使的新娘 10-bit 1080p HEVC BDRip [TV + OADs Fin]的字幕無法加載,顯示沒有字幕軌,其他我的電影視頻啥的的mkv.mp4格式字幕都可以正常顯示,感覺跟咱們的字幕或者解碼格式有衝突

        3. 回復給孤雨獨火: 不管使用libass,內部渲染器;以及更改madVR還是MPC視頻渲染器,舊視頻渲染器,內嵌字幕都無法顯示

      1. 回復給Yune Neko: 解決了
        不僅要在字幕的字母渲染器里選中XySubFilter,還要在”擴展濾鏡”裡面添加XySubFilter和XySubFilterAutoLoader

    欢迎留言

    此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据