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


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

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

Media Foundation предоставляет два типа приемников мультимедиа ASF:

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

Приемники мультимедиа ASF содержат один или несколько приемников потоков, которые представляют данные для записи каждого потока в выходном ASF-файле. Для кодирования приложений, работающих в Windows Vista, необходимо вручную настроить топологию кодирования, создав и настроив приемник мультимедиа ASF, а затем добавьте его в топологию. В Windows 7, если вы используете объекты быстрого транскодирования для создания топологии, вы не создали приемник мультимедиа напрямую, а приложение не вызывает никаких методов в приемнике мультимедиа или любом из приемников потоков. Объекты быстрого транскодирования создайте экземпляры необходимых приемников мультимедиа и добавьте его в топологию перед возвратом ссылки на вызывающее приложение. Однако для объектов быстрого транскода существуют некоторые ограничения, которые применяются в зависимости от типа кодировки.

Объектная модель приемника мультимедиа ASF

Приемники мультимедиа ASF реализуют интерфейс IMFMediaSink и предоставляют следующие интерфейсы. Приложение может получить ссылку на эти интерфейсы, вызвав QueryInterface в приемнике мультимедиа ASF, который он использует для создания выходных примеров.

Интерфейс Описание
МВФMediaSink Требуется для всех приемников мультимедиа.
МВФFinalizableMediaSink Реализован приемником ФАЙЛОВ ASF, который записывает созданное содержимое мультимедиа в файл. Методы этого интерфейса можно использовать для очистки данных и обновления объекта заголовка ASF окончательного выходного файла.
МВФClockStateSink Получает уведомления об изменении состояния из часов презентации.
МВФASFContentInfo Объект ASF ContentInfo — это объект уровня WMContainer, который в основном хранит сведения об объекте заголовка ASF. Используется для создания приемников мультимедиа ASF.
МВФMetadata Используется для описания метаданных файла ASF.
МВФMetadataProvider Извлекает коллекцию метаданных либо для всей презентации, либо для одного потока в презентации.

 

Приемник файлов ASF

Приемник файлов ASF — это реализация МВФMediaSink, предоставленной Media Foundation, которую приложение может использовать для архивации данных мультимедиа ASF в файл.

Необходимо создать, настроить и вызвать методы в приемнике файлов или любой из его приемников потоков, если вы используете объекты слоя конвейера для записи нового ФАЙЛА ASF. После настройки приемника файлов его можно добавить в конвейер кодирования.

Ниже приведены общие действия по использованию приемника файлов ASF:

  1. Создайте приемник файлов в процессе или вне процесса.
  2. Настройте приемник файла со всеми потоками, свойствами кодирования и сведениями метаданных.
  3. Свяжите приемник файла с узлом выходной топологии, перечислив приемники потока или отслеживая номера потоков в приемнике.

В следующих разделах содержатся подробные сведения о работе с приемником файлов ASF:

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

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