有問有答:如何正確播放HDR視頻

小編髮現在昨天的 《超能課堂(206):HDR標準眼花繚亂,什麼是真HDR顯示器?》 一文的評論中有不少讀者朋友在詢問該如何播放HDR視頻,今天就簡單寫一個教程介紹一下如何正確播放HDR內容。

準備工作

為了實現完整的HDR工作鏈,我們需要從解碼到最終輸出的全套播放工具都支持HDR。可能有的人會説Windows 10自帶的視頻播放器就支持HDR視頻的播放,為什麼不直接用呢?説到底還是因為Microsoft Store難用,因為現在使用Windows 10自帶的視頻播放器對HEVC編碼進行解碼,就必須在商店中購買HEVC解碼器擴展,雖然説它只有7塊錢,但是考慮到很多人並沒有使用Microsoft賬户,仍然是以本地賬户形式使用Windows 10的,所以購買非常不方便(因為HEVC不是免費格式)。因此,我們需要一些別的路子,一些免費並且沒有版權問題的路子。

image-20191108165922347

首先我們需要一個支持HDR內容解碼的視頻解碼器,這裏推薦使用 LAV Filter ,這款解碼器可以説是目前最強大的解碼器之一,包含分離器+視頻解碼器+音頻解碼器,另外它還是開源免費的。按照播放視頻的下一步,我們需要一個支持HDR內容的渲染器,這裏我們使用目前地表最強的視頻渲染器—— madVR ,它支持將HDR信息直接傳輸給顯示器。最後我們需要一個播放器,作為外殼調用前面的這些東西,這裏推薦使用 MPC-BE ,當然很多人用的 PotPlayer 也可以,不過要比MPC-BE稍微多做一點工作。

準備好了軟件之後還要對硬件支持進行檢查,顯卡必須要支持HDR內容輸出,顯示器必須要支持HDR內容輸入,兩者之間的傳輸通道也要支持HDR的內容。更為具體一點的細節是,HDMI 2.0a標準只支持HDR10標準的內容傳輸,而HDMI 2.0b中增加了對於HLG標準的支持。而在DP那邊,1.4版本中增加了對於HDR10的支持,也就是説,我們至少需要支持DP 1.4和HDMI 2.0b接口的顯卡來輸出HDR內容,顯示器也需要具備這兩個接口。

當然,最終也是最重要的,就是你需要一個支持HDR的顯示器。

設置

準備工作完成之後我們還要對以上的工具進行一定的設置才能正確使用它們,最主要的設置集中在播放器部分,所以我們分成三塊,根據你的需求自行選用MPC-BE還是PotPlayer。

安裝濾鏡

首先是要將下載到的兩套濾鏡安裝到系統中,簡單地將下載到的壓縮包解壓縮之後右擊裏面的install.bat選擇以管理員身份運行進行安裝即可。

當看到來自RegSvr32的消息框提示你成功的時候,就是濾鏡已經在系統中註冊成功了,可以讓播放器調用了。

MPC-BE

然後對於MPC-BE進行設置,右擊MPC-BE的界面打開設置,首先在左邊欄裏面找到擴展濾鏡菜單,點擊右邊的添加濾鏡。

在彈出的窗口中選擇LAV Audio Decoder(音頻解碼器)、LAV Splitter Source(分離器)和LAV Video Decoder三個濾鏡,點擊確定添加到擴展濾鏡列表中。

然後在擴展濾鏡列表中將三款濾鏡全部設置為首選,讓播放器默認使用LAV Filters進行分離、解碼。

最後一步是在左邊欄中選擇視頻,在右邊的視頻渲染器列表中選擇madVR。

至此,MPC-BE已經可以對HDR視頻進行完美解碼輸出。

PotPlayer

下載安裝打開PotPlayer之後,右擊主界面打開設置窗口,在左邊欄中找到濾鏡,點擊其下的源濾鏡/分離器子頁面,在右側點擊濾鏡/解碼器管理按鈕,打開外部濾鏡管理窗口。

點擊添加系統濾鏡按鈕,在彈出窗口中選擇LAV Audio Decoder(音頻解碼器)、LAV Splitter Source(分離器)和LAV Video Decoder三個濾鏡(可按住Ctrl進行多選)。

添加完LAV Filters之後點擊確定完成濾鏡添加,隨後回到剛才的源濾鏡/分離器子頁面中,將所有格式的分離器更改為LAV Splitter Source,如果沒有則保持原有的配置。

同理,在視頻解碼器和音頻解碼器中也如此設置,將主要使用的解碼器都修改成LAV Filters。

最後,在左邊欄中找到視頻選項,將視頻渲染器由原本的自動修改為Madshi視頻渲染,也就是madVR。

在如此修改完之後點擊應用,關閉設置界面,此時PotPlayer已經可以實現對HDR內容的完美呈現。

硬件解碼指北

如果你的CPU性能沒有強悍到能夠軟解HEVC 10bit 4K視頻的話,那就要請出你的顯卡來幫忙了,不過要注意自己顯卡是否支持對HEVC 10bit 4K視頻進行硬件解碼。

我們首先要調出LAV Video Decoder的設置菜單。使用MPC-BE的用户可以在設置的擴展列表裏雙擊LAV Video Decoder打開菜單。

而Potplayer則是在設置-濾鏡-視頻解碼器中,找到設置為LAV Video Decoder右側的小按鈕來開啟設置界面。

打開設置界面之後,在右邊的"Hardware Decoder to use"下拉菜單中選擇DXVA2 (native)即可開啟硬件解碼。

無論是A卡N卡還是I卡用户,只要是在Windows 10下面,直接選擇DXVA2的任意一種方式即可啟用硬件解碼。當然,你也可以選擇根據硬件來的NVIDIA CUVID或者是Intel的QuickSync,實質上只是調用的接口不同,DXVA2走的是Windows的接口,而選到廠商則是會直接調用顯卡驅動的接口,但是最終的處理單元都是一樣的——顯卡的視頻處理單元,其他部分的不用做更改。

檢查效果

設置完成之後就可以輕鬆愉快的享受HDR視頻了,而且採用madVR的好處就是不用在Windows的顯示設置中開啟HDR,madVR在檢測到顯示器支持HDR、視頻源中包含HDR內容時會自動讓顯示器切換到HDR模式下,不過如果沒有自動切換,就需要你手動將開關打開了。另外,沒有HDR顯示器的用户也可以享受到HDR視頻精準轉換至SDR色彩帶來的提升,這是madVR視頻渲染器獨一份的高精度轉換,不過對於性能會有一些要求。

mpc-be

即使是截圖也看不出實際的效果,不過PotPlayer的OSD信息反映出來當前的設置是正確的,你可以看到在SDR下面截取HDR內容會帶上一層灰濛濛的效果。為了反映出區別,我使用了相機屏攝。

wrong_hdr

right_hdr

right_hdr_2

可以看到非常明顯的畫面色彩對比,HDR內容在不正確播放的情況下顯示出的是灰濛濛的畫面,而正確輸出之後,顏色非常亮麗。

希望本次教程可以幫助到一些讀者朋友,我以後可能還會寫個VapourSynth啊x265啊什麼的壓制教程。

另外,雖然現在新版的PotPlayer已經支持將HDR信息直接傳輸到顯示器,但在這篇教程中我仍然提倡大家使用LAV Filters和madVR,因為這兩個濾鏡擁有更高的處理精度。PotPlayer經常被壓制圈詬病的一點就是其內建的解碼器和大部分情況下自動使用的EVRCP渲染器的內部處理精度不夠,尤其是在HDR這種片源為原生10bit的情況下,更是不夠用了。

Potplayer 是高清影視常用的播放器,界面簡潔,功能齊全,比 MPC-HC 和 MPC-BE 更人性化;但其默認方案十分糟糕,預設過多錯誤,無法正確播放 10-bit 視頻,一直飽受詬病。

這是著名壓制組VCB-S在他們的PotPlayer+madVR 播放教程 開頭寫的原話,所以並非我的空穴來風,有興趣的朋友可以前往那篇教程中參考一二,感謝VCB-S的諸位前輩在視頻播放、壓制方面的研究,本人從你們的各種教程中受益匪淺,更不用説那些付出不知道多少時間成本的成品資源。