默认情况下是LAV解码器,但我想使用ffdshow和硬件加速进行解码。 我在 ClassId.cs
文件中看到了这些行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 :(得分:0)
LAV过滤器也有硬件加速,请参阅https://github.com/Sascha-L/WPF-MediaKit/wiki/Usage
。但是,必须手动设置。已经有GitHub issue #31自动设置加速度。
如果要强制执行ffdshow,可以设置MediaUriPlayer.VideoDecoder, Splitter
属性。 (那些GUID没有在代码中使用。)我不知道ffdshow的细节,但IMO类似:你必须手动设置DXVA。