Технологии управления медиапотоками

Рассмотрен компьютерный мультимедийный фреймворк DirectShow. Приведены результаты анализа эволюции технологии, её архитектура, фильтры рендеринга, интеграция видео и 3D. Розглянуто комп’ютерний мультимедійний фреймворк DirectShow. Наведено результати аналізу еволюції технології, її архітектура, філь...

Повний опис

Збережено в:
Бібліографічні деталі
Опубліковано в: :Математичні машини і системи
Дата:2014
Автори: Алексеев, К.Д., Алексеева, Е.Д.
Формат: Стаття
Мова:Russian
Опубліковано: Інститут проблем математичних машин і систем НАН України 2014
Теми:
Онлайн доступ:https://nasplib.isofts.kiev.ua/handle/123456789/84431
Теги: Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
Назва журналу:Digital Library of Periodicals of National Academy of Sciences of Ukraine
Цитувати:Технологии управления медиапотоками / К.Д. Алексеев, Е.Д. Алексеева // Математичні машини і системи. — 2014. — № 3. — 62-66. — Бібліогр.: 3 назв. — рос.

Репозитарії

Digital Library of Periodicals of National Academy of Sciences of Ukraine
id nasplib_isofts_kiev_ua-123456789-84431
record_format dspace
spelling Алексеев, К.Д.
Алексеева, Е.Д.
2015-07-07T17:04:02Z
2015-07-07T17:04:02Z
2014
Технологии управления медиапотоками / К.Д. Алексеев, Е.Д. Алексеева // Математичні машини і системи. — 2014. — № 3. — 62-66. — Бібліогр.: 3 назв. — рос.
1028-9763
https://nasplib.isofts.kiev.ua/handle/123456789/84431
681.31
Рассмотрен компьютерный мультимедийный фреймворк DirectShow. Приведены результаты анализа эволюции технологии, её архитектура, фильтры рендеринга, интеграция видео и 3D.
Розглянуто комп’ютерний мультимедійний фреймворк DirectShow. Наведено результати аналізу еволюції технології, її архітектура, фільтри рендерінгу, інтеграція відео і 3D.
This paper describes DirectShow computer multimedia framework. The results of analysis of the evolution of technology, architecture, rendering filters, video and 3D integration were shown.
ru
Інститут проблем математичних машин і систем НАН України
Математичні машини і системи
Інформаційні і телекомунікаційні технології
Технологии управления медиапотоками
Технології управління медіапотоками
Management technology of mediastreams
Article
published earlier
institution Digital Library of Periodicals of National Academy of Sciences of Ukraine
collection DSpace DC
title Технологии управления медиапотоками
spellingShingle Технологии управления медиапотоками
Алексеев, К.Д.
Алексеева, Е.Д.
Інформаційні і телекомунікаційні технології
title_short Технологии управления медиапотоками
title_full Технологии управления медиапотоками
title_fullStr Технологии управления медиапотоками
title_full_unstemmed Технологии управления медиапотоками
title_sort технологии управления медиапотоками
author Алексеев, К.Д.
Алексеева, Е.Д.
author_facet Алексеев, К.Д.
Алексеева, Е.Д.
topic Інформаційні і телекомунікаційні технології
topic_facet Інформаційні і телекомунікаційні технології
publishDate 2014
language Russian
container_title Математичні машини і системи
publisher Інститут проблем математичних машин і систем НАН України
format Article
title_alt Технології управління медіапотоками
Management technology of mediastreams
description Рассмотрен компьютерный мультимедийный фреймворк DirectShow. Приведены результаты анализа эволюции технологии, её архитектура, фильтры рендеринга, интеграция видео и 3D. Розглянуто комп’ютерний мультимедійний фреймворк DirectShow. Наведено результати аналізу еволюції технології, її архітектура, фільтри рендерінгу, інтеграція відео і 3D. This paper describes DirectShow computer multimedia framework. The results of analysis of the evolution of technology, architecture, rendering filters, video and 3D integration were shown.
issn 1028-9763
url https://nasplib.isofts.kiev.ua/handle/123456789/84431
citation_txt Технологии управления медиапотоками / К.Д. Алексеев, Е.Д. Алексеева // Математичні машини і системи. — 2014. — № 3. — 62-66. — Бібліогр.: 3 назв. — рос.
work_keys_str_mv AT alekseevkd tehnologiiupravleniâmediapotokami
AT alekseevaed tehnologiiupravleniâmediapotokami
AT alekseevkd tehnologííupravlínnâmedíapotokami
AT alekseevaed tehnologííupravlínnâmedíapotokami
AT alekseevkd managementtechnologyofmediastreams
AT alekseevaed managementtechnologyofmediastreams
first_indexed 2025-11-25T21:12:27Z
last_indexed 2025-11-25T21:12:27Z
_version_ 1850553796719017984
fulltext 62 © Алексеев К.Д., Алексеева Е.Д., 2014 ISSN 1028-9763. Математичні машини і системи, 2014, № 3 УДК 681.31 К.Д. АЛЕКСЕЕВ*, Е.Д. АЛЕКСЕЕВА** ТЕХНОЛОГИИ УПРАВЛЕНИЯ МЕДИАПОТОКАМИ * Институт проблем математических машин и систем НАН Украины, Киев, Украина ** Киевский национальный университет имени Тараса Шевченка, Киев, Украина Анотація. Розглянуто комп’ютерний мультимедійний фреймворк DirectShow. Наведено резуль- тати аналізу еволюції технології, її архітектура, фільтри рендерінгу, інтеграція відео і 3D. Ключові слова: медіапотоки, медіафільтри, відеообробка. Аннотация. Рассмотрен компьютерный мультимедийный фреймворк DirectShow. Приведены ре- зультаты анализа эволюции технологии, её архитектура, фильтры рендеринга, интеграция видео и 3D. Ключевые слова: медиапотоки, медиафильтры, видеообработка. Abstract. This paper describes DirectShow computer multimedia framework. The results of analysis of the evolution of technology, architecture, rendering filters, video and 3D integration were shown. Keywords: media streams, media filters, video processing. 1. Введение в технологию DirectShow DirectShow (Dshow, DS) – мультимедийный фреймворк и интерфейс программирования приложений (API), разработанный компанией Microsoft для операционных систем семей- ства Windows. Эта технология пришла на смену технологии Video for Windows. DirectShow построен на технологии СOM (Component Object Model), что позволяет использовать его в приложениях, написанных на разных языках программирования, таких как С, С++, С#, Basic, Delphi и т.д [1]. DirectShow является аналогом таких технологий, как Apple QuickTime (MacOS), Gstreamer, xine (Linux). DirectShow – это API, позволяющий Windows-приложениям управлять широким спектром устройств аудио/видеоввода, включающий (но не ограниченный) DV-камеры, веб-камеры, DVD-устройства, карты TV-тюнеров. Он также поддерживает различные форматы от WAV и AVI до Windows Media. DirectShow, кроме этого, расширяемо, оно по- зволяет поддерживать устройства третьих производителей, форматы и компоненты обра- ботки. DirectShow предлагает как высокоуровневую модель приложения, позволяющую быстро разрабатывать цифровые медиаприложения, так и низкоуровневую классовую мо- дель, позволяющую третьим производителям создавать собственные компоненты аудио- и видеообработки. 2. Эволюция технологии Следует сказать несколько слов об эволюции DirectShow, которая началась с поддержки в Windows 3.1 видеозахвата, предоставляемого моделью Видео для Windows (Video for Windows – VfW). VfW считалась прогрессивной технологией для своего времени, но имела серьезные ограничения. Одним из них было то, что менеджер видеокомпрессии (Video Compression Manager – VCM) не был разработан для управления кодеками, которые бы пе- редавали видеофреймы в разном порядке во время сжатия. Таким образом, было затрудни- тельно писать MPEG-кодеки, базирующиеся на VCM. Windows также предоставлял простую поддержку аудио- и видеопроигрывания че- рез набор команд MCI – Media Control Interface, который использовался драйверами ISSN 1028-9763. Математичні машини і системи, 2014, № 3 63 mciavi. Хотя инфраструктура MCI допускала MPEG-декодеры, она никогда не была полно- стью портирована на 32-битную архитектуру и не базировалась на COM. Для снятия этих ограничений Microsoft начала проект, известный под названием Quartz, в котором была заложена поддержка проигрывания MPEG-1 для Windows. В то время появились новые устройства, такие, как цифровые видеокамеры, новые медиаформаты MPEG-2 или DVD, и новые технологии, такие, как видеоконференции. Становилась понятной необходимость новой оболочки, позволяющей заставить работать вместе эти новые технологии максимально эффективно не только каждую саму по себе, но и под единым началом. Эта оболочка должна была быть расширяемой, чтобы третьи про- изводители могли осуществлять поддержку своих специальных аппаратных средств, не- стандартных форматов и процессов программной обработки. Эта оболочка должна была бы максимально упростить разработку программ, предоставить возможность низкоуровне- вого управления потоковыми операциями и модифицировать необходимые аудио- и ви- деоданные. Для соответствия этим многочисленным требованиям группа разработчиков проек- та Quartz начала с существующего проекта Clockwork. Clockwork был модульной оболоч- кой, в которой совместно работали полунезависимые компоненты, следуя предписаниям набора правил, для обработки медиапотоков. Группа разработчиков Quartz'а адаптировала эту модель для работы с Windows и обеспечила поддержку устройств третьих производи- телей. Результатом стала базирующаяся на COM потоковая архитектура, которая через шесть лет стала базисом сотен приложений под Windows. Эта архитектура первоначально называлась ActiveMovie и впервые появилась в 1995 году с DirectX SDK. В 1996 году ActiveMovie была переименована в DirectShow. В 1998 году, вместе с DirectX Media 6.1, была добавлена поддержка для DVD и приложений аналогового телевидения. В 2000 году DirectShow стала частью DirectX SDK в составе DirectX 8.0 и дополнительно стала поддерживать Windows Media Format, DirectShow Editing Services и API видеоредактирования. 3. Архитектура DirectShow Цифровые видеопотоки представляют собой последовательности видеофреймов, которые могут быть несжатыми RGB-изображениями или, если поток сжат, набором цировых зна- чений, который можно декодировать для получения изображения. Обычно видео проигры- вается со скоростью 25 или 30 кадров в секунду. Несжатый цифровой аудиопоток содер- жит последовательность значений, каждое из которых есть целым, представляющую из себя квантованную (округленную) амплитуду аналогового сигнала в определенный момент времени. При качестве CD-аудио данные имеют точность 16 бит на отсчет, записываются и воспроизводятся как звук максимальной частоты 44,1 килогерц. Сжатый видеопоток не содержит действительных последовательностей данных, но, как и видеопоток, содержит значения, которые декодер использует для восстановления исходного потока перед тем, как подать его в звуковую карту [2]. Аудио- и видеопотоки могут быть обработаны самыми разными способами. Они могут быть скомбинированы, проанализированы, перемешаны, скопированы, сгенерирова- ны, изменены и т.д. В DirectShow все эти операции скрыты в фильтрах – COM-объектах, имеющих стандартное поведение. Фильтры, читающие файлы, расщепляющие бинарные данные на разные (например, аудио и видео) потоки – демультиплексоры, фильтры- компрессоры и фильтры-декомпрессоры, фильтры, отображающие аудио- или видеодан- ные, фильтры – драйверы устройств – все это фильтры, которые знают, как они должны взаимодействовать, кроме обработки данных, с другими фильтрами для передачи потоко- вых данных. Приложения соединяют эти фильтры в необходимом порядке. 64 ISSN 1028-9763. Математичні машини і системи, 2014, № 3 Фильтры могут быть трех основных типов: фильтры источников для ввода, фильт- ры преобразования для обработки и фильтры рендеринга для отображения информации. Фильтр источника вводит данные в поток. Эти данные он может получать из файла или, например, видеокамеры, веб-камеры, TV-тюнера, сетевого потока и т.д. DirectShow тесно связан с моделью Windows-драйвером (Windows Driver Model – WDM); любое ме- диаустройство с правильно реализованным WDM-драйвером автоматически предоставля- ется для приложения как DirectShow фильтр источника. DirectShow предоставляет также фильтры источников для ввода данных из файлов, DVD- и VfW-устройств. Фильтры преобразования получают входящие данные от другого фильтра, обраба- тывают их и посылают следующему фильтру. Фильтры преобразования могут анализиро- вать потоки, кодировать их, декодировать и т.д., то есть проводить анализ или манипуля- ции над аудио- и видеоданными. DirectShow предоставляет множество разнообразных фильтов преобразования для управления различными сжатиями и форматами файлов, включая аналоговые и телевизионные сигналы. Фильтры рендеринга принимают данные от фильтров источников или преобразова- ния и отображают их на экране, выводят через колонки в файлы, устройства и т.д. Часть "Direct" в названии "DirectShow" отражает тот факт, что фильтры рендеринга используют технологии DirectDraw и DirectSound для передачи данных в видео- и звуковую карту. Вдобавок DirectShow поддерживает свойства потокового ядра, что позволяет таким уст- ройствам захвата, как ТВ-тюнеры и DVD-устройства, передавать данные на внешние уст- ройства в режиме ядра для сохранения расходов переходов из режима ядра в пользова- тельский режим в случаях, когда приложение не требует этих данных. Ниже приведена схема фильтров и их соединения при проигрывании avi-файла (рис. 1). Рис. 1. Соединение фильтров при проигрывании avi-файла Здесь фильтром источника есть File Source (Async), фильтрами рендеринга - Video Renderer и Default DirectSound Device, а фильтрами преобразования – AVI Splitter и AVI Decompressor. Основной задачей приложения DirectShow являются построение и управление та- кого рода наборами соединенных фильтров – графом. Для этого используется вспомога- тельный СОМ объект – Filter Graph Manager. Этот объект поддерживает целый ряд интер- фейсов для создания и управления графами обработки и воспроизведения медиапотоков. 4. Отображение видео. Фильтры рендеринга. Интеграция видео и 3D Для отображения видео DirectShow предоставляет целый набор фильтров, основанных на различных технологиях. Video Renderer фильтр. Этот фильтр доступен на всех платформах, которые под- держивают DirectX. Он не предъявляет каких-либо специальных системных требований. ISSN 1028-9763. Математичні машини і системи, 2014, № 3 65 Этот фильтр использует технологию DirectDraw для отображения, если данная технология доступна, в противном случае используется технология GDI. Фильтр используется по умолчанию на всех платформах, предшествующих Windows XP. Video Mixing Renderer Filter 7 (VMR-7). Этот фильтр доступен на платформе Windows XP, где является фильтром отображения по умолчанию. VMR-7 всегда использу- ет технологию DirectDraw7 для отображения. Он обладает свойствами, которые были не- доступны на традиционном Video Renderer фильтре. Среди этих особенностей стоит отме- тить прежде всего возможность сведения и композиции нескольких видеопотоков (микши- рование), а также plug-in модель, позволяющую разработчику получить непосредственный доступ к DirectDraw поверхностям, используемым фильтром. Video Mixing Renderer Filter 9 (VMR-9). Это новая версия фильтра-микшера VMR-7. VMR-9 всегда использует технологию Direct3D9 для рендеринга. Данный фильтр доступен на всех платформах, которые поддерживают DirectX9. Он не является фильтром по умол- чанию, так как предъявляет более строгие системные требования, чем традиционный Video Renderer фильтр. Overlay Mixer фильтр разработан специально для проигрывания DVD и широкове- щательного сигнала. Этот фильтр предоставляет интерфейс, позволяющий работать с ап- паратными MPEG-2-декодерами и ТВ-тюнерами с прямым доступом к видеопамяти. Enchanced Video Renderer (EVR). Это рендер-фильтр нового поколения, доступный системам, начиная с Windows Vista. Остановимся подробнее на описании архитектуры (VMR-9). Именно этот фильтр используется для отображения видео в нашей системе. Он может работать в трех режимах: • оконный режим (Windowed). В этом режиме фильтр создает собственное окно, в котором производится отображение; • безоконный режим (Windowless). В этом режиме производится отображение в ок- не, предоставленном приложением; • безрендерный режим (Renderless). В этом режиме отображения не происходит. Данный специальный режим предназначен для перехвата приложением распакованных видеоданных и использования их в собственном контексте. В нашей системе мы используем безрендерный режим для получения видеоданных и композиции их в нашем Direct3D-контексте. Такая функциональность доступна благода- ря модульному дизайну VMR-9-фильтра. Для достижения этих целей мы инкапсулируем в фильтр наш собственный Allocator/Presenter. В таком режиме использования VMR-9 наше приложение осуществляет управление окном отображения; аллокацией промежуточных Direct3D объектов и буфера вывода; оповещением системы воспроизведения об исполь- зуемых ресурсах; композицией и отображением видеоданных; обрабатывает различного рода ошибки и исключения Direct3D-подсистемы. В то же время VMR-9 фильтр выполняет следующие задачи: отслеживает текущее время видеопотока для своевременного предос- тавления видеокадров; обрабатывает и предоставляет видеоподсистеме информацию о по- казателях качества отображения; предоставляет апстрим компонентам видеографа совмес- тимые ресурсы для декодирования видео; в случае необходимости производит предвари- тельное сведение (микширование) нескольких видеопотоков. Для успешного решения задачи инкапсуляции Allocator/Presenter в VMR-9-фильтр необходимо осуществить несколько следующих шагов: – имплементировать класс, который бы поддерживал интерфейсы IVMRSurfaceAllocator9 и IVMRImagePresenter9; – запросить у VMR-9 интерфейсы IVMRFilterConfig9 и IVMRSurfaceAllocatorNotify9; – установить VMR-9 в безрендерный режим путем вызова метода IVMRFilterConfig9::SetRenderingMode с параметром VMR9Mode_Renderless; 66 ISSN 1028-9763. Математичні машини і системи, 2014, № 3 – вызвать метод IVMRSurfaceAllocatorNotify9::AdviseSurfaceAllocator с указателем на собственный Allocator/Presenter; – вызвать метод IVMRSurfaceAllocator9::AdviseNotify с указателем на полученный IVMRSurfaceAllocatorNotify9 интерфейс. На этом шаге устанавливается коммуникация между фильтром и нашим Allocator/Presenter объектом; – аллоцировать совместимые Direct3D-поверхности в момент вызова IVMRSurfaceAllocator9::InitializeDevice; – VMR-9 получает доступ к аллоцированным поверхностям путем вызова метода IVMRSurfaceAllocator9::GetSurface; – отобразить очередной видеокадр в момент вызова IVMRImagePresenter9::PresentImage. В нашей системе в этот момент мы производим копи- рование данных поверхности в нашу частную текстуру, которая в дальнейшем использует- ся в момент рендеринга всей композиции; – после окончания воспроизведения освободить все ресурсы в момент вызова IVMRSurfaceAllocator9::TerminateDevice. 5. Выводы DirectShow – это API, позволяющий Windows-приложениям управлять широким спектром устройств аудио/видеоввода и включающий (но не ограниченный) DV-камеры, веб- камеры, DVD-устройства, карты TV-тюнеров. Основные логические единицы технологии – фильтры. Фильтры могут быть трех основных типов: фильтры источников для ввода, фильтры преобразования для обработки и фильтры рендеринга для отображения информации. Основной задачей приложения DirectShow являются построение и управление раз- ного рода наборами соединенных фильтров – графом. Рассмотренные в статье технологии являются эффективным инструментом создания современных медиаприложений. СПИСОК ЛИТЕРАТУРЫ 1. http://en.wikipedia.org/wiki/DirectShow. 2. Клименко А.В. Обзор аппаратных средств и API-сервисов определения времени в персональном компьютере / А.В. Клименко, К.Д. Алексеев // Математичні машини і системи. – 2009. – № 3. – С. 137 – 143. 3. DirectShow documentation. MSDN. Microsoft [Електронний ресурс]. – Режим доступу: http://msdn.microsoft.com/ru-ru/library/ms783323(en-us,VS.85).aspx. Стаття надійшла до редакції 24.06.2014