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


Обзор системы DirectShow

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]

Задача мультимедиа

Работа с мультимедиа представляет несколько основных проблем:

  • Мультимедийные потоки содержат большие объемы данных, которые необходимо обрабатывать очень быстро.
  • Звук и видео должны быть синхронизированы, чтобы оно запускалось и останавливается одновременно, а также воспроизводится с одинаковой скоростью.
  • Данные могут поступать из разных источников, включая локальные файлы, компьютерные сети, телевизионные трансляции и видеокамеры.
  • Данные поступают в различных форматах, таких как Audio-Video interleaved (AVI), Advanced Streaming Format (ASF), Motion Picture Experts Group (MPEG) и Digital Video (DV).
  • Программист заранее не знает, какие аппаратные устройства будут присутствовать в системе конечного пользователя.

Решение DirectShow

DirectShow предназначен для решения каждой из этих проблем. Цель разработки main заключается в упрощении задачи по созданию цифровых мультимедийных приложений на платформе Windows путем изоляции приложений от сложностей транспорта данных, аппаратных различий и синхронизации.

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

DirectShow предоставляет фильтры, поддерживающие запись и настройку устройств на основе модели драйвера Windows (WDM), а также фильтры, поддерживающие старые карты захвата Видео для Windows (VfW), и кодеки, написанные для интерфейсов диспетчера сжатия аудио (ACM) и диспетчера сжатия видео (VCM).

На следующей схеме показана связь между приложением, компонентами DirectShow и некоторыми аппаратными и программными компонентами, поддерживаемыми DirectShow.

высокоуровневая архитектура

Как показано ниже, фильтры DirectShow взаимодействуют и управляют различными устройствами, включая локальную файловую систему, ТВ-тюнер и карты видеозахвата, кодеки VfW, видеотранслятор (через DirectDraw или GDI) и звуковые карта (через DirectSound). Таким образом, DirectShow изолирует приложение от многих сложностей этих устройств. DirectShow также предоставляет собственные фильтры сжатия и распаковки для определенных форматов файлов.

Сведения о DirectShow