1 (05.04.2011 12:03:38 отредактировано Yana)

Тема: QtMobility и USB-камера

Мне нужно в моей Qt-программе вывести изображение с подключенной по USB камеры (рецепт подключения: http://maemoworld.ru/forum/viewtopic.ph … 475#p66475).

Подключила камеру. Mplayer прекрасно выводит с нее картинку. Но при поиске доступных камер мне выводятся только встроенные: "Main Camera" и "Front Camera" Вот код поиска устройств:

camera = new QCamera;
QByteArray cameraDevice;
QLabel* lbl = new QLabel(this);
QString s = QString("");
foreach (const QByteArray& deviceName, QCamera::availableDevices()) {
  s.append(camera->deviceDescription(deviceName));
  s.append(" : ");
}
lbl->setText(s);

Можно ли средствами QtMobility "подцепить" новую, подключенную к USB камеру? Если нет - подскажите, как средствами линукса брать картинку с /dev/video2 ?

P.S.: Как я понимаю, нужно использовать V4L. Пытаюсь разобраться, как с этим работать... Если у кого-то есть ссылка на небольшой пример кода, работающего с камерой через V4L - поделитесь?

Поделиться

2 (05.04.2011 12:08:33 отредактировано Yana)

Re: QtMobility и USB-камера

Стало понятно, что копать нужно в направлении V4L и GStreamer... Подскажите, есть ли в Qt возможность для быстрого (не попиксельного) вывода на экран массива точек? И если есть - то какими средствами для этого было бы правильнее пользоваться?

Задача следующая: чтение картинки с камеры через V4L в массив-фреймбуфер и вывод содержимого массива на экран - по возможности быстро, так, чтобы видео на экране не сильно тормозило. Естественно, между чтением и выводом будет обработка картинки.

Может быть, есть готовые библиотеки, позволяющие это делать? Вроде бы, под Maemo есть OpenCV:
https://garage.maemo.org/projects/opencv/
Но смущает древность версии (2008) и заточенность ее под Maemo Diablo. Хотя, говорят, работает и под Freemantle...

Поделиться

3 (05.04.2011 12:12:39 отредактировано bonapart)

Re: QtMobility и USB-камера

Yana наверно так

std::fstream myscreen_Fb; 
myscreen_Fb.open("/dev/video0") 
QImage* image; 
image = new QImage(w, h, QImage::Format_RGB888); 
QScreen::data = image->bits(); 

ну а дальше QPainter::drawImage

We all know Linux is great … it does infinite loops in 5 seconds.The only limiting factor of the Linux operating system is its user.

4

Re: QtMobility и USB-камера

bonapart, спасибо за совет! Мне удалось найти нужное мне решение немножко другим путем. Я поставила на смарт OpenCV и заставила его брать видео с подключенной к USB веб-камеры.

Поделиться

5

Re: QtMobility и USB-камера

Понемногу осваиваю OpenCV (библиотека компьютерного зрения, позволяющая в т.ч. и работать с USB-камерой). Появилась следующая проблема: при попытке записать видео на диск средствами OpenCV (библиотека это позволяет) - ничего не происходит, файл не создается. В комментариях к примеру 2-10 в книге "Learning OpenCV" сказано про запись видео в файл:
"On linux will only work if you've installed ffmpeg development files correctly"
Попытка сделать # apt-get install ffmpeg-dev - ни к чему не привела. Есть ли такой пакет для Maemo? И если есть - как его "корректно установить"?

Поделиться

6

Re: QtMobility и USB-камера

Yana не сочтите за грубость или неуважение, я, честно говоря, восхищаюсь вашим упорством, но не проще ли бы было воплощать вашу задумку с свр используя какой-нито простенький нетбук? Там и батарейка посильнее чем в н900, линукс можно поставить любой полноценный, да и вообще просто кодить непосредственно на нетбуке проще. Проблем с совместимостью, опять же, меньше.

По заданному выше вопросу гугл выдал это: http://maemo.org/packages/view/ffmpeg/

Поделиться

7

Re: QtMobility и USB-камера

Yana такого пакета просто нету http://maemo.org/packages/search/?org_m … ue%5D=same
видимо сочли что нету таких кто будет писать мультимедия проги прямо на н900...
но полагаю если ставить так то появится что надо ...

git clone git://git.videolan.org/ffmpeg.git
cd ffmpeg
./configure # ./configure -help
make 
We all know Linux is great … it does infinite loops in 5 seconds.The only limiting factor of the Linux operating system is its user.

Поделиться

8

Re: QtMobility и USB-камера

The IV пишет:

не проще ли бы было воплощать вашу задумку с свр используя какой-нито простенький нетбук?

Собственно, с этого я и пробовала начать (я занимаюсь этой задачей с 2008 года). Оказалось - не проще.

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

Есть, конечно, очки-дисплеи с VGA или HDMI - но все они перекрывают обзор и годятся лишь для того, чтобы посмотреть фильм, сидя в кресле самолета - для чего они и предназначены. Есть неплохой девайс Vuzix Wrap 920 AR, предназначенный для задач дополненной реальности - но опять же это лабораторная примочка, по улице в таких не пройдешься. Да и с линуксом Vuzix не работает - только M$Win да MacOS (опять же - проверено лично). Эти очки при простейших операциях требуют фидбэка через USB от установленного драйвера - без этого даже не вызвать экранного меню для подстройки яркости или изменения режима.

Итак, из наголовных дисплеев пока что единственный приемлемый вариант - Eyetop Centra. А это значит - приходится подстраиваться под композит. Мало того, что сам нетбук довольно громоздкая штука для ношения. Для подключения нетбука к композитному входу наголовного дисплея нужен VGA/RCA конвертер. Простые 2-долларовые работают только со "специально заточенными" видеокартами, у которых есть режим совместимости с композитным видео (то ли частота должна соответствовать, то ли еще что-то). Во всяком случае, с моим Eee 901 такой переходник не заработал. Единственный рабочий вариант, который мне удалось найти - плата AverMedia AverKey Lite. Вполне компактная для домашнего применения, она исключительно громоздка и неудобна при интеграции в носимую систему.

Вообще, компактная упаковка железа, составляющего носимый компьютер - довольно нетривиальная задача. Одно дело повесить на себя ноут, аверкей, наголовный дисплей с аккумуляторным блоком и походить так минут 15 по квартире, гордо разместив в инет несколько своих фоток "в боевом прикиде". И совсем другое - сделать вариант, который не будет мешаться при ежедневном использовании. На базе ноута это практически нереально. Уж, казалось бы, чего проще - взять N900, подключить к нему наголовный дисплей - и готово. Ан нет. Когда дело доходит до практики, видишь все минусы. Один раз я попыталась таким образом проехать от дома до офиса. Категорически неудобно. Все болтается, все время боишься, что жесткий видеошнур N900 при неловком движении выломает гнездо. Ну а о подключении USB-переходника и говорить нечего. Так что даже в случае с компактной N900 придется ломать голову над созданием чехла, в котором бы все жестко "сидело" - и который позволял бы без проблем использовать телефон по его прямому назначению.

Но в любом случае, моя работа, как оказалось, имеет вполне практическое применение - сейчас я вместе с группой спортсменов делаю тренажер для лыжников. Вот мини-фоторепортаж с полевых испытаний: http://telegamochka.livejournal.com/169249.html

Поделиться

9

Re: QtMobility и USB-камера

bonapart пишет:

git clone git://git.videolan.org/ffmpeg.git

git на N900 установился (странно, что он не спросил согласия на установку - я только хотела посмотреть, сколько места он займет, если его поставить). Но попытка "склонировать" исходники не удалась:

# git clone git://git.videolan.org/ffmpeg.git
warning: templates not found /home/builder3/maemo-fremantle-armel-extras-devel/work/git-1.6.5.7/debian/git/usr/share/git-core/templates
Initialized emptyGit repository in /home/user/maemo/ffmpeg/.git/
git: 'index-pack' is not a git-command. See 'git --help'.
fatal: index-pack failed

remote: Counting objects: 147521, done
                                                                remote: Compressing o
remote: Compressing objects: 100% (33799/33799), done.

Никаких новых каталогов ffmpeg не появилось...

Поделиться

10

Re: QtMobility и USB-камера

http://git.videolan.org/?p=ffmpeg.git;a … EAD;sf=tgz
скачать, распаковать, собрать ...

We all know Linux is great … it does infinite loops in 5 seconds.The only limiting factor of the Linux operating system is its user.

Поделиться

11

Re: QtMobility и USB-камера

Ну вот например тут http://geeksmarket.com/product_info.php/products_id/205 продают переходник vga-композит, ёж, на сколько я помню, rgb по vga передаёт, так что тут проблемы быть не должно, хотя там vga держится исключительно на контактах, шнур выпадать будет. Впрочем это вообще проблема - реально сделать портативное решение надежным очень сложно, но вот лично мне н900 как-то жалко, хотя он конечно значительно мобильнее ежа.
Как я понимаю вам еще и управлять девайсом нужно непосредственно в процессе. Вообще я бы предложил глобальный моддинг именно лунуксового ежа, на котором запущен необходимый минимум приложений - производительность будет повыше, и, опять же, работать несколько удобней. Управлять им в принципе можно с того же н900 по ssh, что добавляет возможностей. Кстати, еее отлично работает под MeeGo, во всяком случае значительно шустрее чем под форточками, а он заточен под Qt. В любом случае желаю успехов. И да, Eyetop Centra - единственные видеоочки которые не перекрывают обзор, разве что самостоятельно изготовить аналог.

Поделиться

12

Re: QtMobility и USB-камера

The IV пишет:

Ну вот например тут http://geeksmarket.com/product_info.php/products_id/205 продают переходник vga-композит, ёж, на сколько я помню, rgb по vga передаёт, так что тут проблемы быть не должно

У меня визуально - именно такой переходник. С Eee 901 работать не стал sad

Поделиться

13

Re: QtMobility и USB-камера

Yana пишет:

на сколько я помню, rgb по vga передаёт, так что тут проблемы быть не должно

То, что там нет композитного сигнала, сомнений не вызывает - композит работать не будет.

Вопрос "Ё-моё, что ж я сделал?" © ? типичная постановка обратной задачи.

Поделиться

14

Re: QtMobility и USB-камера

Yana нарыл еще такую штуку: http://www.hwp.ru/Video/Aver.keylite/index.html достаточно компактный девайс, живет от usb, стоит вроде немного, правда проводов многовато для ваших задач, но на мой взгляд вполне терпимо.
Еще вот тут терки про подключение ежей к телевизорам: http://forum.eee-pc.ru/topic/eee-pc-i-p … televizoru

Поделиться

15

Re: QtMobility и USB-камера

The IV пишет:

Yana нарыл еще такую штуку: http://www.hwp.ru/Video/Aver.keylite/index.html

Спасибо smile Именно про него я и говорила: AverMedia AverKey Lite. Вполне годный девайс, но за счет проводов - очень громоздок. Думала отрезать - да рука не поднялась. Хотела найти такие же разъемы, как те, к которым крепятся провода внутри корпуса и сделать свой вариант (чтобы, не калеча девайс, поменять "родные" провода на свои) - но ни в ЧипДипе, ни в Буром Медведе таких разъемов не нашлось sad

Ну а потом у меня сломался iMPC, на базе которого я планировала делать "полевой" вариант носимого компьютера - и я переключилась на смартфоны с ТВ-выходом. И открыла для себя N900 smile

Кстати, по второй приведенной тобой ссылке человек жалуется: Приобрел сей девайс - пришлось вернуть. Выдавал искажение цветопередачи - на ТВ изображение было с разводами (как при малом количестве цветов). Это баг моего отдельного экземпляра? Продавец (КЦ "Кей") утверждал, что все эти Averkey изначально так глючат - даже поменять на другой не предложил, вернули деньги.
Подтверждаю, "разводы" как при просмотре видео в 256-цветном режиме VGA.

Поделиться