Медиа Фонд

редактировать

Media Foundation (MF) - это основанный на COM конвейер мультимедийной инфраструктуры и инфраструктурная платформа для цифровых мультимедиа в Windows Vista, Windows 7, Windows 8, Windows 8.1 и Windows 10. Это предполагаемая замена Microsoft DirectShow, Windows Media SDK, DirectX Media Objects (DMO) и всех других так называемых «устаревших» мультимедийных API, таких как Audio Compression Manager (ACM) и Video for Windows (VfW). Существующая технология DirectShow предназначена для постепенной замены Media Foundation, начиная с нескольких функций. Некоторое время будут сосуществовать Media Foundation и DirectShow. Media Foundation будет недоступен для предыдущих версий Windows, включая Windows XP.

Первый выпуск, представленный в Windows Vista, ориентирован на качество воспроизведения аудио и видео, контент высокой четкости (например, HDTV ), защиту контента и более унифицированный подход к управлению доступом к цифровым данным для управления цифровыми правами (DRM) и его совместимость. Он интегрирует DXVA 2.0 для разгрузки большей части конвейера обработки видео на оборудование для повышения производительности. Видео обрабатываются в цветовом пространстве, в котором они были закодированы, и передаются аппаратному обеспечению, которое составляет изображение в его собственном цветовом пространстве. Это предотвращает промежуточные преобразования цветового пространства для повышения производительности. MF включает в себя новый модуль рендеринга видео под названием Enhanced Video Renderer (EVR), который является следующей итерацией VMR 7 и 9. EVR лучше поддерживает синхронизацию и синхронизацию воспроизведения. Он использует службу планировщика классов мультимедиа (MMCSS), новую службу, которая отдает приоритет обработке мультимедиа в реальном времени, чтобы зарезервировать ресурсы, необходимые для воспроизведения, без каких-либо разрывов или сбоев.

Второй выпуск, включенный в Windows 7, представляет расширенную поддержку медиаформатов и DXVA HD для ускорения HD-контента при использовании драйверов WDDM 1.1.

СОДЕРЖАНИЕ
  • 1 Архитектура
    • 1.1 Практические архитектуры MF
    • 1.2 Преобразование Media Foundation
    • 1.3 Улучшенное средство визуализации видео
    • 1.4 Поддерживаемые форматы мультимедиа
  • 2 Поддержка приложений
  • 3 ссылки
  • 4 Внешние ссылки
Архитектура
Архитектура Media Foundation

Архитектура МФА делятся на слой управления, серединный слой и слой платформы. Базовый уровень инкапсулирует большую часть функциональности Media Foundation. Он состоит из конвейера медиа-основания, который состоит из трех компонентов: Media Source, Media Sink и Media Foundation Transforms (MFT). Источник мультимедиа - это объект, который действует как источник мультимедийных данных, сжатых или несжатых. Он может инкапсулировать различные источники данных, такие как файл, сетевой сервер или даже видеокамеру, со специфическими для источника функциональными возможностями, абстрагированными общим интерфейсом. Исходный объект может использовать объект распознавателя источника, который создает источник мультимедиа из URI, файла или байтового потока. Поддержка нестандартных протоколов может быть добавлена ​​путем создания для них преобразователя исходного кода. Исходный объект также может использовать объект секвенсора для использования последовательности источников (список воспроизведения ) или для объединения нескольких источников в один логический источник. Медиа-приемник - это получатель обработанных мультимедийных данных. Приемник мультимедиа может быть приемником средства рендеринга, который отображает контент на устройстве вывода, или приемником архива, который сохраняет контент в системе постоянного хранения, такой как файл. Приемник рендерера принимает несжатые данные в качестве входных данных, тогда как приемник архива может принимать как сжатые, так и несжатые данные, в зависимости от типа вывода. Данные от медиаисточников до приемников обрабатываются MFT; MFT - это определенные функции, которые преобразуют данные в другую форму. MFT могут включать мультиплексоры и демультиплексоры, кодеки или эффекты DSP, такие как реверберация. На базовом уровне используются такие службы, как доступ к файлам и работа в сети, а также синхронизация часов для синхронизации воспроизведения мультимедиа. Они являются частью уровня платформы, который предоставляет службы, необходимые для доступа к потокам байтов источника и приемника, тактовым сигналам представления и объектной модели, которая позволяет компонентам уровня ядра функционировать асинхронно и обычно реализуется как службы ОС. Пауза, остановка, ускоренная перемотка вперед, назад или сжатие по времени могут быть достигнуты путем управления часами презентации.

Однако компоненты конвейера среды передачи не подключены; скорее они просто представлены как дискретные компоненты. Приложение, работающее на уровне управления, должно выбрать, какие типы источников, преобразования и приемники необходимы для конкретной задачи обработки видео, и установить «соединения» между компонентами ( топологию) для завершения конвейера потока данных. Например, для воспроизведения сжатого аудио / видео файла конвейер будет состоять из объекта источника файла, демультиплексора для определенного формата контейнера файла для разделения аудио- и видеопотоков, кодеков для распаковки аудио- и видеопотоков, процессоров DSP. для аудио и видео эффектов и, наконец, рендерера EVR, по очереди. Или для приложения видеозахвата видеокамера будет действовать как источники видео и звука, на которых MFT кодека будут работать для сжатия данных и передачи их в мультиплексор, который объединяет потоки в контейнер; и, наконец, приемник файла или сетевой приемник запишет его в файл или поток по сети. Приложение также должно координировать поток данных между компонентами конвейера. Уровень управления должен «извлекать» (запрашивать) образцы из одного компонента конвейера и передавать их следующему компоненту, чтобы обеспечить поток данных в конвейере. В этом отличие от модели «проталкивания» DirectShow, в которой компонент конвейера передает данные следующему компоненту. Media Foundation обеспечивает защиту контента, размещая конвейер в защищенной среде выполнения, называемой Protected Media Path. Компоненты уровня управления требуются для распространения данных по конвейеру со скоростью, с которой визуализация синхронизируется с часами представления. Скорость (или время) рендеринга встраивается как часть мультимедийного потока в виде метаданных. Исходные объекты извлекают метаданные и передают их. Метаданные бывают двух типов: закодированные метаданные, которые представляют собой информацию о скорости передачи данных и времени представления, и описательные метаданные, такие как название и имена авторов. Закодированные метаданные передаются объекту, который управляет сеансом конвейера, а описательные метаданные предоставляются приложению для использования, если оно того пожелает.

Media Foundation предоставляет объект Media Session, который можно использовать для настройки топологий и облегчения потока данных без явного выполнения этого приложением. Он существует на уровне управления и предоставляет объект загрузчика топологии. Приложение указывает требуемую топологию конвейера загрузчику, который затем создает необходимые соединения между компонентами. Объект медиа-сеанса управляет синхронизацией с часами презентации. Он создает объект часов презентации и передает ссылку на него в приемник. Затем он использует события таймера от часов для распространения данных по конвейеру. Он также изменяет состояние часов для обработки запросов на приостановку, остановку или возобновление от приложения.

Практические архитектуры MF

Теоретически существует только одна архитектура Media Foundation, и это модель Media Session, Pipeline, Media Source, Transform и Media Sink. Однако эта архитектура может быть сложной в настройке, и существуют значительные возможности для легких, относительно простых в настройке компонентов MF, предназначенных для обработки медиаданных для простых точечных решений. Таким образом, практические соображения вызвали необходимость реализации вариаций фундаментальной конструкции конвейера, и были разработаны такие компоненты, как Source Reader и Sink Writer, которые работают вне модели конвейера. Некоторые источники разделяют архитектуру Media Foundation на три основных класса.

  • Архитектура конвейера
  • Архитектура читателя-писателя
  • Гибриды между конвейерной архитектурой и архитектурой читателя-писателя

Архитектура конвейера отличается использованием отдельного объекта Media Session и конвейера. Медиа-данные передаются из одного или нескольких источников мультимедиа в один или несколько приемников мультимедиа и, необязательно, проходят через ноль или несколько преобразований мультимедиа. Медиа-сеанс управляет потоком мультимедийных данных через конвейер, и этот конвейер может иметь несколько разветвлений и ответвлений. Приложение MF может получить доступ к мультимедийным данным при переходе от источника мультимедиа к приемнику мультимедиа, реализовав настраиваемый компонент преобразования мультимедиа и вставив его в соответствующее место в конвейере.

Архитектура Reader-Writer использует компонент, называемый Source Reader, для предоставления мультимедийных данных и компонент Sink Writer для их использования. Source Reader действительно содержит тип внутреннего конвейера, но он недоступен для приложения. Источник чтения не является источником мультимедиа, а устройство записи приемника не является приемником мультимедиа, и ни одно из них не может быть напрямую включено в конвейер или управляться сеансом мультимедиа. Как правило, мультимедийные данные передаются от устройства чтения источника к устройству записи приемника действиями приложения. Приложение либо принимает пакеты мультимедийных данных (называемых образцами мультимедиа) из Source Reader и передает их непосредственно в Sink Writer, либо оно настраивает функцию обратного вызова в Source Reader, которая выполняет ту же операцию. Фактически, поскольку оно управляет транспортировкой данных, само приложение выполняет ту же роль, что и сеанс мультимедиа в приложении с архитектурой конвейера. Поскольку приложение MF управляет передачей образцов мультимедиа между устройством чтения источника и записывающим устройством, оно всегда будет иметь доступ к необработанным мультимедийным данным. Компоненты Source Reader и Sink Writer действительно имеют ограниченные возможности по автоматической загрузке Media Transforms, чтобы помочь с преобразованием формата мультимедийных данных, однако это делается внутренне, и приложение мало контролирует это.

Source Reader и Sink Writer обеспечивают простоту использования, а конвейерная архитектура предлагает чрезвычайно сложный контроль над потоком мультимедийных данных. Однако многие компоненты, доступные для конвейера (например, Enhanced Video Renderer), просто не могут быть легко использованы в архитектурном приложении Reader-Writer. Поскольку структура образца мультимедиа, созданного программой чтения исходного кода, идентична тому, что выводится источником мультимедиа, можно настроить конвейерную архитектуру, в которой образцы мультимедиа перехватываются, когда они проходят через конвейер, а копия передается в Медиа-раковина. Это известно как гибридная архитектура, и она позволяет иметь приложение, которое использует преимущества сложных возможностей обработки сеанса мультимедиа и конвейера, используя при этом простоту использования Sink Writer. Sink Writer не является частью конвейера и не взаимодействует с медиа-сеансом. Фактически, мультимедийные данные обрабатываются специальным приемником мультимедиа, который называется приемником захвата образцов, который потребляет мультимедийные данные и передает копию устройству записи приемника. Также возможно реализовать гибридную архитектуру с настраиваемым преобразованием мультимедиа, которое копирует образцы мультимедиа и передает их устройству записи приемника, когда они проходят через конвейер. В обоих случаях специальный компонент в конвейере эффективно действует как простое приложение Reader-Writer и питает Sink Writer. Как правило, гибридные архитектуры используют конвейер и модуль записи приемника. Теоретически можно реализовать механизм, в котором средство чтения исходного кода могло бы каким-то образом вводить образцы мультимедиа в конвейер, но, в отличие от приемника захвата образцов, такого стандартного компонента не существует.

Преобразование Media Foundation

Преобразования Media Foundation (MFT) представляют собой общую модель для обработки мультимедийных данных. Они используются в Media Foundation в первую очередь для реализации декодеров, кодировщиков, микшеров и процессоров цифровых сигналов (DSP) - между медиаисточниками и медиа-приемниками. Преобразования Media Foundation - это эволюция модели преобразования, впервые представленной в DirectX Media Objects (DMO). Их поведение более четко определено. Также могут быть созданы гибридные объекты DMO / MFT. Приложения могут использовать MFT внутри конвейера Media Foundation или использовать их напрямую как автономные объекты. MFT могут быть любого из следующих типов:

  • Аудио и видео кодеки
  • Аудио и видео эффекты
  • Мультиплексоры и демультиплексоры
  • Тройники
  • Преобразователи цветового пространства
  • Преобразователи частоты дискретизации
  • Видео скейлеры

Microsoft рекомендует разработчикам писать Media Foundation Transform вместо фильтра DirectShow для Windows Vista, Windows 7 и Windows 8. Для редактирования и захвата видео Microsoft рекомендует использовать DirectShow, поскольку они не являются основным направлением Media Foundation в Windows Vista. Начиная с Windows 7, MFT также поддерживают аппаратную обработку видео, кодирование и декодирование для мультимедийных устройств на основе AVStream.

Улучшенное средство визуализации видео

Media Foundation использует Enhanced Video Renderer (EVR) для рендеринга видеоконтента, который также действует как микшер. Он может смешивать до 16 одновременных потоков, причем первый поток является эталонным. Все, кроме эталонного потока, могут иметь информацию о прозрачности для каждого пикселя, а также любой указанный z-порядок. Контрольный поток не может иметь прозрачных пикселей и имеет фиксированную позицию z-порядка позади всех потоков. Окончательное изображение накладывается на единую поверхность путем окрашивания каждого пикселя в соответствии с цветом и прозрачностью соответствующего пикселя во всех потоках.

Внутри EVR использует объект микшера для микширования потоков. Он также может удалить чересстрочную развертку на выходе и, при необходимости, применить цветокоррекцию. Составной кадр передается объекту- докладчику, который планирует их рендеринг на устройстве Direct3D, которое он совместно использует с DWM и другими приложениями, использующими устройство. Частота кадров выходного видео синхронизируется с частотой кадров опорного потока. Если какой-либо из других потоков (называемых подпотоками) имеет другую частоту кадров, EVR отбрасывает лишние кадры (если подпоток имеет более высокую частоту кадров) или использует один и тот же кадр более одного раза (если он имеет более низкую частоту кадров).

Поддерживаемые медиа-форматы

Windows Media Audio и Windows Media Video - единственные поддерживаемые по умолчанию форматы для кодирования через Media Foundation в Windows Vista. Для декодирования в Windows Vista доступен источник файла MP3 для чтения потоков MP3, но приемник файла MP3 для вывода MP3 доступен только в Windows 7. Однако поддержка формата является расширяемой; разработчики могут добавить поддержку других форматов, написав MFT кодировщика / декодера и / или настраиваемые медиаисточники / медиа-приемники.

Windows 7 расширяет поддержку кодеков, доступную в Windows Vista. Он включает источники файлов AVI, WAV, AAC / ADTS для чтения соответствующих форматов, источник файлов MPEG-4 для чтения форматов контейнеров MP4, M4A, M4V, MP4V, MOV и 3GP и приемник файлов MPEG-4 для вывода в формат MP4.

Как и в Windows Vista, поддержка транскодирования (кодирования) не предоставляется ни одним встроенным приложением Windows, но несколько кодеков включены как Media Foundation Transforms (MFT). Помимо кодировщиков и декодеров Windows Media Audio и Windows Media Video, приемника и источника файлов ASF, представленных в Windows Vista, Windows 7 включает кодировщик H.264 с базовым уровнем профиля 3 и поддержкой основного профиля, а также AAC с низким уровнем сложности ( AAC -LC ) кодировщик профиля

Для воспроизведения различных форматов мультимедиа в Windows 7 также представлен декодер H.264 с поддержкой Baseline, Main и High-profile до уровня 5.1, многоканальные AAC-LC и HE-AAC v1 ( SBR ), HE-AAC v2 ( PS ), декодеры MPEG-4 Part 2 Simple Profile и Advanced Simple Profile, которые включают декодирование популярных реализаций кодеков, таких как DivX, Xvid и Nero Digital, а также декодеры MJPEG и DV MFT для AVI. Windows Media Player 12 по умолчанию использует встроенные кодеки Media Foundation для воспроизведения этих форматов.

Воспроизведение MIDI также пока не поддерживается с помощью Media Foundation.

Поддержка приложения

Приложения, поддерживающие Media Foundation, включают:

  • Проигрыватель Windows Media в Windows Vista и более поздних версиях
  • Windows Media Center в Windows Vista и более поздних версиях
  • Firefox v24 и новее в Windows 7 и новее (только для воспроизведения H.264 )
  • GoldWave 5.60 и более поздние версии используют Media Foundation для импорта и экспорта аудио. Для экспорта форматы AAC и Apple Lossless можно сохранить через Media Foundation.

Любое приложение, использующее Protected Media Path в Windows, также использует Media Foundation.

Рекомендации
Внешние ссылки
Последняя правка сделана 2024-01-02 04:31:19
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте