默认情况下,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,默认情况下硬件加速是否已启用(如果没有,如何以编程方式启用它?
非常感激的帮助。
发布于 2017-09-27 05:56:38
LAV过滤器也有HW加速,参见https://github.com/Sascha-L/WPF-MediaKit/wiki/Usage。但是,它必须手动设置。已经有一个GitHub问题#31来自动设置加速度。
如果要强制执行,ffdshow可以设置MediaUriPlayer.VideoDecoder, Splitter属性。(代码中没有使用这些GUID。)我不知道ffdshow的细节,但IMO类似:您必须手动设置DXVA。
https://stackoverflow.com/questions/46390432
复制相似问题