LINUX.ORG.RU

Не работает web камера

 , ,


0

1

Пишу приложение на Qt5 для захвата web камеры.

...
    camera = new QCamera();
    camera->setCaptureMode(QCamera::CaptureStillImage);
    camera_viewfinder = new QCameraViewfinder();
    camera->setViewfinder(camera_viewfinder);
    camera_viewfinder->setAspectRatioMode(Qt::KeepAspectRatio);
    camera_image_capture = new QCameraImageCapture(camera);
...
    camera->start();
И получаю ошибку:
libv4l2: error set_fmt gave us a different result then try_fmt!
CameraBin error: "Устройство «/dev/video0» не может осуществлять захват в указанном формате"
CameraBin error: "Internal data stream error."
Причем, на другом компе все работает с той же версией ОС и Qt. dmesg говорит примерно одно и тоже в обеих ОС:
[  109.762872] usb 1-1: USB disconnect, device number 2
[  112.486789] usb 1-1: new high-speed USB device number 7 using xhci_hcd
[  112.675227] usb 1-1: New USB device found, idVendor=0c45, idProduct=6340
[  112.675234] usb 1-1: New USB device strings: Mfr=2, Product=1, SerialNumber=0
[  112.675237] usb 1-1: Product: USB 2.0 Camera
[  112.675241] usb 1-1: Manufacturer: Sonix Technology Co., Ltd.
[  112.677907] uvcvideo: Found UVC 1.00 device USB 2.0 Camera (0c45:6340)
[  112.691629] uvcvideo 1-1:1.0: Entity type for entity Extension 4 was not initialized!
[  112.691637] uvcvideo 1-1:1.0: Entity type for entity Processing 3 was not initialized!
[  112.691642] uvcvideo 1-1:1.0: Entity type for entity Camera 1 was not initialized!
[  112.692213] input: USB 2.0 Camera as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/input/input13
[  112.702685] usb 1-1: 3:1: cannot get freq at ep 0x84
[  112.794212] usb 1-1: 3:1: cannot get freq at ep 0x84
[  112.798211] usb 1-1: 3:1: cannot get freq at ep 0x84
Куда копнуть в данном случае?

Ответ на: комментарий от Berluskoni

Зависит от дистра. На gentoo нужно было собирать с такими флагами:

dev-qt/qtmultimedia:5 gstreamer
media-libs/libv4l jpeg
media-libs/gst-plugins-base:1.0 theora

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

Поставил разрешение 640х480 и заработало, но камера 2Мп, если ставить выше разрешение, то та же ошибка.

Berluskoni ★★
() автор топика
Ответ на: комментарий от Berluskoni

но камера 2Мп

На коробке написано? Это ничего не значит. У меня была web камера, которая под виндой могла в большее разрешение, чем под линуксом. Всё дело в драйверах.

ox55ff ★★★★★
()
Ответ на: комментарий от Berluskoni

А как это проверить?

Так я у тебя и спросил, откуда ты узнал про 2 МП? Из надписи на коробке или у тебя в линуксе в какой-то другой программе показывает на полном разрешении?

А так загружайся в винду, ставь дрова и софт от производителя и смотри.

И ещё. Эти 2МП могут оказаться маркетинговыми. Т.е. разрешение матрицы меньше, но чип программно масштабирует картинку. В таком случае гнаться за ними не стоит.

ox55ff ★★★★★
()
Ответ на: комментарий от Harald
ioctl: VIDIOC_ENUM_FMT
        Index       : 0
        Type        : Video Capture
        Pixel Format: 'YUYV'
        Name        : YUYV 4:2:2
                Size: Discrete 640x480
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 352x288
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 320x240
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 176x144
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 160x120
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 800x600
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 1280x720
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 1280x960
                        Interval: Discrete 0.111s (9.000 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 1280x1024
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 1600x1200
                        Interval: Discrete 0.200s (5.000 fps)

Berluskoni ★★
() автор топика
Ответ на: комментарий от Harald

Спасибо, разобрался. Нужно было установить QVideoFrame::Format_YUYV и заработало.

Berluskoni ★★
() автор топика
sudo apt install cheese

и все взлетит, у меня взлетают вебки которым майкрософт обрубил поддержку на версии хр

amd_amd ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.