Поделиться через


Настройка свойств в приемнике файлов

Приемник файлов ASF — это реализация IMFMediaSink , предоставляемая Media Foundation, которую приложение может использовать для архивации данных мультимедиа ASF в файл. Сведения об объектной модели приемников мультимедиа ASF и общем использовании см. в разделе Приемники мультимедиа ASF.

После создания приемника ФАЙЛОВ ASF его необходимо настроить с использованием сведений о потоках в выходном файле. Эта процедура описана в разделе Добавление сведений о потоке в приемник файлов ASF. Вы можете задать дополнительные свойства в приемнике файлов в зависимости от типа кодирования; негерметичность контейнеров; общие свойства файла. Эти параметры не записываются в окончательный объект заголовка ASF. В этом разделе описывается процесс добавления этих свойств в хранилище свойств приемника файлов.

Объект ContentInfo поддерживает глобальные свойства файла и отдельные свойства потока для приемника файлов. Сведения о получении ссылки на объект ASF ContentInfo приемника файлов см. в разделе Создание приемника файлов ASF.

Чтобы получить ссылку на хранилище свойств приемника файлов (IPropertyStore), вызовите imfASFContentInfo::GetEncodingConfigurationPropertyStore для ссылки на объект ContentInfo приемника файла.

Свойства кодирования потока

Чтобы правильно закодировать содержимое, файл должен знать определенные сведения о кодировке, такие как тип кодирования и связанные параметры кодирования. Эти значения задаются в приемнике файлов в качестве значений свойств в хранилище свойств, поддерживаемом объектом ASF ContentInfo. Если вы настраиваете приемник файлов перед созданием экземпляров соответствующих кодировщиков, можно использовать объект ContentInfo со всеми заполненными свойствами для создания кодировщиков Windows Media. В этом случае свойства автоматически задаются в кодировщиках, созданных экземплярами. И наоборот, если кодировщики создаются перед приемником, убедитесь, что свойства, заданные в кодировщиках, копируются в хранилище свойств приемника файлов.

Чтобы задать свойства кодирования, необходим доступ к хранилищу свойств уровня потока в приемнике файлов. Передайте номер потока в параметре wStreamNumber метода IMFASFContentInfo::GetEncodingConfigurationPropertyStore . Номера потоков должны соответствовать значениям, заданным при настройке каждого потока в профиле. Значения свойств задаются путем вызова IPropertyStore::SetValue. В следующей таблице описаны поддерживаемые свойства.

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

Свойство нечеткого контейнера

Параметры контейнера утечки определяют фактическое окно буфера, используемое кодировщиком для потока. Свойство MFPKEY_ASFSTREAMSINK_CORRECTED_LEAKYBUCKET приемника файлов содержит параметры утечки контейнера, скорость передачи данных, окно буфера и начальное заполнение буфера. Это свойство задается в хранилище свойств уровня потока для приемника файлов и должно быть задано после создания и настройки кодировщиков. Это значение задается в . Во время согласования типов мультимедиа кодировщик определяет окно буфера и скорость использования. Эти значения можно получить с помощью интерфейса IWMCodecLeakyBucket , который определен в wmcodecifaces.h, и для вызова его методов необходимо связаться с wmcodecdspuuid.lib.

Полученные значения можно задать для этого свойства для каждого потока в приемнике файлов ASF.

Глобальные свойства приемника файлов

Чтобы получить глобальное хранилище свойств приемника файла, передайте значение 0 в параметре wStreamNumber метода IMFASFContentInfo::GetEncodingConfigurationPropertyStore . Значения свойств задаются путем вызова IPropertyStore::SetValue. В следующей таблице описаны поддерживаемые свойства.

Свойства на уровне файла Описание
MFPKEY_ASFMEDIASINK_BASE_SENDTIME Время отправки указывает, когда будут освобождены полезные данные в контейнере с утечкой. Это значение свойства указывает время первой отправки. Мультиплексор использует это значение, чтобы вычислить время последующей отправки для созданных пакетов и обеспечить устойчивый поток данных через сегмент утечки.
MFPKEY_ASFMEDIASINK_AUTOADJUST_BITRATE Это значение BOOL указывает, нужно ли мультиплексору автоматически настраивать скорость передачи, чтобы гарантировать, что данные не переполняют негерметичный контейнер.
MFPKEY_ASFMEDIASINK_DRMACTION Это указывает на действие DRM приемника мультимедиа ASF для создания файлов. В этом выпуске поддерживается только перекодирование DRM.

 

Приемники мультимедиа ASF

Компоненты ASF уровня конвейера

Поддержка ASF в Media Foundation