Захват видео на Android устройства

r1000
starfair:

Если видео идет в аналоговом режиме (а оно на дешевых камерах именно так и идет) то естественно, необходимо его сперва пробразовать в цифровой формат, а затем еще и вставить переданный видеофрейм в специально выделенную область экрана программы,и это конечно вносит некоторую задержку. А если учитывать что все это работает на Java, то само собой задержка есть, и весьма зримая. Но. опять же - смотря с какой целью использовать подобную связку. Меня например больше интересует дистанционное целеуказание для камеры на борту. Планшеты или смарт были бы идеальны для этих целей. Хотя, именно задержка в обработке вряд ли позволит использовать подобный девайс для контроля. Только для целепологания.
Опыт программирования для Андроида имеется, но проблема именно в отсутствии вменяемых средств ввода цифрового видеопотока в планшет.

Это же где вы нашли на джаве там что-то в V4L/V4L2? Там все написано на сях. Джава представляет только высокоуровневый API, которым сейчас динамические приложения не пользуются, так как подобная разработка ведется на NDK. По поводу задержек - вносятся они из-за двух проблем:

  1. Низкая скорость передачи с данных с камеры (Уже давно не проблема)
  2. Сложная постобработка (фильтрики, распознавание лиц/улыбок).
  3. Сжатие данных перед выводом на экран.
    В общем Nexus`ы позволяют подключать камеры с UVC протоколом (большинство) в режиме “из коробки”.
    Для других устройств, возможно нужны будут модули или кастомные ядра. Касаемо EasyCap и аналогичных захватчиков - теоретически вполне возможно. Вот только нафига, учитывая качество картинки на солнце, время разрядки при включенном экране и прочее?
starfair
r1000:

Это же где вы нашли на джаве там что-то в V4L/V4L2? Там все написано на сях. Джава представляет только высокоуровневый API, которым сейчас динамические приложения не пользуются, так как подобная разработка ведется на NDK. По поводу задержек - вносятся они из-за двух проблем:

  1. Низкая скорость передачи с данных с камеры (Уже давно не проблема)
  2. Сложная постобработка (фильтрики, распознавание лиц/улыбок).
  3. Сжатие данных перед выводом на экран.
    В общем Nexus`ы позволяют подключать камеры с UVC протоколом (большинство) в режиме “из коробки”.
    Для других устройств, возможно нужны будут модули или кастомные ядра. Касаемо EasyCap и аналогичных захватчиков - теоретически вполне возможно. Вот только нафига, учитывая качество картинки на солнце, время разрядки при включенном экране и прочее?

Признаю что не занимался поддержкой видео под Linux. Только что пошерстил вкратце инет, вроде как на уровне ядра и правда есть поддержка, но, сразу встанет такие вопросы:

  1. без поддержки на уровне API, работа даже через NDK будет без рутования невозможной, насколько я знаю о правах доступа и линковку с системными библиотеками уровня ядра под Линуксом.
  2. сам ввод видеопотока в систему чем организовывать? Через USB или WiFi - снова будут задержки. А прямых видеолинков почти не предусмотрено нигде на устройствах из коробки. UVC это конечно прекрасно, но каким боком они соотносятся с удаленным видеолинком? Насколько я понимаю, с выхода приемника будет идти обычный аналоговый видео поток. Как его преобразовать во что-то понятное UVC? Может кто знает о таких преобразователях?

Теперь по остальным пунктам:
Распознавание и фильтрация для современного процессора не проблема. А если пользоваться чем то на базе Intel Atom то можно вообще прикрутить библиотеки от Intel, для этих целей и разработаные.
Само сжатие - вообще ни разу не проблема, ибо везде есть аппаратные кодеки именно для работы именно с видеопотоком. Если нет необходимости конвертировать не лету 4К в 640на480, то думаю проблем быть не должно.
Время работы включенного экрана - 3-4 часа видео вполне нормальное время для нынешних девайсов. Для наших целей - за глаза, по моему

Вот кстати и сразу нашел нужный девайс. Правда, пишут что есть какие то проблемы при наличии внутренней камеры. Но, думаю что поскольку это работает на уровне UVC, то вполне можно отключать встроенную камеру из системы программным путем. Но надо курить мануалы конечно. А вообще - и попробовать, благо не так уж и дорого стоит.

starfair

Кстати вот еще один очень заманчивый проект. Насколько я понимаю, как раз все что нужно. примерно уже есть в данной платке. Только навесить обвязку. Единственное что нет пока вывода на сенсорные экраны. Но в теории, все вполне возможно, тем более что цена на них у китайцев шапошная.

sashaNar
hudognik:

был usb host

USB OTG через переходник реальзован на 90% устройств, особенно на брендовых. А аппаратно и програмно это то же самое, что и обычный юсб.

freefly

Собственно когда я создавал эту тему, мысли были такие. Нужно промежуточное устройство между av сигналом и устройством на андройде (планшет, фаблет, планфон?), которое будет преобразовывать аналоговую картинку для андройда. Соединяется все это через юсб-хост. А устройство уже имеется - EasyCap.

Я от темы немного отошел, но смотрю что за более чем полгода, прогресс налицо:
pccar.ru/showthread.php?t=19390
pccar.ru/showthread.php?t=17970
Кто попробует?

yur1x
freefly:

Кто попробует?

Жаль видео приёмник сдох. Попробую что нибудь придумать, остальное есть.

11 days later
nemo61

Попробовать то можно. Вот только у меня планшет на процессоре А9 и я не смог найти исходники на него.

freefly
lenin2000:

это случайно не то что надо?

ну если вам надо полетать в пределах 10-20 метров от себя, то почему бы и нет?

RSmol

www.aliexpress.com/item/…/903119008.html

Вот такая штука не подойдет для этой цели?
В неё втыкается приемник, а на планшете по wifi транслируется видео.
К тому же как писалку по идее можно использовать

Илья_МГУ

Джентльмены, кто чего-нибудь понял в этой инструкции: www.pccar.ru/showthread.php?t=19390 ?

Без перевода с жаргона программистов на человеческий язык вообще тяжко 😃

Как следует трактовать данные фразы:
Сорцы stk1160 v.0.9.4
github.com/toxeh/stk1160 (нужно обновить, по ссылке возможно уже не актуальные)
-вырезан звук AC97
-оптимизация для ядра v3.1.10 (nexus7 2012)

Компилим для своих железок сами…или через hex-редактор правим vermagic модулей под свое ядро.

или :

Патчи для установки через рекавери:
Устанавливается поверх прошивки и включает в себя:
-Новые драйвера stk1160 v.0.9.4(включены по-умолчанию) и старый easycap.ko
-Скрипт для автозагрузки в /etc/init.d
-Перепакованный boot.img. Добавлены нужные права на устройства в uventd.grouper.rc. То есть теперь нет необходимости выставлять права на устройства в /dev/video0, video1, ttyUSB0, и т.д.

install_qv4l2_easycap_nexus7.zip - Для последнего билда “тимуровской” прошивки USBROM cm-10.1-20130817-USBROM Update. 09.01.2014

Есть нужный изикап, но даже не знаю с какого места подступиться. Кто-нибудь разобрался? Как я понял, там большая пляска с бубном ради того, чтобы камера включалась при включении задней передачи. Для фпв этого не требуется, можно без напрягов вручную запускать Каркам.

starfair
Илья_МГУ:

Джентльмены, кто чего-нибудь понял в этой инструкции: www.pccar.ru/showthread.php?t=19390 ?

Без перевода с жаргона программистов на человеческий язык вообще тяжко 😃

Как следует трактовать данные фразы:
Сорцы stk1160 v.0.9.4
github.com/toxeh/stk1160 (нужно обновить, по ссылке возможно уже не актуальные)
-вырезан звук AC97
-оптимизация для ядра v3.1.10 (nexus7 2012)

Компилим для своих железок сами…или через hex-редактор правим vermagic модулей под свое ядро.

или :

Патчи для установки через рекавери:
Устанавливается поверх прошивки и включает в себя:
-Новые драйвера stk1160 v.0.9.4(включены по-умолчанию) и старый easycap.ko
-Скрипт для автозагрузки в /etc/init.d
-Перепакованный boot.img. Добавлены нужные права на устройства в uventd.grouper.rc. То есть теперь нет необходимости выставлять права на устройства в /dev/video0, video1, ttyUSB0, и т.д.

install_qv4l2_easycap_nexus7.zip - Для последнего билда “тимуровской” прошивки USBROM cm-10.1-20130817-USBROM Update. 09.01.2014

Есть нужный изикап, но даже не знаю с какого места подступиться. Кто-нибудь разобрался? Как я понял, там большая пляска с бубном ради того, чтобы камера включалась при включении задней передачи. Для фпв этого не требуется, можно без напрягов вручную запускать Каркам.

Честно говоря, не смотрел особо что там да как реализовано, но там надо вносить кое какие правки, перед тем как компилировать под использование в Android. Или же использовать готовую версию, которая как я понимаю, инсталируется через рекавери.
Вообще, получается в свое устройство (не CM 10.1 под Nexus 7), все делается на свой страх и риск. Драйвера то встанут, вполне может быть что и права заработают, но как бeдет отрабатывать на стоке, или цианогенмоде под другое устройство - не понятно. Только ручками ставить и делать эксперимент.
А если компилить - нужно через NDK, ну и в среде поддерживающей C под ARM, в том же Eclipse. Может попозже, займусь поглубже этим вопросом, ибо сам очень интересуюсь созданием следящей системы прямо на борту коптера

nemo61

Я сначала заинтересовался, но потом прочитал: “-владельцы девайсов на Rockchip RK3066\RK3188 - курят в сторонке”.
А у меня планшет на RK3188.

2 months later
freefly

Судя по тексту из адреса ссылки, речь идет о линейке планшетов microsoft surface (версии pro) , c процессорами intel и работающих под полноценной версией операционной системы windows 8. Следовательно, если планшет на винде, у планшета есть юсб вход - то изикап заработает как милый.
Только вот тема у нас называется Захват видео на Android устройства , а устройства с windows немного не подходят под данную категорию.

kak-dela007

А вот интересно, чисто в порядке бреда… Если на камере есть выход HDMI, и туда подключить модуль андроида (андроид TV), можно будет связываться с планшетом по вайфай, и передавать туда видео?

starfair
kak-dela007:

А вот интересно, чисто в порядке бреда… Если на камере есть выход HDMI, и туда подключить модуль андроида (андроид TV), можно будет связываться с планшетом по вайфай, и передавать туда видео?

Будет сильная задержка. Собственно. нечто подобное из коробки это та же GoPro 3 версии с конектом по WiFi. В 3+ они ее снизили до 1 секунды, но это никуда не годится для реалтаймовской съемки или тем более, руления устройством. Там даже десятки миллисекунд порой много чего решают

kak-dela007

Всегда думал, что с гопро по вайфаю можно только картинками перекидываться и готовыми видео. Тогда встает вопрос: как перевести аналоговое или цифровое видео в сигнал вайфай, и чтобы его поймал и распознал планшет?

Или, если вернуться к проводам, этим кто-то уже пользовался? ru.aliexpress.com/item/…/1350836141.html

starfair

Вроде с третьей версии GoPro такая функция имеется. Ну, кстати, есть еще ArDrone. Там тоже видео по WiFi транслируется на планшеты. По мне так особого смысла в вашей идее нет, так как все равно будет существенная задержка из-за особенности обработки самого сигнала WiFi (дополнительные кодирования-декодирования пакетов, плюс контроль целостности). В общем - для быстро меняющихся ситуаций такой способ не годится