Профили
[Функция, связанная с этой страницей, Windows Media Format 11 SDK, является устаревшей функцией. Он был заменен средством чтения исходного кода и модуля записи приемника. Средство чтения исходного кода и модуль записи приемника оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код по возможности использовал средство чтения исходного кода и модуль записи приемника вместо пакета SDK для Windows Media Format 11. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]
Профиль — это коллекция данных, описывающая конфигурацию ASF-файла. Как минимум профиль должен содержать параметры конфигурации для одного потока.
Сведения о потоке в профиле содержат скорость передачи данных, окно буфера и свойства мультимедиа для потока. Сведения о потоке для аудио и видео точно описывают, как настроен мультимедиа в файле, включая кодек (если таковой имеется) будет использоваться для сжатия данных.
Профиль также содержит сведения о различных функциях файлов ASF, которые будут использоваться в файлах, созданных с его помощью. К ним относятся взаимное исключение, определение приоритетов потоков, совместное использование пропускной способности и расширения единиц обработки данных.
Предыдущие версии пакета SDK для формата Windows Media предоставляли предварительно настроенные системные профили, которые можно использовать для создания распространенных типов файлов или слегка изменить в соответствии с потребностями приложения. Системные профили не поддерживаются для кодеков Windows Media серии 9. Это связано с тем, что число "общих" типов файлов растет в геометрической прогрессии с добавлением новых функций. Ожидается, что практически каждый создатель контента имеет потребности, выходящие за рамки простых решений, предоставляемых системными профилями. Вы по-прежнему можете использовать старые системные профили в качестве отправной части. Дополнительные сведения см. в разделе Использование системных профилей.
Необходимо предоставить записи профиль для каждого файла, который вы записываете. Вы можете указать профиль для использования с модулем записи, вызвав IWMWriter::SetProfile.
Данные профиля существуют в нескольких различных формах, которые могут использоваться пакетом SDK для формата Windows Media. Доступ к сведениям профиля также можно получить несколькими способами. Это может привести к путанице относительно того, что такое профиль и как он используется.
На следующей схеме показано, как данные профиля используются в пакете SDK.
Данные профиля принимают три вида: данные, содержащиеся в объекте профиля в приложении, XML-файл на диске и данные в заголовке ASF-файла. Каждая из этих форм данных показана в виде затеняемого прямоугольника на схеме.
При изменении профиля используется объект профиля, который инкапсулирует все данные профиля. Пустой объект профиля можно создать с помощью объекта диспетчера профилей. Можно также использовать объект диспетчера профилей для загрузки существующих данных профиля в объект профиля.
Большинство данных профиля должны добавляться и обрабатываться с помощью объектов, представляющих отдельные части профиля. К ним относятся объекты конфигурации потока, объекты взаимного исключения, объекты совместного использования пропускной способности и объект приоритизации потока. Каждый из этих типов объектов можно создать с помощью методов в объекте профиля. Внесение изменений в эти объекты не влияет на объект профиля, пока не будет использоваться метод в объекте профиля для включения обновленных данных из другого объекта.
Данные профиля хранятся на диске в виде XML-файла с расширением PRX-файла. В состав пакета SDK для формата Windows Media входит коллекция профилей, называемых системными профилями, которые охватывают наиболее распространенные типы ФАЙЛОВ ASF. Системные профили хранятся в файле с именем WMSysPr9.prx. (Обратите внимание, что этот файл фактически не содержит системных профилей для Windows Media 9 Series, так как концепция системных профилей больше не используется.) При сохранении собственных настраиваемых профилей их необходимо сохранить в собственных файлах.
Объект диспетчера профилей можно использовать для сохранения данных из объекта профиля в строку xml-текста. Затем можно использовать любые функции файлового ввода-вывода, которые вы хотите сохранить в файле на диске.
Модуль записи принимает данные из профиля и использует их для создания потоков, которые попадают в раздел данных ASF-файла. При записи файла основная часть данных профиля хранится в разделе заголовка файла. При воспроизведении объект средства чтения (или синхронный объект чтения) может получить доступ к информации в заголовке файла. В этом случае объект чтения создает объект профиля и заполняет его данными из заголовка .
При доступе к данным профиля с помощью средства чтения (или синхронного средства чтения) можно внести изменения в данные профиля, но применить эти изменения к файлу в средстве чтения невозможно. Вы можете применить данные профиля из файла в средстве чтения к профилю в средстве записи, чтобы создать новый файл с теми же параметрами, что и файл в средстве чтения. В этом случае любые изменения, внесенные в данные профиля перед настройкой профиля в записи, будут отражены в сведениях профиля, зарегистрированных модулем записи.
Вместо создания профилей с помощью пакета SDK для формата Windows Media можно использовать редактор профилей— служебную программу, которая входит в состав кодировщика Windows Media. В приложении кодирования используйте метод IWMProfileManager::LoadProfileByData , чтобы загрузить сохраненный профиль. В некоторых сценариях, например при использовании ограниченного числа профилей, которые никогда не изменяются динамически, может быть удобнее использовать редактор профилей для создания профилей.
Однако если вы используете редактор профилей, не рекомендуется использовать параметр "Размер видео: то же, что и вход видео". Если установлен флажок проверка, редактор профилей создаст профиль с нулевыми значениями высоты и ширины вывода видео. Когда кодировщик Windows Media обнаруживает эти профили, он задает правильные значения, соответствующие входным видео. Однако модуль записи в пакете SDK для форматов Windows Media не делает это автоматически, поэтому необходимо убедиться, что приложение задает размер видеокадра в тех случаях, когда профиль не имеет.
Примечание Некоторые элементы конфигурации потока не хранятся в профиле. Данные в профиле описывают формат готового ASF-файла. Входные свойства мультимедиа и другие данные конфигурации, используемые объектом записи для настройки кодеков, не сохраняются в профиле. Сюда входят все свойства, заданные с помощью метода IWMPropertyVault::SetProperty .