1

默认情况下 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,是否默认启用硬件加速(如果没有,我如何以编程方式启用它?

非常感谢帮助。

4

1 回答 1

0

LAV 过滤器也具有硬件加速功能,请参阅https://github.com/Sascha-L/WPF-MediaKit/wiki/Usage。但是,它必须手动设置。已经有一个GitHub 问题 #31可以自动设置加速。

如果要强制 ffdshow 可以设置MediaUriPlayer.VideoDecoder, Splitter属性。(代码中没有使用那些 GUID。)我不知道 ffdshow 的详细信息,但 IMO 类似:您必须手动设置 DXVA。

于 2017-09-27T05:56:38.280 回答