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


Архитектура служб редактирования DirectShow

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

[Этот API не поддерживается и может быть изменен или недоступен в будущем.]

На следующем рисунке показана архитектура служб редактирования DirectShow (DES).

directshow редактирование архитектуры служб

  • Временная шкала. Представляет производство видео в виде коллекции исходных клипов, переходов и эффектов, упорядоченных в набор вложенных дорожек. Дополнительные сведения см. в разделе Модель временной шкалы.
  • Средство синтаксического анализа XML. Анализирует временная шкала и создает выходной файл либо считывает входной файл и создает временная шкала. DES поддерживает формат сохраняемости на основе XML.
  • Обработчик отрисовки. Преобразует временная шкала в форму, которую можно преобразовать в виде потокового мультимедиа. По умолчанию обработчик отрисовки создает граф фильтра DirectShow (см. следующий раздел).
  • Указатель мультимедиа: поддерживает кэш расположений элементов мультимедиа. Если попытка открыть элемент мультимедиа завершается неудачно, DES использует кэш для поиска элемента на основе истории успешных открытий.

Временная шкала — это абстрактное описание проекта редактирования видео. Он указывает исходные клипы, используемые в проекте, время начала и остановки, эффекты и переходы и т. д. Однако временная шкала не отображает видео- и аудиопотоки. Вместо этого подсистема отрисовки преобразует временная шкала в граф фильтра для предварительного просмотра или вывода файлов. Приложение управляет временная шкала вместо того, чтобы напрямую управлять графом фильтра, что может быть громоздким и подверженным ошибкам.

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

Задача Интерфейсы
Создание или изменение временная шкала. IAMTimeline и другие интерфейсы IAMTimelineXXX
Сохранение и загрузка файлов проекта. IXml2Dex
Предварительный просмотр проекта или запись его в файл. IRenderEngine, ISmartRenderEngine

 

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

Задача Интерфейсы
Получение сведений о файлах мультимедиа. (Количество потоков; формат и длительность каждого потока.) IMediaDet
Задание свойств переходов и эффектов. IPropertySetter
Получение уведомления при возникновении ошибок во время отрисовки. IAMSetErrorLog, IAMErrorLog
Получение фреймов плакатов. IMediaDet, ISampleGrabber

 

начало работы со службами редактирования DirectShow