EZ-WifiBroadcast DIY HD видео своими руками

svpcom

Оригинальный WFB на вход получает pipe и читает из него по байтам и нарезает их в wifi пакеты не учитывая содержимого. h264 кодек имеет блочную структуру - то есть передает кусками (I, P и B фреймы). То есть для начала декодирования кадра он должен получить фрейм целиком. Если byte-stream режется на пакеты без учета этих данных, то вы получите дополнительное latency, так как кодек будет ждать очередного wifi пакета, чтобы завершить начатый фрейм. Для передачи видео по сети давно придуман и используется протокол RTP, который нарезает видео в поток udp пакетов с учетом структуры фреймов. Соответственно и передавать через wifi их нужно 1:1, чтобы прием/потеря одного wifi пакета приводила к приему/потере одного RTP пакета, а не к вырезанию куска данных в произвольном месте потока (или еще хуже вставки мусора, что делает оригинальный WFB, разрешает прием пакетов с битым CRC).

РД00:

Не совсем понял, а вот это

raspivid <....> | gst-launch-1.0 fdsrc ! h264parse !  rtph264pay !  udpsink host=127.0.0.1 port=5600

разве не та же самая сериализация, только c дополнительной оберткой в RTP ?

khomyakk
Fisher15:

Подскажите, какую дальность можно ориентировочно получить с wifi адаптерами на связке RT3070L + RTC6649E вроде этих:

Сложно сказать. Для єтого нужно их попробовать. 3-4км с такими антеннами и такими вісотами - вообще не вопрос.
Только нужно что-то делать с аппой. Нужен ретранслятор. И понижать излучение аппы.

Fisher15

Мдя … вот что значит невнимательно читать … Я почему то был уверен, что радиоуправление тоже через этот линк работает, через уарты на воздушной и наземной стороне. Вроде впихнуть эти 128 kbit (или какой там поток у последовательных протоколов передачи sbus xbus ibus и т.д.) в этот поток 6-12 mbit не проблема …
Что ж, буду подбирать wifi адаптеры на 5.8 чтоб уйти от частоты 2.4 аппы. Большая дальность мне не нужна, 3((

Glinco

А есть требования по классу к картам сд для малинок, или 6 класс пойдет? Есть две 4ГБ 6 класса.

khomyakk
Fisher15:

Мдя … вот что значит невнимательно читать … Я почему то был уверен, что радиоуправление тоже через этот линк работает

Работает, не расстраивайся.
Но тогда нужно подумать о одинаковых передатчиках на земле и в воздухе, чтобы управление не отвалилось раньше видео.
Управление через этот линк пока ограничено 8-ю каналами.
Вот пример настройки через джойстик(аппу)
www.rcgroups.com/forums/showthread.php?2664393-EZ-…

Glinco:

А есть требования по классу к картам сд для малинок,

У меня 4 класса работали.
Другое дело, если на них видео писать.

РД00
svpcom:

Для передачи видео по сети давно придуман и используется протокол RTP, который нарезает видео в поток udp пакетов с учетом структуры фреймов.

Ясно, gstreamer использован как готовое и простое решение для парсинга потока и нарезания на кадры. Вопрос : а дополнительного overhead’а такая конструкция не создает ? Здесь gstreamer крутится еще одним параллельным процессом, плюс задействуется TCP/IP стек.

Судя по исходнику raspivid’а, он достает поток h264 из видеоподсистемы как раз по фреймам. Не даст ли выигрыша, если сразу в том же потоке отдавать их передатчику WFB, не задействуя ни pipes, ни TCP/IP ?

lelik
svpcom:

Для передачи видео по сети давно придуман и используется протокол RTP, который нарезает видео в поток udp пакетов с учетом структуры фреймов.

А нам-то RTP зачем ? Заголовки наверху добавлять, их передавать, внизу отрезать? Достаточно пакетизировать по границе NALU. И тут вариантов масса - и gstreamer, и raspivid с выводом в UDP, и еще масса способов.

И вообще, летали сегодня с USB-камерой, нанкой и 5 ГГц адаптером на 8812AU со встроенными антеннами и мощностью аж 18 dBm (ок. 60 мВт). Параллельно летал спарк от dji, дальность - 200-300м. Мы летим на 500 (дальность берется по 0 дропов), качество картинки ничуть не хуже (много разного народу смотрело и сравнивало). Ноут с писалкой был занят, посему кино нет.

РД00
lelik:

летали сегодня с USB-камерой, нанкой и 5 ГГц адаптером на 8812AU

А сколько задержки добавляет USB-камера по сравнению с камерой RPi ?

lelik
khomyakk:

Образ для Нанки пересобирался?

Собирался с нуля. Совсем с нуля.

РД00:

А сколько задержки добавляет USB-камера по сравнению с камерой RPi ?

Не мерял в цифрах. По ощущениям человека на ручках - сравнимо с классикой.

schs
lelik:

Ноут с писалкой был занят, посему кино нет.

Если несложно, запишите как нибудь, интересно глянуть.

khomyakk
lelik:

Собирался с нуля. Совсем с нуля.

Если всё работает стабильно и ті не ограничен финансовіми обязательствами-может нам стоит переходить на Нанки?

lelik
khomyakk:

Если всё работает стабильно и ті не ограничен финансовіми обязательствами-может нам стоит переходить на Нанки?

  1. Прошивка кое-как заработала сегодня в 2 ночи, в обед она была в воздухе, какая стабильность? 1. Работы ведутся по заказу, результатами распоряжаюсь не я. 2. Нанка - первая жертва, в столе еще пара платформ.
schs:

Если несложно, запишите как нибудь, интересно глянуть.

Самому интересно. Но тут уже как получится - или на этой неделе успею, или уже по снегу.

user1321

Добрый день!
lelik, коллеги заметили следующее поведение вашего ISO образа:
Всё ли работает у Вас?

With the 20181003 image, the bidirectional telemetry didn’t work (only down telemetry).

With the 20181007 image, the telemetry is working fine (up and down), but there is no more video transmission !!

My setup : Alpha AWUS036ACH (8812) in the air, and AWUS1900 (8814) on the ground

tusik

А вот такие штуки на борту никак нельзя использовать mikrotik.com/product/RBGroove52HPnr2 ? Можно подключать камеры по езернету и есть своя ОС. Как бы адаптировать для нашего применения? В свое время пытался использовать убикьюти, дорого, максимум 12 км по земле и необходим ноутбук. Но можно было подключать разные камеры

lelik
user1321:

Добрый день!
My setup : Alpha AWUS036ACH (8812) in the air, and AWUS1900 (8814) on the ground

Сборку 20181003 надо удалить: плохая, негодная сборка. На сборке 0т 07.10 летаю ровно с этим сетапом, все чудно.

fpv_mutant

Мужики, WDR ни как не прикрутить к обычной камере (CSI)?

svpcom

Overhead не дает - gstreamer у меня отлично работает на Pi Zero. Использование UDP для коммуникации наоборот плюс - то есть можно использовать Pi Zero только как контроллер камеры, а в качестве основной системы - NEO2 (куда подключить телеметрию, WFB и тд). Еще можно немного уменьшить latency если вместо raspivid’а использовать github.com/thaytan/gst-rpicamsrc

РД00:

Ясно, gstreamer использован как готовое и простое решение для парсинга потока и нарезания на кадры. Вопрос : а дополнительного overhead’а такая конструкция не создает ? Здесь gstreamer крутится еще одним параллельным процессом, плюс задействуется TCP/IP стек.

Судя по исходнику raspivid’а, он достает поток h264 из видеоподсистемы как раз по фреймам. Не даст ли выигрыша, если сразу в том же потоке отдавать их передатчику WFB, не задействуя ни pipes, ни TCP/IP ?

А зачем писать свой bitstream парсер и изобретать велосипед (попутно собирая все грабли, так как например один фрейм состоит из нескольких NAL’ов и пока декодер не получит их все, он не начнет процесс отрисовки), если есть протокол, специально сделанный для передачи видео по сети с учетом потери пакетов? Плюс RTP поток на земле можно еще и завернуть в qgroundcontrol - он там будет отлчно показываться.

lelik:

А нам-то RTP зачем ? Заголовки наверху добавлять, их передавать, внизу отрезать? Достаточно пакетизировать по границе NALU. И тут вариантов масса - и gstreamer, и raspivid с выводом в UDP, и еще масса способов.

И вообще, летали сегодня с USB-камерой, нанкой и 5 ГГц адаптером на 8812AU со встроенными антеннами и мощностью аж 18 dBm (ок. 60 мВт). Параллельно летал спарк от dji, дальность - 200-300м. Мы летим на 500 (дальность берется по 0 дропов), качество картинки ничуть не хуже (много разного народу смотрело и сравнивало). Ноут с писалкой был занят, посему кино нет.

lelik
svpcom:

Еще можно немного уменьшить latency если вместо raspivid’а использовать github.com/thaytan/gst-rpicamsrc

У меня была идея написать wfbc sink для gstreamer 😃

khomyakk

Полетал сегодня немного, проверял в том числе и “починенный” бустер. Он так до конца не починился. При нормальном охлаждении в полёте картинка начала рушиться. Посадил, обмотал скотчем, немного спасло, но только скорость выше 50км\ч-и скотч не спасал. Так что на полку.
Перед этим ещё покрутил параметры камеры. Вроде получше стало.

svpcom

Никак. RPI поддерживает только 2 камеры, так как вся обрабока идет внутри проприетарной прошивки VideoCore IV. Единственное решение для WDR - использовать внешнюю USB/Ethernet камеру с аппаратным h264 и WDR. Но, например, камеры для видеонаблюдения имеют latency около секунды…

fpv_mutant:

Мужики, WDR ни как не прикрутить к обычной камере (CSI)?