Настройка свойств в приемнике файлов
Приемник файлов 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. |
Связанные темы