Успешно поработали с вашей базовой платой Hola-PC.
Пока она наши ожидания полностью оправдывает.
Приступили к работе с Hola-VCEB. И сразу же столкнулись с проблемой.
Смотрим, тупим, и в упор не поймем, как подключить 2- или 3 камеры.
Скрипт для одной работает нормально.
"
#!/bin/sh
modprobe mxc_v4l2_capture
ADV7180 это "АЦП" с мультиплексором на 6 каналов, он в принципе не сможет несколько каналов оцифровывать и потом как Вы себе представляете процессор будет жать несколько потоков (с этим и "пентиум" не справится) одновременно.
Как "правильно" переключать каналы я не знаю, возможно это уже в драйвере ADV7180 предусмотрено, в крайнем случае можно i2ctools на это натравить ...
вынужден не согласиться :) на i.mx6 жмет не CPU а полуаппаратный кодек - 16-битное DSP ядро с загружаемой в рантайме управляющей программой + блоки с аппаратной реализацией общих алгоритмов, так что обычные x86 совместимые CPU отдыхают. gstreamer теоретически поддерживает кодирование двух потоков одновременно
Да, я выразился косноязычно ... конечно CPU тут не причем.
Есть аппаратная корка для манипуляций над видеопотоком (сжатие, трансформация и т.п.), в первую очередь она не резиновая, скорее всего она предусматривает на 2 потока (т.к. CSI корки 2) но не более (хотя это больше мысли в слух, там ведь еще MIPI есть, надо доку смотреть).
Я на что хотел больше "возмутиться", ребята ждут по одному камерному интерфейсу несколько потоков - это даже теоретически невозможно, один поток - один интерфейс, если бы было по другому FS не стал бы заморачиваться интергацией в процессор двух отдельных CSI (второй на нашем железе не выводится).
Может высокоскоростной-дифференциальный MIPI интерфейс позволяет гнать сразу несколько потоков, но на нашем железе этот интерфейс не выведен.
Понятно. Спасибо за консультацию. А ждали работающего режима мультиплексирования для каждого из 6-ти входов. Нам достаточно и по одной картинке в секудну получать от каждого входа. Может кто сталкивался с мультиплексированием на ADV7180 и управлением им на этой плате?
Кадр в секунду - должно хватить с запасом, только возможно выкрутасы с синхронизацией возникнут - надо экспериментировать ...
Скорее всего вы первые подобным на этой связке озадачиваетесь, нужно ядро пересобирать с исключением ADV7180 с i2c шины, в противном случае из юзерспейса i2ctools к нему не смогут доступ получить.
VPU поддерживает многопоточную работу, главное чтобы хватило производительности и непрерывной физической памяти для буферов. Производительности хватит на кодирование двух HD потоков. 4 потока 720X576 проверял, работает.
Пример для 2- потоков. Это запускалось в двух копиях с источниками /dev/video0 и /dev/video1. Плата с двумя CSI, подключено 2 штуки ADV7180, дрова допиливались. Работает, но есть траблы: фрискейл официально не поддерживает работу аппаратного деинтерлейса при захвате видео, в Gstreamer/vpuenc есть недоработки из-за чего rtmp веб стриминг не работает.
gst-launch -e tvsrc device=/dev/video1 ! tee name=t ! queue ! 'video/x-raw-yuv,width=720,height=576' ! vpuenc codec=avc cbr=false quant=27 gopsize=200 seqheader-method=0 ! mp4mux faststart=true ! filesink location=sda1/video_g/file.mp4 t. ! queue ! mfw_ipucsc ! 'video/x-raw-yuv,format=(fourcc)I420' ! videorate ! 'video/x-raw-yuv,framerate=(fraction)25/2' ! videoscale method=0 ! 'video/x-raw-yuv,width=640,height=512' ! vpuenc codec=avc cbr=false quant=30 gopsize=50 seqheader-method=0 ! flvmux streamable=true ! tcpserversink host=192.168.1.103 port=5000