EZ-WifiBroadcast DIY HD видео своими руками
PI Camera сейчас под рукой нет, но например Kurokesu C1 у меня дает 61ms
—
gst-launch-1.0 v4l2src device=$device ! ‘video/x-h264,width=1920,height=1080,framerate=30/1,stream-format=byte-stream’ ! rtph264pay ! udpsink host=127.0.0.1 port=5600
gst-launch-1.0 udpsrc port=5600 caps=‘application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264’ ! rtph264depay ! avdec_h264 ! xvimagesink
—
В обоих случаях рендер был один и тот же, интересует же разница в 2.5 раза, а не абсолютные цифры
Ну RTSP камера не обязано быть тормозной - видеопоток там всеравно идет по RTP.
Ну RTSP камера не обязано быть тормозной - видеопоток там всеравно идет по RTP.
RTP там начинается только после хендшейка. А это - задержка, которую уже не убрать.
PI Camera сейчас под рукой нет, но например Kurokesu C1 у меня дает 61ms
У Вас 60 мс на локалхосте, у меня 100 мс между двумя хостами, все похоже.
Можно попросить содержимое /sys/bus/usb/devices/…/manufacturer для курокесы ?
Передача wifi пакета это 1-2ms. 40ms больше похоже на забитый внутреннюю очередь карты. Попробуйте уменьшить bitrate видео и увеличить размер RTP пакетов до максимального, чтобы карта успевала их передавать.
У Вас 60 мс на локалхосте, у меня 100 мс между двумя хостами, все похоже.
Раз уже подтянулись, давайте спасать летающих собратьев.
При подсоединении в полёте второго монитора или сброса приёмной части происходит сброс точки ДОМ, со всеми вытекающими неприятностями.
----
$ cat /sys/devices/pci0000:00/0000:00:14.0/usb3/3-2/manufacturer
Kurokesu
$ lsusb -d 0c45:6366
Bus 003 Device 018: ID 0c45:6366 Microdia
----
Можно попросить содержимое /sys/bus/usb/devices/…/manufacturer для курокесы ?
Сборка (бинарники) моей версии WFB для Raspberry PI:
github.com/svpcom/…/wifibroadcast_rpi.tar.gz
P.S. Это не полный образ для SD-карты, а только бинарники и скрипты для запуска. Образ подходит любой с пропатченым ядром для обычного WFB
При подсоединении в полёте второго монитора или сброса приёмной части происходит сброс точки ДОМ
Ага… Этот умелец при переконфигурации (сеть подключили, монитор аль еще чего) рестартует osd. А оно при запуске координаты из первый пакета
GLOBAL_POSITION_INT считает за home. Боюсь, что терапия здесь не поможет, сильно глубоко лезть надо.
P.S. Стрелка на дом тоже должна слетать
P.P.S. Надо osd перелопачивать для работы с LOCAL_POSITION_NED.
Сборка (бинарники) моей версии WFB OSD для Raspberry PI
github.com/svpcom/…/wifibroadcast_osd.tar.gz
В отличии от оригинала не тормозит на Pi Zero.
В составе OSD и video player.
Для работы подходит любой (можно стандартный) образ для raspberry pi. Совместимо с Pi Zero и выше.
А оно при запуске координаты из первый пакета
Я ему предлагал обновлять точку дома по армингу, вроде писал, что исправил. Естественно и стрелка домой уплывает. А в пакетах Мавлинка точка дома не присутствует?
P.S. Это не полный образ для SD-карты, а только бинарники и скрипты для запуска. Образ подходит любой с пропатченым ядром для обычного WFB
Василий, было бы здорово, если будет инструкция, как всё это сделать. Для меня это тёмный лес.
Для работы подходит любой (можно стандартный) образ для raspberry pi. Совместимо с Pi Zero и выше.
Подскажите пожалуйста, как эту сборку внедрить в образ wfb?
В мавлинке оно только по запросу отдается.
Я ему предлагал обновлять точку дома по армингу, вроде писал, что исправил. Естественно и стрелка домой уплывает. А в пакетах Мавлинка точка дома не присутствует?
Как временной мерой можно предложить вбивать значение Дома в конфиг и считывать оттуда. Это ведь должно проще реализовываться?
Василий, а в твоей версии такого “бага” нет?
Может ещё использовать исходящую телеметрию и формировать запрос? Правда тогда нужно одинаковой мощности и чувствительности стики на наземной и воздушной части.
Я не помню, как все запускается в стандартном WFB образе, но я обычно все сервисы запускаю через systemd.
/lib/systemd/system/osd.service :
-------
[Unit]
Description=FPV OSD
After=network-online.target
[Service]
ExecStart=/usr/bin/osd
Type=simple
Restart=always
RestartSec=1s
TimeoutStopSec=10s
KillMode=control-group
[Install]
WantedBy=multi-user.target
-----
/lib/systemd/system/fpv.service :
-----
[Unit]
Description=FPV video
After=network-online.target
[Service]
ExecStart=/usr/bin/fpv_video.sh
Type=simple
Restart=always
RestartSec=1s
TimeoutStopSec=10s
KillMode=control-group
[Install]
WantedBy=multi-user.target
-----
systemctl daemon-reload
systemctl enable osd
systemctl enable fpv
systemctl start fpv
systemctl start osd
В настройках по умолчанию видео ожидается на порту UDP 5600, mavlink (для osd) на порту: udp 14550
Подскажите пожалуйста, как эту сборку внедрить в образ wfb?
Есть. Там принципиальная проблема в том, что home position не рассылается broadcast’ом. Его можно получить только по запросу и только после взлета.
Соответственно на одностороннем канале связи (как WFB ) это не получится. Как вариант его можно сохранять в файл и читать оттуда при старте OSD.
Как временной мерой можно предложить вбивать значение Дома в конфиг и считывать оттуда. Это ведь должно проще реализовываться?
Василий, а в твоей версии такого “бага” нет?
Может ещё использовать исходящую телеметрию и формировать запрос? Правда тогда нужно одинаковой мощности и чувствительности стики на наземной и воздушной части.
Может доведёшь свой проект до образа ?
Стрёмно летать с домом всё время сзади.
Сейчас уже многие используют двунаправленную телеметрию, похерив управление с аппы через канал связи, вроде всё работает. Я правда ещё не пробовал.
Если их не разносить по частотам или не делать подобие TDMA, то не получится - они будут коллизии производить. Ведь вся суть WFB как раз в выключении механизмов борьбы с коллизиями.
Может ещё использовать исходящую телеметрию и формировать запрос? Правда тогда нужно одинаковой мощности и чувствительности стики на наземной и воздушной части.
Это не так просто. Поясню: у меня, например, на борту как минимум 2 компьютера - NEO2 и Pi Zero для камеры.
На земле и того больше - 2 NEO2 (3 wifi (6 антенн) + SiK-radio (телеметрия 433MHz) + ADS-B приемник) + Pi Zero в FPV-шлеме (все это соединено Ethernet’ом).
Плюс я использую PX4 в качестве автопилота. Маловероятно, что кто-то захочет собрать такой-же setup как я. Соответвенно делать готовый образ для каждой из систем (их 5) смысла не имеет, так как все изменения относительно стандартного образа это и есть их интерграция между собой. Проще написать HOWTO как это все между собой связывать, чем делать образа, которые всеравно придется править после установки.
Может доведёшь свой проект до образа ?
Стрёмно летать с домом всё время сзади.
Сейчас уже многие используют двунаправленную телеметрию, похерив управление с аппы через канал связи, вроде всё работает. Я правда ещё не пробовал.
Я ему предлагал обновлять точку дома по армингу, вроде писал, что исправил. Естественно и стрелка домой уплывает. А в пакетах Мавлинка точка дома не присутствует?
Есть в мавлинке сообщение LOCAL_POSITION_NED, в котором передаются прямоугольные координаты ЛА относительно дома в North-East-Down. При наших (да и твоих 😃) расстояниях геодезией можно пренебречь и работать в них. Киньте мне кто-нибудь сырые мавлинковские логи, я покопаюсь, у меня свои будут нескоро.
Скажи откуда их вытащить и я запишу в следующем полёте.
Логи от Ez-Wifibroadcast подойдут?
Скажи откуда их вытащить и я запишу в следующем полёте.
С нижней малины /wbc_tmp/telemetrydowntmp.raw. Только учти, файл перезаписывается при каждом включении низа. Слетал, выключил, переписал.
Попробую вчерашний полет( от последнего подключения второго дисплея).
Видео тоже также там хранится?
Видео тоже также там хранится?
Про видео не скажу, оно мне без надобности.
Как раз и надо 😃
Чтобы не таскать писалку в поле для жаждущих слить кусочек видео с ЮСБ камеры. Если конечно у тебя приемная часть на Малине.