Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При создании ФАЙЛА ASF объект ContentInfo должен знать характеристики содержимого мультимедиа, чтобы различные объекты заголовков заполнялись правильными значениями.
- Параметры, связанные с содержимым, в объекте ContentInfo
- Настройка объекта ContentInfo с параметрами кодировщика
- Связанные темы
Параметры, связанные с содержимым в объекте ContentInfo
Параметры конфигурации содержимого — это параметры потока, которые содержатся в профиле и указывают идентификатор потока, тип носителя и параметры утечки контейнера для приемника мультимедиа. После установки профиля в объекте ContentInfo путем вызова IMFASFContentInfo::SetProfileэти значения отражаются в созданном объекте заголовка ASF. Дополнительные сведения об этих параметрах см. в разделе Создание и настройка потоков ASF.
Настройка объекта ContentInfo с параметрами кодировщика
Цифровые аудио- или видеоданные являются сложными и занимают большое количество памяти. В большинстве случаев аудио и видео сжимаются с помощью кодировщиков перед добавлением в ASF-файл. В Media Foundation кодировщики реализуются как преобразования Media Foundation (MFTs) с одним входным и одним выходом. Вы должны выбрать тип выходного носителя в зависимости от типа носителя входного потока и типа кодирования, выбранного для сжатия потока.
Перед сеансом кодирования кодировщик должен быть настроен путем задания соответствующих свойств в зависимости от типа кодирования.
После настройки кодировщика необходимо настроить объект ContentInfo со значениями кодировщика, так как asF Multiplexer и приемник мультимедиа ASF, которые инициализированы с заполненным объектом ContentInfo, используйте такие параметры, как утечка значений контейнера, для создания пакетов данных ASF. Значения не сохраняются в последнем объекте заголовка ASF. Параметры кодирования предоставляются в виде свойств. Чтобы настроить объект ContentInfo со свойствами кодировщика, сделайте следующее:
- Получите указатель на хранилище свойств кодировщика путем запроса кодировщика (интерфейса IMFTransform) непосредственно для интерфейса IPropertyStore.
- Вызов IMFASFContentInfo::GetEncodingConfigurationPropertyStore. Чтобы задать свойства, относящиеся к потоку, укажите идентификатор потока в параметре wStreamNumber; Для свойств уровня файла передайте 0. Параметр ppIStore получает указатель на интерфейс IPropertyStore. Полученное хранилище свойств пусто.
- Вызовите IPropertyStore::GetValue в кодировщике и получите значение свойства, указав константы ключа свойства. Полный список свойств кодирования см. в справочнике по программированию codec.
- Вызовите IPropertyStore::SetValue в объекте ContentInfo, чтобы задать необходимое свойство в хранилище свойств.
- Повторите шаги 3 и 4 для каждого свойства, которое требуется задать.
Приемник мультимедиа ASF можно создать с помощью объекта активации, вызвав MFCreateASFMediaSinkActivate. Новый объект приемника мультимедиа настраивается на основе параметров приемника мультимедиа, которые можно задать в хранилище свойств объекта ContentInfo. В следующей таблице показаны константы приемника мультимедиа ASF.
Свойство | Описание |
---|---|
MFPKEY_ASFMEDIASINK_BASE_SENDTIME | Время отправки указывает, когда данные внутри протекающего ведра будут выпущены. Это значение свойства указывает время первой отправки. Мультиплексер использует это значение для вычисления последующего времени отправки для созданных пакетов и гарантирует, что данные постоянно передаются через протекающее ведро. |
MFPKEY_ASFMEDIASINK_AUTOADJUST_BITRATE | Это значение BOOL указывает, требуется ли мультиплексер автоматически настраивать битрейт, чтобы убедиться, что данные не переполнены ведром с утечкой. |
MFPKEY_ASFMEDIASINK_DRMACTION | Это указывает на действие DRM медиапотока ASF для генерации файлов. В этом выпуске поддерживается только транскод DRM. |
MFPKEY_ASFSTREAMSINK_CORRECTED_LEAKYBUCKET | Это свойство должно быть задано, когда кодировщик решает, какое окно буфера и скорость передачи данных использовать. Чтобы задать эти значения, используйте интерфейс IWMCodecLeakyBucket. Это необходимо задать для каждого потока в ASF-файле. |
Связанные разделы