Отображение видео с веб-камеры с помощью Qt

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

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

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

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

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

3 ответа

Я знаю, что это немного поздно для этого вопроса. но я искал то же самое и не мог найти чистого решения 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

одна вещь, которую нужно проделать, - это все равно работает.

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

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

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

Другие вопросы по тегам