libv4l2: ошибка при включении потока: неверный аргумент VIDIOC_STREAMON: неверный аргумент

Я работаю над камерой с использованием opencv 3.0.0 и C ++ с Ubuntu 14.04,

Когда я запускаю программу с помощью камеры и останавливаю ее с помощью Ctrl + C , я не могу запустить его во второй раз, и это дает мне следующее:

libv4l2: error turning on stream: Invalid argument
VIDIOC_STREAMON: Invalid argument
Cannot read a frame from video stream

Я пробовал lsusb и камеру (она встроена в ноутбук, а не внешний ) не признается. Также с cheeze он говорит, что при попытке открыть камеру произошла ошибка.

Единственное решение - перезагрузить ноутбук.

Любое предложение будет оценено :) спасибо

3
задан 21 March 2017 в 17:34

3 ответа

Этот occure, когда камера не выпущена Вашей программой - например, когда Вы убиваете его, используя Ctrl + C . Вы можете использовать таможенный способ выйти, петля чтения камеры - например, ждут Esc :

while (1) { // camera loop
    cap.read(frame);
    ...
    (frame processing)
    ...
    if (waitKey(20) == 27) { // wait for 'Esc' key press for 20ms
        break; //  if 'Esc' key is pressed, break loop
    }
}

Или лучше, Вы можете поймать Ctrl + C (сигнал SIGINT):

bool stop = false;

void sigIntHandler(int signal) {
    stop = true;
}


std::signal(SIGINT, sigIntHandler);

while (!stop) { // camera loop
    cap.read(frame);
    ...
    (frame processing)
    ...
}

См.: обработка Сигнала в C ++ ссылка

3
ответ дан 22 March 2017 в 03:34
  • 1
    @heynnema: после изменения размеров (увеличения) 16,04 разделов, там другой шаг, который я должен выполнить для конфигурирования Ubuntu для использования большего раздела? – gatorback 29 December 2016 в 13:39

Проблема здесь с ядром

sudo apt-get install linux-generic-lts-utopic

, Это добилось цели для меня

0
ответ дан 22 March 2017 в 03:34
  • 1
    Нет. Конечно, не видя снимок экрана gparted, который я попросил, я могу пропускать что-то. Хорошо... Вы могли сделать chkdsk на разделе Windows и fsck на разделе Ubuntu. – heynnema 29 December 2016 в 13:41

Вы не упоминаете свою платформу, но на Raspberry Pi, эта ошибка может произойти, когда выполнение видеосъемки с помощью v4l2 драйвера требует и когда память GPU не установлена на уровне 128 МБ или больше. Выполненный sudo raspi-config и корректируют его к 128 использованиям меню.

0
ответ дан 22 March 2017 в 03:34

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

Похожие вопросы: