Итак, в нашем плеере (и в рцборде) появилась вожность дистанционного управления фото-видео техникой. Покажу на примере клёвой фотокамеры (точнее, "смартографа") Sony DSC-QX100.
Камера эта хоть и имеет разъём micro-USB, управляться по нему не умеет (а очень жаль). И не умеет отдавать видео LiveView по HDMI, так как выхода HDMI у неё нет (ещё больше жаль). Так что пришлось колдовать.
Управление доступно только по Wi-Fi, т.е. камера эта умеет работать как вайфай точка доступа. Виртурилка подключается к ней по этому самому вайфаю, одновременно с этим подключается к локальной сети (по второму вайфаю или по проводному езернету). Управление проихсходит как обычно - из плеера Virt2real Player. Есть специальная вкладка "Внешняя камера" в панели настроек, где имеется всё что нужно для щастья (настройки ISO, выдержки, диафрагмы и прочие фото-штучки). Даже управление зумом есть. Правда, зум у этой камеры не очень удобный, нельзя произвольное значение установить.
Запись видео исходного (то, которое с борта приходит) давно уже более-менее работает, только вот видеоредакторы его кушать не хотят, приходится прогонять софтинкой mkvmerge. В идеале конеш надо бы сделать чтоб сразу нормально писался, но пока не до этого.
С появлением HUD (оверлей с нарисованной телеметрией) встал вопрос - как записывать видео со всеми наложенными картинками. Сначала я думал писать видео как обычно, но при старте записи фиксировать таймстамп. И телеметрию писать в файлик с временными метками. Потом всё это дело прогонять в отдельной софтинке, которая будет совмещать родными методами гстримера видео и картинки по временнЫм меткам (синхронизация), результат кодировать в H264 и записывать всё в видеофайлик. Но это потребует множества телодвижений от юзера, что не очень желательно. Так что этот вариант оставляю на потом, пока пробую сделать более-менее на лету и малой кровью (не шибко напрягая проц компа).
Первое что на ум пришло - грабить картинку с экрана по координатам и размерам окна плеера. Это и было реализовано. Но для лучшего распараллеливания грабить будет отдельная мелкая софтинка, которая будет идти в комплекте с плеером.
Собссно, софтинка уже написана, с работой справляется отлично. Проц грузит, конечно, но раза в три меньше чем плеер, так что некритично. Запускается автоматически при старте плеера, но окошко не показывает, вызывается из менюшки плеера (ну или из виндовой панели задач).
Грабит окно плеера, кодирует полученное видео в H264 и, в зависимости от настроек, записывает в файл (пока только .FLV) или стримит по RTMP на медиасервер (или и то и другое одновременно, но проц тогда сильнее грузится).
Запись можно запускать из плеера, как обычно (кнопочка записи или нажатием клавиши Enter на клавиатуре). При этом будут одновременно писаться и исходный видеопоток, и окно плеера. Надо будет ещё добавить настройку в плеере, чтоб только либо одно либо другое писалось, но это уж в следующей версии.
Сумбурно (только проснулся), но основное вроде изложил.
На видео как раз фигурирует плеер, развёрнутый на полный экран (1920x1080)
После того как вчера опробовал управление беспроводной камерой, вспомнил что в админке поломалось управление DSLR по USB, так что наконец-то починил и его. Теперь ещё лучше работает. Но тут встал вопрос - как полученный с внешнего фотика кадр передать на землю (т.е. в Virt2real Player).
Фотка - файл, надо передать в плеер. Файлы обычно по TCP передают, но мы не ищем лёгких путей. Тем более что в плеере у меня TCP не водится, всё на UDP. А по UDP файлы передавать тот ещё головняк. Вспомнил было про tftp, но тут же его отмёл - отдельным процессом его неинтересно запускать, а исходники ковырять - неохота. К тому же tftp хорошо работает в локалке, когда коннект нормальный, а вот в наших обычных условиях он уже не так хорошо справляется с передачей.
Погуглил на тему сабжа - нигде ничего толкового не нашёл, только вот на всех форумах где задаются подобные вопросы народ сразу начинает пальцы гнуть и вопить что "юзай TCP". А мне нафиг не сдалось каждому долбодятлу объяснять что у нас только UDP, причём как в локалке, так и через инет как проводной, так и 3G/4G, а там жопа с линком бывает, UDP теряются конкретно.
Короче, заснуть вчера не получилось - до утра просидел, упорно шкодил. К утру таки нашкодил.
Вот такая оригинальная камера - . Выступает в роли точки доступа Wi-Fi (а точнее, Wi-Fi Direct). Своего экрана не имеет, все настройки и просмотр - со смартфона/планшета.
Соответственно, понадобилось сделать управление ею с виртурилки (из админки, для начала).
Хоть у этой камеры и есть USB порт для подключения к компу, управлять ею по USB нельзя, только фотки сливать. А жаль, т.к. управление по USB (через PTP) давно уже работает. Но у Sony всё по-своему, так что пришлось с нуля делать.
Вот что получилось. LiveView пока не работает но уже знаю как сделать.
Многие из тех кто общается с Виртурилкой часто матерятся из-за того устройство фиг найдёшь в сетке. Когда ip статичный - всё понятно, адрес известен, вбил в браузере и готово, админка вот она. Когда устройств много - уже сложнее, надо помнить у кого какой адрес. А когда ip динамический - начинаются проблемы, т.к. неизвестно какой именно айпишник девайс получит. Можно, конечно, посмотреть в логах роутера, какой адрес был выделен, но это изврат полный.
Аналоговые модули у меня лежат, сегодня-завтра, надеюсь, доставлю их в магазин, так что уже вот-вот в продаже. Должен был сегодня утром отвезти но всю ночь просидел за собиранием макетов для статьи про аналоговый вход, так что уже вырубаюсь и за руль не полезу.
Года полтора назад в детском магазине был прикуплен радиоуправляемый китайский танчик. Танчик довольно навороченный, с ИК боем и со звукоимитацией. Прикуплен был для раздраконивания и пробы применения Виртурилки. Как обычно, короче :-) Поиграли тогда им с Викой часик (пока аккум не сдох) и забыли.
А сегодня вот решил таки попробовать его собрать с нормальной начинкой. Выкинул все кишочки кроме моторчиков, воткнул железку, пару мелких регулей на моторы, ИК приёмники TSOP2238. ИК приёмников 4 штуки, по одному на борт (чтоб определять в какой борт засандалили, а не просто попадание засекать). Звукоимитацию не делал, ибо подходящего усилка под рукой нету.
Сборка заняла несколько часов - вся начинка прекрасно внутрь башни влазит, намного меньше гемора с подвижной башней (провода не перекручиваются). Вот оно, изначальное родное применение нашей Виртурилочки - встраивание в различные ездящие игрушки, для управления с видео. От родного аккума (Ni-Cd, 7.2V 400mAh) танчик около часа ездит. Когда родная электроника стояла - столько же жил.
В результате из детской игрушки с нестандартной системой ИК боя получился танчик, который могёт участвовать в боях со стандартными системами боя (Тамия, Хен-Лонг и т.д.). Рулит всем моя любимая РЦборда, так что сразу получаем и управление с мобил/планшетов плюс через инет.
Тот клёвый беленький снегоуборщик ("Снежок") сейчас на другой выставке позирует. "" на Горбушке. Если кому интересно - заходите, посмотрите, порулить им с планшета дадут. Если что, пароль как обычно - "Я от Лысого".
Просто так на нём ездить надоедает, надо грести что-нибудь. С натуральным снегом облом в связи с погодными условиями, так что насыпали муляж, но вполне достоверный и даже мокрый (лично щупал, реально мокро и скользко, химия рулит). Правда, загончик маленький для такой крупногабаритной тушки, но стопудово завтра забор сломают и будут гонять по всей территории (т.е. насколько вайфай пробьёт).
Просто мощная телега. Весит килограмм 40 (с аккумом автомобильным). Моторы по 12В 12А, по два на канал параллельно. Регуль наш мощный (два одноканальных на 35А). Управление через рцборду. Одновременно и по вифи и по обычному радиоканалу RC аппы. Кстати, в рцборде уже модуль PPM входа появился (пока на прерываниях, но на подходе аппаратный через пины RTO).