Windows上播放器的硬體解碼設定 Lavfilter/VLC, D3D11/DXVA, hardware decoder

參考資料
http://lysandria1985.blogspot.com/2013/01/2-lav-filters.html

硬體解碼的效能一般會比較好,因為有特製化解碼用晶片
品質和軟解沒有差別,除非你有使用後續處理 (post processing)
缺點是根據硬體解碼的能力會有差別,不是所有影片都能解
顯卡太老舊的情況下,用CPU軟解會比較好
h264都只支援8bit,nvidia10系列後才有其他格式(比h264新的格式)非8bit的支援

https://www.tomshardware.com/reviews/video-transcoding-amd-app-nvidia-cuda-intel-quicksync,2839-5.html
tomshardware的說法: 只有顏色上有差異,肉眼很難分辨出來 (2011年資料)
現在技術改進應該差異更小

Nvidia的硬解能力 (看下面的NVDEC Support Matrix)

或是用DXVAChecker檢查 (各廠牌顯卡通用,只檢查DX硬體加速)

Lav filter內可選用
顯卡特有解碼 (不用GPU運算)
  • Nvidia Cuvid
  • IntelⓇ QuickSync
  • AMD? 不熟,沒看到選項
顯卡通用的硬體解碼 (要用GPU運算)
  • DXVA(2)
  • D3D11

DXVA和D3D11的選擇

Win8以後系統建議使用
D3D11 Video Acceration (DXVA2加強版)

舊的系統沒有DirectX 11.1 (Win7或更早)
DXVA2 (沒有D3D11 Video Acceration可以用 )

有兩種模式 native和copy-back
https://en.wikipedia.org/wiki/DirectX_Video_Acceleration#DXVA2_implementations:_native_and_copy-back

copy-back會在顯卡解碼完後把資料從顯卡VRam copy回CPU的memory
要做後續處理的才需要,否則用native解碼完直接輸出會比較快


設定範例
Lavfilter (mpc-hc有內建)
不支援的情況下會自動變軟解 (勾了不支援的也會自動切去軟解)
如果有哪個解碼有問題,取消不要勾就好了


VLC 3.06 不支援顯卡解碼晶片硬解,只好用D3D11
FFmpeg有nvdec阿,怎麼沒有提供?
似乎VLC使用的FFmpeg不是最新版的,沒有nvdec的功能
播放器
效能 mpc-hc > VLC
功能 VLC > mpc-hc

要用mpc-hc 建議去安裝 k-lite code pack,一般人選擇 standard 版本就可以了

留言

這個網誌中的熱門文章

OBS 抓不到畫面, 視窗, 遊戲擷取, 黑或白畫面, 當掉 ,卡住, black/white screen, window game capture, crash, freeze

優化實況(一) OBS設定 streaming settings

OBS plugin obs-text 顯示播放中音樂, display playing music