Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Функция, связанная с этой страницей, 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 предназначен для решения каждой из этих проблем. Ее главная цель в области проектирования заключается в упрощении задачи создания приложений для работы с цифровыми медиа на платформе Windows, обеспечивая их изолированность от сложностей транспортировки данных, различий в аппаратном обеспечении и проблем синхронизации.
Чтобы обеспечить пропускную способность, необходимую для потоковой передачи видео и звука, DirectShow использует Direct3D и DirectSound по возможности. Эти технологии эффективно отображают данные на звуковых и графических картах пользователя. DirectShow синхронизирует воспроизведение путем инкапсулирования данных мультимедиа в примерах с метками времени. Для обработки различных источников, форматов и аппаратных устройств, которые могут быть доступны, DirectShow использует модульную архитектуру, в рамках которой приложение комбинирует и сопоставляет различные программные компоненты, называемые фильтрами.
DirectShow предоставляет фильтры, поддерживающие захват и настройку устройств на основе модели драйвера Windows (WDM), а также фильтры, поддерживающие более старые карточки записи видео для Windows (VfW), и кодеки, написанные для интерфейсов диспетчера сжатия аудио (ACM) и диспетчера сжатия видео (VCM).
На следующей схеме показана связь между приложением, компонентами DirectShow и некоторыми компонентами оборудования и программного обеспечения, поддерживаемыми DirectShow.
Как показано здесь, фильтры DirectShow взаимодействуют и управляют разнообразными устройствами, включая локальную файловую систему, ТВ-тюнер и карты видеозахвата, кодеки VfW, видеовывод (через DirectDraw или GDI) и звуковую карту (через DirectSound). Таким образом, DirectShow изолирует приложение от многих сложностей этих устройств. DirectShow также предоставляет собственные фильтры сжатия и распаковки для определенных форматов файлов.
Связанные разделы