Архитектура служб редактирования DirectShow
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]
[Этот API не поддерживается и может быть изменен или недоступен в будущем.]
На следующем рисунке показана архитектура служб редактирования DirectShow (DES).
- Временная шкала. Представляет производство видео в виде коллекции исходных клипов, переходов и эффектов, упорядоченных в набор вложенных дорожек. Дополнительные сведения см. в разделе Модель временной шкалы.
- Средство синтаксического анализа XML. Анализирует временная шкала и создает выходной файл либо считывает входной файл и создает временная шкала. DES поддерживает формат сохраняемости на основе XML.
- Обработчик отрисовки. Преобразует временная шкала в форму, которую можно преобразовать в виде потокового мультимедиа. По умолчанию обработчик отрисовки создает граф фильтра DirectShow (см. следующий раздел).
- Указатель мультимедиа: поддерживает кэш расположений элементов мультимедиа. Если попытка открыть элемент мультимедиа завершается неудачно, DES использует кэш для поиска элемента на основе истории успешных открытий.
Временная шкала — это абстрактное описание проекта редактирования видео. Он указывает исходные клипы, используемые в проекте, время начала и остановки, эффекты и переходы и т. д. Однако временная шкала не отображает видео- и аудиопотоки. Вместо этого подсистема отрисовки преобразует временная шкала в граф фильтра для предварительного просмотра или вывода файлов. Приложение управляет временная шкала вместо того, чтобы напрямую управлять графом фильтра, что может быть громоздким и подверженным ошибкам.
В следующей таблице перечислены main задачи, выполняемые типичным приложением для редактирования видео, а также интерфейсы, поддерживающие каждую задачу. В последующих разделах эти задачи и интерфейсы описаны более подробно.
Задача | Интерфейсы |
---|---|
Создание или изменение временная шкала. | IAMTimeline и другие интерфейсы IAMTimelineXXX |
Сохранение и загрузка файлов проекта. | IXml2Dex |
Предварительный просмотр проекта или запись его в файл. | IRenderEngine, ISmartRenderEngine |
Кроме того, приложение может выполнять некоторые или все следующие дополнительные задачи.
Задача | Интерфейсы |
---|---|
Получение сведений о файлах мультимедиа. (Количество потоков; формат и длительность каждого потока.) | IMediaDet |
Задание свойств переходов и эффектов. | IPropertySetter |
Получение уведомления при возникновении ошибок во время отрисовки. | IAMSetErrorLog, IAMErrorLog |
Получение фреймов плакатов. | IMediaDet, ISampleGrabber |
Связанные темы