實現PC視頻播放最強畫質教程( Potplayer播放器+MADVR插件)
一、前言
這年頭一款趁手好用的播放器,功能強大的播放器是必需的,目前幾乎所有視頻播放器其實只有三種:MPC-HC、Mplayer、VLC player,其餘可以理解為各種殼各種定製版各種修改版。(potplayer的前身km是基於MPC),其中MPC-HC已經內置了LAV Filters,不過Potplayer可定製項更多,更有可玩性,因此選用Potplayer進行搭建目前公認最完美的高清方案顯然是Potplayer(主播放器)+LAV Filters(分離器)+madVR(渲染器)+xy-VSFilter(字幕濾鏡),當然這個所謂的最完美方案是嚴重高能耗的一個方案,就我個人而言一直覺得性質比不佳,但這基本上是你已經是能找到的最完美的高清方案了。
打開今日頭條,查看更多圖片不想怎麼折騰的朋友,直接使用播放器和默認設置就好了;要求再高一點的朋友,添加LAV Filters+madVR+xy-VSFilter進播放器,然後也不需要去配置參數,默認就好;發燒友們想自學高級播放器設置,網上教程總是不缺的,一搜一大堆,各大論壇什麼的置頂帖,萬年冷凍庫,等等,寫的比本文更新、更詳細、更高端的比比皆是,也都可以作為很不錯的教程。不過其中有些教程過於專業詳盡,又或者只是授人以鯉,或者授人以鯿、鰱、鱅……,導致很多人直接傻眼了。現在網上林林總總的教程,不會跟你說的很多細節與知識。有的人madVR設置玩出了花,結果不知道檢查pot內置的ffmpeg解碼器,會把YUV420 10bit 降低精度+瞎轉換 為YUV422 8bit丟給madVR,然後又說自己看不出區別……這折騰的意義何在呢。所以首先提出幾點建議:
1、實事求是。不要盲目的去折騰,也不要為了心理安慰去折騰。一套更好的方案,只有你確實感覺到了提升,並且這個提升在你心理滿意度上,足夠抵消麻煩,才值得你去升級。比較的過程中,相信自己的眼睛,而不是相信別人的說教。比如說我真不推薦筆記本用戶折騰任何頂級縮放演算法——那麼小個屏幕你能看出點啥?教程里說出花的放大演算法跟你有幾毛錢關係?
2、循序漸進。先把一套簡單基礎的方案弄好弄懂,再去學習和嘗試更好的方法。對於新的插件,你要嘗試測試它們在你機器上的表現;對於別人的設置,設法了解他這麼推薦的原因,以及這個原因是否適用於你。最典型的,很多人用著madVR問我,你在新教程里教我們LAV只勾選RGB,我要改么?看了這篇教程你應該知道要不要改與背後的原因了吧。
3、量力而行。播放器越高級,組件越多,往往性能消耗越大,出錯概率也越高,同時收益越少。學會放棄與妥協,畢竟,你看的是片子,不是播放器組件和參數。
二.為什麼我們要對播放器進行折騰?
我們先了解一般視頻在DirectShow架構的播放器播放時的運作過程,首先是讀取檔案的File source(讀取濾鏡),將其讀取的內容傳給Splitter(分離器),前面兩者又可合稱Source filters(源濾鏡)。然後Splitter會將其分離為視訊編碼跟音訊編碼,將視訊編碼傳給Video decoder(視訊解碼器)做解碼,將音訊編碼傳給Audio decoder(音訊解碼器)做解碼,然後解碼完的視訊內容傳給Video renderer(渲染器)渲染後交由顯卡輸出,解碼完的音訊內容則交給音訊裝置輸出(預設是DirectSound Device)。若是播放DVD,則源濾鏡會使用win內建的DVD Navigator,其他則大同小異。所以最簡單的方案就是選用演算法更好的分離器,解碼器和渲染器。(補充:部分視頻有字幕的話直接分給字幕渲染器)
以Potplayer為例,確實很優秀,但是其內置的設定還是有些雞肋,更何況現在高清視頻正在普及,所以進行一番調教是應該的,直接給出一些對比效果:
0.關於Potplayer皮膚
它的zune皮膚就秒掉一大批播放器,還可以打造高大上的無邊框視頻播放效果,小夥伴們看了都說酷炫~
播放中:簡潔大方進度條等自動隱藏,滑鼠放在那個位置才出現,滑鼠不動立馬淡化消失。
1.關於LAV Filters
LAV Filters,是一個包含分離器/視頻解碼器/音訊解碼器三者的外掛解碼方案,內容有LAV Splitter、LAV video decoder、LAV audio decoder三者,由DOOM9論壇上的nevcairiel所開發,格式支持高,完整支持各種10bit編碼,也支持DVD及BD的解碼,BUG少,功能強大但又實用而不花俏。LAV Filters分離器被稱為高速萬能分離器,所謂高速是指lav分離器的跳轉速度很快,普遍高於pot內置分離器,萬能指的是lav的分離器和音視頻濾鏡很全,幾乎可播放所有常見視頻。而且,LAV還支持開啟硬體加速(如果使用madVR的話建議不要開啟),至於為啥看看下面的問題就知道了。
2.關於madVR
視頻的播放,解碼吃的是CPU效能(硬解例外,硬解是使用顯卡上的解碼模組,既不吃CPU也不吃GPU效能),而渲染才是吃顯卡GPU效能,額外的像去交錯的部分也是吃顯卡效能,整體而言還是CPU最重要,只有使用madVR時例外,GPU的部分也很重要。而madVR鼎鼎大名,地面最強的渲染器,又稱顯卡殺手,不惜一切效能代價以換取最大的畫質表現,也因此這個渲染器對顯卡的要求稍微吃重些,超越了我們一般對播放軟體之硬體要求的常識(這個常識是指,只有玩遊戲才需要用到較高階的顯卡,影像播放只需要低階顯卡甚至核顯已可勝任),但並不是說只有好的顯卡才能用這個渲染器,事實上madVR內部的選項相當彈性,根據設置的不同它可以讓低階卡跟內顯順順跑,也可以把目前最高端的顯卡跑爆,一般來說,我建議在能力許可的範圍內選擇一張不算太差的獨立顯卡才能發揮它該有的戰力。目前甚至可以在普通顯示器上模擬HDR,看下效果
左為MADVR渲染,右為播放器默認渲染,左邊鋸齒大大降低
右為MADVR渲染,色彩、細節皆要強於普通渲染
有HDR
無HDR
3.關於xysubfilter
xy-vsfilter和xysubfilter都是第三方播放器濾鏡,都支持mpc系列播放器也支持potplayer,xy-vsfilter是修改原本播放器的vsfilter而生成的,目的為了減輕顯示多特效字幕的CPU負荷;xysubfilter則是重新編寫的字幕渲染器,比xy-vsfilter新和更好的字幕渲染效果,也支援更多像素格式及對硬體加速的支援也提升。xysubfilter額外支持的部分:支持更多像素格式輸入/輸出、高解析度的字幕渲染、支持PGS/HDMV格式字幕。
但使用xy-vsfilter/xysubfilter後便正常呈現出效果,上方日文字幕出現應有的字體消失後的字幕特效。
4.關於Advanced codecs
由 Shark007 出品的萬能視頻解碼器分為 ADVANCED Codecs 和 STANDARD Codecs 兩個版本,它們能讓 Windows 系統自帶的 WMP 影音播放器功能得到全方位的加強,而且完全免費!它的前身是 Win8 Codecs,現在已經改名並完美支持 Win10/8/7 系統了,當然它也被叫做 Win10 Codecs。
之所以安裝這款解碼包是因為在使用Potplayer過程中播放部分mov文件遇到了只有圖像沒有聲音的問題,安裝之後完美解決,這款直接默認安裝就好了。
三、懶人必備:載入皮膚和濾鏡
1.皮膚及設置
把下載好的皮膚拖入skins文件夾,打開播放器,F5打開參數選項,點選新皮膚,根據自己的設備決定是否啟用觸控皮膚,建議勾選視頻下自動隱藏。
然後修改皮膚輸出方式,現在整個界面已經十分清爽乾淨了。如果你決定使用madVR的話,這裡皮膚輸出方式應該選擇使用圖層式皮膚輸出。
然後我們再修改幾個設置讓播放器更好用,不是必須的,主要是我的使用習慣,除了我強調的,其他的都可以自行設置。
注意:務必勾選保存設置到INI文件,否則每次重裝系統或者到其他電腦就得重新配置。
說明:播放窗口尺寸設置為自定義可以有效避免因為視頻源解析度導致畫面忽大忽小的問題,避免手動拖拉調整的麻煩,由於我是高分屏,所以設置為1366768,普通用戶推薦1024576,因為這是網上流行的1080P和720P視頻的比例。
說明:勾選以避免放大調整播放器時產生黑邊。
說明:個人並不喜歡ass字幕特效,不如簡單樸素點好。
這點開始就設置好,因為我們不會使用其內置濾鏡,雖然到這裡就Potplayer已經是一款很簡潔美觀的綠色播放器了。
2.載入LAV Filters
接下來依然F5進入選項設置-源濾鏡/分離器-「濾鏡/解碼器管理」
由於我選擇不安裝進系統,所以在這裡,我選擇「添加外部濾鏡」
瀏覽到剛才LAVFilters解壓的文件夾,分別添加圖示項。
添加後回到管理界面設置,點擊左邊的」LAV AudioDecoder」,將右邊」音頻解碼器」里能鉤的全勾上。點擊」LAV Splitter Source」,將」源濾鏡/分離器」里的除了H264之外的全勾上。點擊」LAV Video Decoder」,將」視頻解碼器」里的全勾上,最後點擊確定。
注意:所謂LAV Splitter Source的其實就是LAV Splitter + File Source。直接使用LAV Splitter可能會出現不協調的問題,而且MS的File Source是存在bug的,特別是xp系統。所以與其讓potplayer調用MS的File Source,不如直接全部交給LAV來處理,所以個人推薦你直接選擇LAV Splitter Source而不是LAV Splitter。
然後在全局濾鏡優先權新增lav video decoder,再設定優先順序為強制使用。
然後需要我們手動修改啟用LAV,以上便是pot中調用lav filter的方法
3.載入madVR
添加madVR渲染器,這一點與添加LAV方式一致,添加外部濾鏡,點選madVR.ax即可,需要注意的是,瀏覽器的皮膚在madVR下不可用。
我們也可以在全局濾鏡中勾選強制使用,這樣我們馬上可以看到效果。
madVR的初始預設值是重視效能取向和穩定性的,也就是讓大部分的顯卡都可以正常運作為前提的設置,懶的研究設置的朋友用預設值也可以順順使用madVR,但如果想要進一步發揮madVR強大的功能,我們就再繼續看四,如果你設置混亂了,可以恢復初始設置繼續研究。
4.載入xysubFilter
操作依然一樣,直接看圖即可,我們我們可以先勾選強制使用看看效果,右下角會出現一個向右上方的箭頭,右鍵這個箭頭可以選擇字幕,播放器里已經無法選擇字幕了。
那麼到此我們的濾鏡就已經載入完畢了,那怎麼看是否載入成功呢?這裡有三種方法:
我們可以打開一個視頻,右鍵選擇濾鏡,看看是否都成功載入,如果沒有問題說明已經成功了。
我們還可以按下Tab鍵,查看相應的解碼器渲染器信息是否正確,如圖說明LAV解碼器,madVR都載入成功,幀率穩定在60,可以暢享60fps的大片了。
我們還可以按下Ctrl+J,這會顯示madVR的實時渲染信息,可以藉此修正madVR的設置,發揮顯卡更大潛能,要掌握這個,這是我們以後進一步調教madVR的關鍵。
5.提高音質
首先查看自己電腦的音質輸出
然後在Potplayer中進行相關設置,選擇內置WASAPI音頻渲染器,高品質,關閉開啟規格化(會調節音量,但會損失細節,更具自己需要看看吧)
6.獨顯筆記本要為Potpayer選擇獨顯,這裡以N卡為例
四、設置LAV
1.分離器部分
上方的Audio(音頻)及Subtitles(字幕),可以設定優先的軌道,可以依自行需求設定,
(不過這部分我比習慣使用MPC-BE內的切換)
在Subtitle Selection Mode內以下幾種選項可選:
- No Subtitles:不載入任何字幕
- Only Forced Subtitles:只選擇有強制軌(forced track)的字幕
- Default:選擇有強制軌(forced track)或預設軌(default track)的字幕
- Advanced:選擇在Subtitles的欄位中填入選擇邏輯
在Demuxer Settings(分路器設定)內,
Prefer Audio Stream with the Highest Quality (偏好最高音質音軌)
此項可以視情況勾選,
勾選後LAV會傾向選擇最高音質的音軌,
但少數影片最高音質的音軌不一定是對的/最好的。
左下角的Enble System Tray Icon勾選後,
在啟用LAV分離器時,會在右下角工作列的通知區域內顯示圖示。(依需求選擇是否勾選)
2.音頻解碼器
右方的Output Formats(輸出格式)中,可以自由選擇輸出格式,不過這邊建議預設即可。
左下角的Enble System Tray Icon勾選後,在啟用LAV音訊解碼器時,會在右下角工作列的通知區域內顯示圖示。(依需求選擇勾選)
Enable Mixing(開啟混音)勾選後,便可以將 多聲道音軌 混和成 較少聲道數 輸出,輸出聲道可以在Output Speaker Configuration(輸出揚聲器設置)中設置,依照聲道數設定。
Mono:單聲道
Stereo:立體聲/雙聲道
4.0:4.0聲道
5.1:5.1聲道
6.1:6.1聲道
7.1:7.1聲道
右方Setting(設定)選項中,Clipping Protection(音量保護),可以使揚聲器在大動態音頻輸出時,降低破音機率。(如果對揚聲器有信心,不建議勾選此項,因為可能會損失音質)
3.視頻解碼器
左上角Settings(設定)選項中,Threads for Multi-Threading(設定多執行續的執行數),基本上設定成Auto(自動)即可。
Setting for Interlaced Video Streams(設定隔行掃描影片):
Field Order(場序規則),在處理格行掃描影片時需要先進行去交錯,而反交錯時分成 奇數場 優先或是 偶數場 優先,可依需求設定,或是設定成Auto讓LAV自動判斷。
Deinterlacing Mode(去交錯模式),有幾種選項,
Auto:自動。
Agressive:當影片中發現有格行掃描的畫面時,則全部進行去交錯處理。
Force:強制進行去交錯處理。
Disabled:關閉去交錯處理。
右上角的Hardware Acceleration(硬體加速/硬解),Hardware Device to use(使用硬體裝置),簡單來說就是選擇要用何者來進行硬體解碼,有以下幾種選項,
NVIDIA CUVID:Nvidia專用硬體解碼介面,可以開啟硬體去交錯處理。
Intel QuickSync:Intel內顯專用硬體解碼介面,CPU使用率比其餘硬解模式稍高5~10%左右,可以開啟硬體去交錯處理。
DXVA2 (copy-back):為微軟開發的硬體加速介面,ANI顯示卡均可使用,會將解碼完成的資訊回傳給記憶體,由於多個回傳動作,故效能會比native略差,不過優勢為可以在解碼器與渲染器中間添加濾鏡。
DXVA2 (native):為微軟開發的硬體加速介面,ANI顯示卡均可使用,會將解碼完成的資訊將不會傳給記憶體,直接渲染,故效能比copy-back佳,缺點為限制較多。
如果要開硬解,會建議 DXVA2 (native) > DXVA2 (copy-back) > NVIDIA CUVID 或 Intel QuickSync(原版則建議使用DXVA2 (copy-back))
右下方的Hardware/GPU Deinterlacing (CUVID/QS only),
即為硬體去交錯處理設定,限定在NVIDIA CUVID或Intel QuickSync硬解模式下啟用。
Software Deinterlacing(軟體去交錯)
若要啟用軟體去交錯,可以選擇YADIF,此處的去交錯與madVR內的去交錯,則一使用即可
左下角的Output Formats(輸出格式),可以設定不同色深下的影片輸出那些格式,如果沒有要使用madVR渲染器及後處理濾鏡(post-processing filters),建議讓LAV的高精度抖動輸出RGB模式(如下圖)
五、設置madVR
madVR的設置是十分值得研究的,這裡也不再詳細說明,只把最常用的指出來,如果有興趣各位自行去查詢。我們播放視頻時,雙擊任務欄右下方的 MADVR 控制面板,進入設置菜單。(沒有的話運行 MADVR 文件夾里的 madHcCtrl.exe),或是在外掛濾鏡里加入madVR並點兩下都可以打開設定頁。
1.device菜單
<顯示設備名稱>
第一個就是你的顯示設備的名稱,各人的顯示設備不同,所以名稱也會不一樣。在這裡可以選擇你輸出設備的制式,因為不同的設備,他的某些指標不一樣,所以要認真對待。設置顯示器的類型,一般選擇「Digital Monitor」
打開設備下的「properties」選項如果使用顯示器,這裡一定要認真對待。如果你用電腦顯示器看影片,就要選擇PC levels(0-255),如果你是接液晶電視,或者投影儀,可能需要選擇TV levels(16-235)。因為一般電視顯示的灰階不是0-255,如果你用0-255去輸出,那麼16以下,235以上的灰階都丟失了,暗部細節漆黑一片,影片整個發灰。
針對電腦連接TV或投影,我詳細說一下。這裡有些複雜,首先,你用的是什麼線進行連接。如果你的顯卡有HDMI介面,那麼HDMI直連顯示設備,選擇16-235。如果你的顯卡沒有HDMI介面,用DVI轉接HDMI。這裡還是選擇16-235.
如果你的顯示設備有DVI介面。DVI直連,並且你的顯示設備也支持的話,可以選擇0-255.而位深則選擇8 bit(or higher).8 bit或者更高。8 bit對應256色階。通用。當然你硬體設施夠好,達到10bit ,這個選項也完美對應。
<顯示設備標示(identification)>:
信息標示頁面。在這個頁面里,會標出你的顯示設備的型號啊,出廠日期什麼的。
<性能(properties)>:
這裡一定要認真對待。如果你用電腦顯示器看影片,就要選擇PC levels(0-255)。如果你是接液晶電視,或者投影儀,可能需要選擇TV levels(16-235)。因為一般電視顯示的灰階不是0-255,如果你用0-255去輸出,那麼16以下,235以上的灰階都丟失了,暗部細節漆黑一片,影片整個發灰。針對電腦連接TV或投影,我詳細說一下。這裡有些複雜,首先,你用的是什麼線進行連接。如果你的顯卡有HDMI介面,那麼HDMI直連顯示設備,選擇16-235。如果你的顯卡沒有HDMI介面,用DVI轉接HDMI。這裡還是選擇16-235.如果你的顯示設備有DVI介面。DVI直連,並且你的顯示設備也支持的話,可以選擇0-255.而位深則選擇8 bit(or higher).8 bit或者更高。8 bit對應256色階。通用。當然你硬體設施夠好,達到10bit ,這個選項也完美對應。
<校準(calibration)>:
這裡的校準,指顏色校準。使用yCMS和3DLUT進行校準。這裡我覺得沒什麼好講的,因為顯示器存在差異,因此你必須按照你自己的顯示器來進行顏色校準設置。但是這需要校準設備。這個東西一般只有顯示設備評測機構有,我們自己恐怕沒辦法去搞這種校準。所以這裡就不要去開啟它了。而下面的選項,我在圖片里也有詳細說明。在此不再複述。選擇BT.709而伽馬部分,如果你是N卡,就選擇pure power curve。後面的2.20最好不要動。那個數值是標準。不過你也可以嘗試改改看~
<解析度(display modes)>:
這裡的選項多半是為接其他顯示設備用的,一般用不到。留空就可以了。
<色彩與伽馬(color & gamma)>:
啟用伽馬處理,一般選擇啟用。然後交由你選擇的伽馬處理標準去處理灰階。N卡選擇pure power curve後面的2.20不要動,這個是標準數值。
<hdr>:
在hdr項目中,選擇convert HDR content to SDR by using pixel shader math,假如你有某些螢幕校色裝置可以選擇包括3DLUT的項目,不過我沒有此類設備所以不知如何設定。設置好了之後可以去觀看HDR影片,如果想肯定HDR功能是否正常運作,可以在播放時按下Ctrl+J開啟OSD訊息表,觀察紅框內matrix的色域是否BT.2020,而且下方有無出現HDR項目。
在正常運作下即使模擬HDR功能的效果亦相當出眾,光暗和色彩效果都只能用驚艷形容,比較下會感覺非HDR版的色彩變得非常暗啞,但少年pi這套電影在當時畫面呈現的效果已經算是相當出色,但在HDR的效果更上一層樓。參見開始展示的對比圖。
2.processing菜單
deinterlacing 選項,對應的是圖像交錯處理。建議在最上面的選項打勾,讓視頻需要進行圖像交錯的時候交給 MADVR 自己去處理,並且在懷疑時不啟動交錯處理。如果常看動漫的,可以去掉「only look at pixels in the frame center」勾選。
arifact removal 選項,對應的是圖像去色階功能。在普通的視頻中,我們經常會看到人物的臉上,或者不同顏色的交界處有淡淡的光暈和條紋,這就是沒有去掉色階。而我們的目的就是讓圖像的顏色過渡更加自然,讓條紋現象減少甚至消失。(這個選項會佔用一些 GPU 資源,但尚可接受,開啟無壓力。)第一個選項是整體畫面的去色階效果。一般選擇 low 就會有不錯的效果。第二個選項是不同顏色交界處去色階效果。可以選擇 high。
3.scaling algorithms菜單
這個是最關鍵的圖像縮放演算法的設置,這部分是影響效能最大也是影響畫質表現最明顯的地方,也是 madVR 的最大特色。裡面5個頁面的內容基本類似。讓用戶選擇的東西都是各種圖像縮放模式,而不同的模式所消耗的性能也是不同的,基本上從上到下,性能消耗是越來越大,用戶要根據自己的配置來考慮。每個頁面的設置主要都是為了解決視頻圖像中的鋸齒(aliasing)和振鈴效應(ringing)。根據選擇的不同,右上角會有效果介紹。綠條一般越長也越好。紅條則是越低越好。
說明在演算法的最下面還有兩個選項:①active anti-ringing filter(簡稱ar)可以開啟抗光環處理,也容易在downscale時候增加鋸齒。②scale in linear light可以增加image downscale轉換之後,顏色對比度的精確性。建議在image downscale中開啟。
chroma upscaling:色度拉升,即色度平面放大。不過色度拉伸的演算法比較難感受到差別。如果配置好的話就設置是 NNEDI3 或 NGU(chroma upscaling 這裡開到 NNEDI3以上幾乎沒什麼意義,肉眼分辨不出)如果顯卡中等的話,可以設置 Jinc + AR如果顯卡不太好的話,則可設置 Bicubic 75 + AR如果是 Intel 集顯得話,則可設置 SoftCubic 60 + AR
image downscaling:影像縮放只要輸出解析度小於原始解析度就會用到這部分的演算法,比如 4K 解析度的視頻在 1080P 顯示器上播放。公認的最佳演演算法組合(resize 後最接近原本的畫面),使用 Catmull-Rom,並勾選「activate anti-ringing filter」(簡稱 AR)跟」scale in linear light」(簡稱 SC)。
image upscaling:影像拉伸,也就是影像放大,只要輸出目標解析度大於原始解析度就會用到這部分的演算法,比如 1080P 解析度的視頻在 4K 顯示器上播放。推薦用下圖的設置(Jinc+AR)。顯卡吃不消的可以考慮:Lanczos 4+AR(HD4600 等級集顯)甚至是 Bicubic 60+AR(HD4000 等級集顯)
upscaling refinement:銳化演算法,目的是在於改善放大運算後造成的模糊,只在視視頻大後使用,如果是1:1無放大的影像,這部分勾選了也不會有作用。。
4.rendering菜單
說明madvr 默認就是用全屏獨佔模式(exclusive)。雖然這種模式有它的好處,但如果電腦配置不夠就會出現上間歇性黑屏,去掉「enable automatic fullscreen exclusive mode」的勾選即可。
六後記:效果展示
鑒於madVR是壓榨顯卡性能,所以顯卡佔用如果沒到80%以上說明還沒有達到最佳設置,另一個標準就是你的風扇有沒有嘩嘩響。
全高清
全高清下的大腿時代,播放4K視頻沒壓力
4K屏顯卡已經吃不消了
4K下的大腿時代,果然是顯卡殺手,持續掉幀,開啟LAV硬解還是跑不到60fps,筆記本1050顯卡確實太弱了,估計得得1070才能流暢流暢解析吧。