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


Сведения о обработчиках отрисовки

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

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

В этой статье описывается, как службы редактирования DirectShow (DES) отрисовывает проект редактирования видео.

В DES проект представляется в виде временная шкала. Этот временная шкала полезен, так как упрощает наиболее распространенные задачи при редактировании видео, такие как переупорядочение исходных клипов и добавление видеоэффектов. С другой стороны, для архитектуры потоков DirectShow требуется граф фильтра. Таким образом, для отрисовки проекта необходимо преобразовать временная шкала в граф фильтра. Компонент, который делает это, называется обработчиком отрисовки. DirectShow предоставляет два модуля отрисовки:

  • Базовый модуль отрисовки: создает граф фильтра, который предоставляет несжатые выходные данные.
  • Интеллектуальный модуль отрисовки: создает граф фильтра, который предоставляет сжатые выходные данные.

Подсистема интеллектуальной отрисовки использует интеллектуальную рекомпрессию для повышения производительности. При интеллектуальной повторной сжатия исходные файлы повторно сжимаются только в том случае, если исходный формат файла отличается от окончательного выходного формата. Если форматы совпадают, источник никогда не распаковывался. Интеллектуальное повторное сжатие поддерживается только для сжатия видео, но не для сжатия звука.

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

Важно!

Не используйте модуль интеллектуальной отрисовки для чтения или записи файлов Windows Media.

 

Важно!

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

 

Создание графа фильтров

Граф фильтра строится в два этапа. На первом этапе подсистема отрисовки создает "внешний интерфейс", который представляет собой частичный граф фильтра. На следующей схеме показан типичный интерфейс:

внешний интерфейс графа фильтра

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

На втором шаге выходные контакты подключаются к фильтрам отрисовки. В предварительной версии фильтрами отрисовки являются видео- и аудио отрисовщики. Для записи файлов фильтрами отрисовки являются мультиплексорные (мультиплексные) фильтры и фильтры записи файлов.

заполнение графа фильтра

Предварительный просмотр проекта

Запись проекта в файл