Как использовать ffdshow с WPF-Mediakit
По умолчанию LAV Decoder, но я бы хотел использовать 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, включено ли аппаратное ускорение по умолчанию (если нет, то как его программно включить?
Помощь высоко ценится.
1 ответ
LAV-фильтры тоже имеют ускорение HW, см. https://github.com/Sascha-L/WPF-MediaKit/wiki/Usage
, Однако, это должно быть установлено вручную. Уже есть проблема #31 GitHub для автоматической установки ускорения.
Если вы хотите применить ffdshow, можете установить MediaUriPlayer.VideoDecoder, Splitter
свойства. (Эти GUID не используются в коде.) Я не знаю ffdshow в деталях, но IMO это похоже: вы должны установить DXVA вручную.