Просмотр видео в WebCam с помощью Qt

Я использую Qt 4.5 (2009.03) для Linux Gnome (Ubuntu 9.04) и хочу отображать видео, снятое моей веб-камерой, в Phonon:: VideoWidget моего приложения Qt.

У меня есть первая реализация, использующая API v4l2, где я делаю преобразование YUV2 в RGB и заполняю QImage самостоятельно. Он работает хорошо, но он не очень эффективен. Колледж использовал gStreamer, чтобы сделать то же самое, и это было намного быстрее.

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

Мне нужно создать объект MediaSource, но я не знаю, как его настроить. Любая помощь будет очень ценной.

Изменить: Обзор Phonon объясняет, что он еще не поддерживается. Но мне нужно решение.

Ответ 1

Я знаю его немного поздно для этого вопроса. но я искал то же самое и не мог найти чистого решения qt. Я нашел http://qt-apps.org/content/show.php/Qt+Opencv+webcam+viewer?content=89995, это зависит от opencv, который я не знаю, и я не хочу учиться.

и вот мое решение http://qt-apps.org/content/show.php/V4lCapture?content=126541

одно дело, что его поток нужно отполировать немного больше, но он все равно работает.

Ответ 2

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

Некоторые ссылки:

Ответ 3

Может быть, вы можете посмотреть, как kapture был реализован.