Beaglebone Black Video Capture: ошибка "выберите время ожидания"

Эй, я следую учебнику Дерека Моллоя:

http://derekmolloy.ie/beaglebone/beaglebone-video-capture-and-image-processing-on-embedded-linux-using-opencv/

Использование веб-камеры Logitech C310, поддерживаемой драйверами Linux UVC.

root@beaglebone:/boneCV# v4l2-ctl --all
Driver Info (not using libv4l2):
        Driver name   : uvcvideo
        Card type     : UVC Camera (046d:081b)
        Bus info      : usb-musb-hdrc.1.auto-1
        Driver version: 3.8.13
        Capabilities  : 0x84000001
                Video Capture
                Streaming
Format Video Capture:
        Width/Height  : 640/480
        Pixel Format  : 'YUYV'
        Field         : None
        Bytes per Line: 1280
        Size Image    : 614400
        Colorspace    : SRGB
Crop Capability Video Capture:
        Bounds      : Left 0, Top 0, Width 640, Height 480
        Default     : Left 0, Top 0, Width 640, Height 480
        Pixel Aspect: 1/1
Video input : 0 (Camera 1: ok)
Streaming Parameters Video Capture:
        Capabilities     : timeperframe
        Frames per second: 30.000 (30/1)
        Read buffers     : 0
Priority: 2

Таким образом, мы видим, что Beagleboard читает его без проблем. Когда я пытаюсь захватить видео, я просто получаю эту ошибку:

root@beaglebone:/boneCV# ./capture -f -c 600 -o > output.raw
Force Format 1
select timeout

Глядя на другие темы, люди, похоже, не знают, как ответить на этот вопрос, может ли кто-нибудь с опытом в этом проекте помочь мне?

2 ответа

Решение

Ну, я могу сказать, что проблема решена. После перезагрузки и повторной попытки камеры через несколько часов она волшебным образом работает.

Единственное, что я изменил, так это вызов захвата, чтобы быть проще:

./capture -o > output.raw

Я еще не конвертировал необработанный файл в mpeg4, так как я устанавливаю ffmpeg при вводе этого текста, однако могу подтвердить, что захват неподвижных изображений работает. Размер файла файла output.raw является подтверждением того, что он действительно захватывает видео. Если кто-нибудь найдет это и застрянет, я буду рад оказать помощь, насколько смогу.

Странно, но кажется, что захват видео происходит только после первого использования программы захвата изображений. Поэтому должно быть что-то, что инициализирует граббер, чего не происходит при захвате.

ОБНОВЛЕНИЕ: Хорошо, оказывается, что видео режим YUYV не работает, но mjpeg работает, переводя его в инициализированный режим mjpeg режима захвата, и именно поэтому он работал. Не уверен, почему YUYV еще не работает.

Если вы сравните размер изображения YUYV и MJPEG, вы заметите, что первое намного больше, чем второе. BBB имеет ограниченную полосу пропускания на своем USB-порту, поэтому вы не можете работать с камерой в формате YUYV. MJPEG выводит сжатый видеопоток. Различные версии opencv имеют тенденцию изменять разрешение, которое вы устанавливаете v4l2-ctl команда, поэтому вы должны изменить разрешение в коде boneCV. Я не уверен, как это делается в C++, но в Python, проверьте изменение разрешения камеры в коде opencv. По словам Мэтью, ограничения пропускной способности он проверил и обнаружил, что пропускная способность составляет 13,2 МБ / с.

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