2017-09-24 45 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。