API кроссплатформенной камеры - PullRequest
4 голосов
/ 03 апреля 2010

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

Еще одно требование, которое имеет более низкий приоритет, но также и хорошее, должно сделать его кроссплатформенным (как для ПК, так и для мобильных устройств).

Приложение построено на C ++.

Теперь мой вопрос:

существует ли какой-либо API, который является более переносимым и имеет такие же или лучшие характеристики производительности, чем DirectShow? поскольку переносимость DirectShow ограничена только устройствами на базе Windows (ПК и платформы Windows Mobile и CE).

Также я заметил, что, например, использование пользовательского API камеры HTC имеет гораздо лучшую производительность, чем предлагает DirectShow. Если вы хотите проверить это, попробуйте создать фильтр в DirectShow, который будет умножать каждый цвет на 2 и отображать его в режиме реального времени с камеры на экране. Затем сделайте то же самое с API HTC. Повышение производительности почти в 4-5 раз благодаря специфическому API поставщика. Поэтому было бы очень хорошо, если бы библиотека использовала реализацию драйвера для конкретного устройства, так как производительность критична при выполнении этого преобразования на мобильном устройстве (которое составляет около ~ 500 МГц).

Ответы [ 2 ]

3 голосов
/ 12 октября 2010

Существует opencv.org , который имеет чрезвычайно простой кроссплатформенный интерфейс для подключения к видеокамерам, однако это сложная система, предназначенная для приложений обработки изображений и не обеспечивающая захват непосредственно.Вам нужно будет обработать ваши кадры и передать их в файл.Кроме того, что касается производительности, когда я смотрел на openCV, оказалось, что сторона Windows использует очень старый 16-битный видео-фреймворк в Windows :(.

Вы можете попробовать каркас приложения Nokia QT.Процесс разработки библиотеки «QT Multimedia», которая делает то, что вы хотите. Однако в настоящее время это бета-продукт, и мой опыт (3-4 месяца назад) заключался в том, что порт Windows все еще нуждается в некоторой работе. YMMV.
Вам нужно будет установить QT, а затем «новый QT APIS - Mobility Project» из раздела «Другие загрузки» qt.nokia.com / downloads / . В зависимости от сроков вашего проекта, это может быть хорошим вариантом для вас ... ИМХО, безусловно, хороший набор инструментов.

2 голосов
/ 03 апреля 2010

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

...