Ivan21 0 17 ноября, 2023 Опубликовано 17 ноября, 2023 (изменено) · Жалоба Добрый день. Участвую в студенческой разработке и нам необходимо прикрутить 4 камеры и обработать с них видео поток данных. Пока все тестируем на Ubuntu и имеем следующий стенд: 1. Небольшие четыре видеокамеры 640x480, 320x240 2. USB-hub 3.0 на 4 порта Сейчас написали, что-то похожее на ЭТО: С одной камерой все отлично работает, но если сделать их 2 то уже пойдёт ошибка: No space left on device При этом, если подключить 4 камеры в порты самого системного блока компьютера, то картинка отображается очень даже хорошо. Для этого, для каждой камеры выполняется: ioctl(this->fd, VIDIOC_STREAMON, &type) Проблема сохраняется, если подключать камеры через usb-hub. Однако, мы решили проблему и делаем следующее: // camera->dBuf(); camera->streamOff(); camera_next->streamOn(); camera_next->qBuf(); // Мы запрашиваем буфер, отключаем стрим и запускаем стрим на следующей камере и сразу же кладем буфер в очередь. Такой костыль позволяет считывать с 4 камер подключенных к хабу, но фпс падает до 2-3 кадров в секунду, хотя до этого было на уровне 15 кадров. Используем v4l и SDL для отображения кадров. Собираемся потом портировать на девборд тинкер. Вопрос, как правильно работать с множеством подключенных камер? v4l2-ctl -d /dev/video2 --list-formats-ext ioctl: VIDIOC_ENUM_FMT Type: Video Capture [0]: 'YUYV' (YUYV 4:2:2) Size: Discrete 640x480 Interval: Discrete 0.033s (30.000 fps) Interval: Discrete 0.200s (5.000 fps) Size: Discrete 320x240 Interval: Discrete 0.067s (15.000 fps) Interval: Discrete 0.200s (5.000 fps) Изменено 17 ноября, 2023 пользователем Ivan21 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 17 ноября, 2023 Опубликовано 17 ноября, 2023 · Жалоба Так полосы, наверное, не хватает. Какой поток идет с одной камеры? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ivan21 0 17 ноября, 2023 Опубликовано 17 ноября, 2023 · Жалоба 4 часа назад, aaarrr сказал: Так полосы, наверное, не хватает. Какой поток идет с одной камеры? А как узнать какой поток идёт? Камера выдает видео в разрешении 640х480. Формат YUYV. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 87 18 ноября, 2023 Опубликовано 18 ноября, 2023 · Жалоба 8 часов назад, Ivan21 сказал: Камера выдает видео в разрешении 640х480. Формат YUYV. Сколько бит выделено на YUYV? Всё это перемножить на частоту кадра, а наверное компрессия там какая-нибудь. С другой стороны надо открыть даташит хаба и посмотреть сколько он может транслировать. Если нет, тогда вскрыть хаб и посмотреть что за чип там стоит и найти его даташит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_3m 9 18 ноября, 2023 Опубликовано 18 ноября, 2023 · Жалоба 14 часов назад, Ivan21 сказал: Добрый день. Участвую в студенческой разработке и нам необходимо прикрутить 4 камеры и обработать с них видео поток данных. Пока все тестируем на Ubuntu и имеем следующий стенд: 1. Небольшие четыре видеокамеры 640x480, 320x240 2. USB-hub 3.0 на 4 порта Сейчас написали, что-то похожее на ЭТО: С одной камерой все отлично работает, но если сделать их 2 то уже пойдёт ошибка: No space left on device При этом, если подключить 4 камеры в порты самого системного блока компьютера, то картинка отображается очень даже хорошо. Через USB 3 хаб ваши USB HS камеры в количестве более 1шт. работать не будут. На SO пишут: Цитата In USB 3.x specifications, electrically the USB 2.0 interface is completely independent from SuperSpeed path, it runs in parallel, on dedicated old-style D+/D- wires. Unlike USB 2.0, USB 3.x doesn't introduce "TT" (Transaction Translator), the USB 3.x super-speed transactions cannot be "translated" into HS USB 2.0 transactions. Если на пальцах то USB HS не конвертируется в USB SS, для совместимости в USB 3 добавили старый дремучий USB 2 и в хабе тоже дублируется, т.е USB3 хаб содержит 2 раздельных хаба для USB SS и USB HS/FS/LS. На интерфейсе HS не хватит полосы более чем на 1 камеру. Трансляторов SS-HS не существует. Когда вы втыкаете камеры в порты системника видимо оно идет на разные контроллеры. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ivan21 0 18 ноября, 2023 Опубликовано 18 ноября, 2023 · Жалоба 11 часов назад, _3m сказал: Через USB 3 хаб ваши USB HS камеры в количестве более 1шт. работать не будут. На SO пишут: Если на пальцах то USB HS не конвертируется в USB SS, для совместимости в USB 3 добавили старый дремучий USB 2 и в хабе тоже дублируется, т.е USB3 хаб содержит 2 раздельных хаба для USB SS и USB HS/FS/LS. На интерфейсе HS не хватит полосы более чем на 1 камеру. Трансляторов SS-HS не существует. Когда вы втыкаете камеры в порты системника видимо оно идет на разные контроллеры. А как можно было бы построить систему, чтобы заполучить изображение с 4 камер одновременно и чтоб картинка была стабильной? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 19 ноября, 2023 Опубликовано 19 ноября, 2023 · Жалоба Два варианта: 1. Подключить к разным хост-контроллерам на ПК 2. Уронить FPS до 5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ivan21 0 19 ноября, 2023 Опубликовано 19 ноября, 2023 · Жалоба 10 часов назад, aaarrr сказал: Два варианта: 1. Подключить к разным хост-контроллерам на ПК 2. Уронить FPS до 5 Результат всего этого проекта это небольшой девайс с обработкой видео данных с четырех камер. Может кажду камеру посадить на отдельный микроконтроллер, который будет считывать данные, а затем передавать в главный процессор? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 79 19 ноября, 2023 Опубликовано 19 ноября, 2023 · Жалоба * пересесть на ethernet, сырые 4*640*480*30*16 в гигабит пролезут * включить компрессию * если камеры не какие-то сильно специальные можно взять китайские cctv камеры с wifi, они там нынче чуть ли не от 5$ начинаются Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 19 ноября, 2023 Опубликовано 19 ноября, 2023 · Жалоба 1 hour ago, Ivan21 said: Может кажду камеру посадить на отдельный микроконтроллер, который будет считывать данные, а затем передавать в главный процессор? Каким способом передавать? 1 hour ago, Ivan21 said: Результат всего этого проекта это небольшой девайс с обработкой видео данных с четырех камер. Может, "главный процессор" девайса выбрать, исходя из возможности подключения к нему 4-х камер? Подробности нужны: какие камеры, какой ресурс нужен для обработки и т.п. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться