2009-09-04 20 views
11

Używam Qt 4.5 (2009.03) na Linux Gnome (Ubuntu 9.04) i chcę wyświetlić wideo przechwycone przez moją kamerę internetową w aplikacji Phonon :: VideoWidget mojej aplikacji Qt.Wyświetlanie wideo z kamery internetowej przy użyciu Qt

Mam pierwszą implementację za pomocą interfejsu API v4l2, w której dokonuję konwersji YUV2 na RGB i wypełniam QImage siebie. Działa dobrze, ale nie jest bardzo wydajny. Kolega użył gStreamer do zrobienia tego samego i był o wiele szybszy.

Od tego czasu dowiedziałem się o telefonie i chciałbym go użyć. Wszystko jest skonfigurowane i skonfigurowane, z wyjątkiem powiązania z kamerą internetową jako źródłem.

Powinienem utworzyć obiekt MediaSource, ale nie wiem jak go skonfigurować. Każda pomoc byłaby bardzo cenna.

Edytuj: The Phonon overview wyjaśnia, że ​​nie jest jeszcze obsługiwany. Ale potrzebuję rozwiązania.

+0

Chciałbym móc zrobić to samo, ale z aplikacją na wielu platformach działającą na systemach Windows, Linux i MacOS X – Natim

+1

Mam teraz działającą wersję, ale używa ona tylko wideo dla systemu Linux (v4l). opencv jest prosty do podłączenia do Qt, ale rozdzielczość obrazu jest ustalona na niską wartość i jest bardzo niska w oknach. Zmiana parametrów rozdzielczości nie ma wpływu. W mojej wersji Linuksa nie mam tego ograniczenia. Przekształcam z yuv, przechylam obraz o 90 ° i kopiuję od razu do bufora QImage. Przy 800x600 przy 5fps użycie procesora jest bardzo niskie. – chmike

+0

Czy masz jakiś fragment kodu, aby mi pokazać? Muszę zrobić to samo dla projektu. – Natim

Odpowiedz

2

Być może można spojrzeć w sposób, w jaki zaimplementowano kod kapture.

+0

Sprawdziłem, ale nie udało się zainicjować kamery internetowej. Kod, który napisałem przy użyciu v4l2, działa poprawnie. Widziałem, że konwertuje obrazy również ręcznie, co nie jest dobre. – chmike

4

Jeśli Twoim celem jest wyświetlenie obrazu YUV na ekranie, możesz użyć modułu OpenGL. Zaimplementuj konwersję jako moduł cieniujący fragment. Jeśli chcesz zrobić coś innego, jak zapisać przekonwertowany obraz do pliku, to nie jest to dobry pomysł.

Niektóre linki: