2017-09-24 35 views
1

默認情況下,LAV解碼器,但我想用硬件加速ffdshow解碼。 我看到在文件中這些行ClassId.cs如何使用WPF-Mediakit的ffdshow

public static readonly Guid FFDShowVideo = new Guid("04FE9017-F873-410e-871E-AB91661A4EF7"); 
public static readonly Guid FFDShowVideoRaw = new Guid("0B390488-D80F-4a68-8408-48DC199F0E97"); 
public static readonly Guid FFDShowVideoDXVA = new Guid("0B0EFF97-C750-462c-9488-B10E7D87F1A6"); 

所使用的解碼器在MediaUriPlayer

public MediaUriPlayer() 
{ 
    Splitter = "LAV Splitter"; 
    SplitterSource = "LAV Splitter Source"; 
    VideoDecoder = "LAV Video Decoder"; 
    AudioDecoder = "LAV Audio Decoder"; 
} 

所以現在的問題是,我該如何啓用FFDShowVideoDXVA界定?解碼器的正確名稱是什麼?或者我完全錯誤的路徑在這裏?

如果我設法使FFDShowVideoDXVA,是默認啓用硬件加速(如果沒有,我怎麼編程實現呢?

幫助深表感謝。

回答

0

LAV濾波器具有硬件加速,也看到https://github.com/Sascha-L/WPF-MediaKit/wiki/Usage。但是,它必須手動設置。有已經是一個GitHub issue #31自動設置的加速度。

如果要強制執行ffdshow的可以設置MediaUriPlayer.VideoDecoder, Splitter屬性。(這些的GUID沒有在代碼中使用。)我做不知道詳細的ffdshow,但是IMO i t的類似:你必須手動設置DXVA。