Beaglebone Black Video Capture: ошибка "выберите время ожидания"
Эй, я следую учебнику Дерека Моллоя:
Использование веб-камеры 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 МБ / с.