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


Обзор архитектуры Media Foundation

В этом разделе описывается общий дизайн Microsoft Media Foundation. Сведения об использовании Media Foundation для конкретных задач программирования см. в руководстве по программированию Media Foundation .

На следующей схеме показано высокоуровневое представление архитектуры Media Foundation.

диаграмма, показывающая высокоуровневую схему архитектуры Медиафонд.

Media Foundation предоставляет две разные модели программирования. Первая модель, показанная слева от схемы, использует сквозной конвейер для данных мультимедиа. Приложение инициализирует конвейер ( например, предоставляя URL-адрес файла для воспроизведения), а затем вызывает методы для управления потоковой передачей. Во второй модели, показанной справа от схемы, приложение либо извлекает данные из источника, либо отправляет его в место назначения (или оба). Эта модель особенно полезна, если необходимо обработать данные, так как приложение имеет прямой доступ к потоку данных.

Примитивы и платформа

Начиная с нижней части схемы, примитивы являются вспомогательными объектами, используемыми в API Media Foundation:

  • атрибуты являются универсальным способом хранения информации внутри объекта в виде списка пар "ключ-значение".
  • Типы мультимедиа описывают формат потока данных мультимедиа.
  • буферы мультимедиа хранят фрагменты данных мультимедиа, такие как видеокадры и аудиосэмплы, и используются для передачи данных между объектами.
  • Образцы мультимедиа являются контейнерами для буферов мультимедиа. Они также содержат метаданные о буферах, таких как метки времени.

API-интерфейсы платформы Media Foundation предоставляют некоторые основные функциональные возможности, используемые конвейером Media Foundation, например асинхронные обратные вызовы и рабочие очереди. Некоторым приложениям может потребоваться вызывать эти API напрямую; Кроме того, вам потребуется их, если вы реализуете пользовательский источник, преобразование или приемник для Media Foundation.

Конвейер мультимедиа

Конвейер мультимедиа содержит три типа объектов, которые создают или обрабатывают данные мультимедиа:

  • источники мультимедиа вводят данные в конвейер. Источник мультимедиа может получить данные из локального файла, например видеофайла; из сетевого потока; или с устройства захвата оборудования.
  • Media Foundation Transforms (MFTs) обрабатывают данные из потока. Кодировщики и декодеры реализуются как MFT.
  • приемники мультимедиа используют данные; например, демонстрируют видео на экране, воспроизводят звук или записывают данные в медиафайл.

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

медиа-сеанс осуществляет управление потоком данных через конвейер и выполняет такие задачи, как контроль качества, синхронизация аудио/видео и реакция на изменение форматов.

Средство чтения исходного кода и средство записи приемника

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

Заметка

Средство чтения источника и модуль записи приемников доступны в Windows 7.

 

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

Media Foundation: основные понятия

архитектура Media Foundation