2013-11-19 2 views
1

Я запускаю пример приложения CapWMV DirectShow.NET.Образец DirectShow.NET - загрузка лучшего профиля

Он загружается очень низкий профиль качества в Capture.cs:

// Windows Media Video 8 for Dial-up Modem (No audio, 56 Kbps) 
// READ THE README for info about using guids 
Guid cat = new Guid(0x6E2A6955, 0x81DF, 0x4943, 0xBA, 0x50, 0x68, 0xA9, 0x86, 0xA7, 0x08, 0xF6); 

ридми говорит

если вы ДОЛЖНЫ использовать GUIDs, вы можете найти их определяется в% WINDIR% \ WMSysPr9 .prx.

Но когда я загрузить другой профиль, если не удается, по-видимому, потому что я не подключен звуковой поток, как док WindowsMedia Readme объясняет:

Самый простой (один используется наиболее часто в образцах) заключается в использовании IWMProfileManager :: LoadProfileByID. Этот метод принимает Guid, который сопоставляется с записями в% windir% \ WMSysPr9.prx и используется для , указывая различные параметры вывода (BPS, размер видео и т. Д.).

Если профиль сконфигурирован с 2-мя потоками (то есть аудио & видео), вы должны подключить как аудио и видео потока к писателю, или тому писатель не писать.

Как я предполагаю, я не могу загрузить профиль из файла с помощью DirectShow.NET, я должен загрузить лучший профиль из WMSysPr9.prx (по инструкции) и подключить аудиопоток.

Как бы я мог сделать это соединение в этом примере?

ответ

1

Профили "системы" на основе GUID устарели. Это предопределенные профили Windows Media 8, которые вы можете ссылаться только с помощью GUID, а не на создание всего профиля из кусков. Windows Media 9 не предлагала никаких предустановок, поэтому вы должны создать пустой профиль и добавить туда потоки, которые там настраивают.

System Profiles:

Там нет предопределенных профилей системы, использующих серий кодеков Windows Media 9. Вы можете создать свой собственный профиль Windows Media 9 Series, используя профиль версии 8 в качестве отправной точки. Дополнительные сведения см. В разделе «Повторное использование конфигураций потоков».

MSDN поможет вам в создании профиля here:

основные этапы создания и/или изменения профилей являются:

  • Создать пустой профиль или загрузить существующий профиль для редактирования ,
  • Настройте каждый из потоков, если требуется, на основе поддерживаемых данных профиля, полученных из кодека, которые будут использоваться для кодирования потока .
  • Настройте взаимное исключение, если необходимо.
  • Настройте распределение полосы пропускания, если необходимо.
  • Установите приоритет потоков в файле, если требуется.

Вы можете найти фрагмент кода here. Это C++, но преобразование в C# было бы довольно простым.

Смежные вопросы