Как настроить качество с ConfigureFilterUsingProfile DirectShow несжатой записи?
Я копаюсь в DirectShow для записи видео с USB-устройства и из следующего кода:
hr= m_captureGraphBuilder.SetOutputFileName(MediaSubType.Asf,
"E:\\exa.wmv", out pMux, out fSinkFilter);
//
//configure which video setting is used by graph
//
IConfigAsfWriter2 lConfig = pMux as IConfigAsfWriter2;
Guid asfFilter = new Guid("8C45B4C7-4AEB-4f78-A5EC-88420B9DADEF");
lConfig.ConfigureFilterUsingProfileGuid(asfFilter);
m_captureGraphBuilder.RenderStream(null,null, m_deviceFilter, null, pMux);
m_mediaCtrl = m_graphBuilder as IMediaControl;
m_mediaCtrl.Run();
Я могу записывать видео, но это самое низкое качество, я новичок в директ-шоу и прочем,
Как я могу повысить качество?
1 ответ
Известное имя GUID: WMProfile_V80_288VideoOnly
, который:
Обратите внимание, что этот способ настройки кодировки несколько устарел, хотя все еще в порядке:
Все перечисленные ниже профили используют кодеки Windows Media Audio и Windows Media Video версии 8. Нет предопределенных системных профилей, которые используют кодеки Windows Media 9 Series.
В качестве альтернативы вы можете настроить профиль кодирования, как указано в MSDN выше, или выбрать более подходящий идентификатор из упомянутого. Значения доступны в Windows SDK или. например, здесь.
Смотрите связанные вопросы:
- Пример DirectShow.NET - загрузите лучший профиль
- Видеозахват выводится всегда в разрешении 320x240, несмотря на изменение разрешения (функции
ConfigureFilterUsingProfile
в отличие от вашегоConfigureFilterUsingProfileGuid
)