Беспроводная передача видео в full HD

Glinco

На ста милливаттах? На сказку смахивает.

Прелесть, он совместим с АПМ и Пиксхоком, то есть поддерживает Мавлинк. Одно не ясно - на фотках нет выхода с приемника. Непонятно, как он цепляется к очкам/шлему.

Борис_Х
msv:

Проверил свою поделку. Результат по задержке получился весьма скромный, ~220ms. Но при этом минимум два кадра в буфере хоста (для плавного воспроизведения рендером), а это ~70ms.
Тест.

Сергей, какую версию Raspberry используете для опытов?

oleg70
schs:

Завляют 1920*1080p@30,
Ground control with the 14db directional antenna(custom), transmission distance over 5km;

Это лишний раз подтверждает мой тезис: что Wi-Fi вполне себе справится с любым потоком, другими словами такого “железа” как raspberrypi вполне достаточно, всё дело в софте…
За годы существования, линукс превратился просто в монстра, не многие могут опуститься до уровня его ядра…

msv
Glinco:

Мда, 720*480 - это даже не ПАЛ.

Уж, звиняйте, больше мой ноут не потянул… Но даже в таком разрешении картинка несравнима с аналогом.

oleg70:

За годы существования, линукс превратился просто в монстра

имхо: Ох, не там вы видите злодея… 😃

Борис_Х:

какую версию Raspberry используете

У меня Pi2.
ЗЫ Из готового, на удивление мне понравилась классическая связка raspvid+netcat -> netcat+mplayer.

oleg70
msv:

больше мой ноут не потянул…

Хотелось оценить возможности raspberry по “упаковке” пакетов в стрим…
В принципе все сходится: 720х480 - 220 мсек, а при 1280х720 как раз ожидается ~ 0.4 секунды (у меня так и вышло, навскидку)

msv:

Ох, не там вы видите злодея…

Возможно, но по факту, элементарная задача по транспорту пакетов из “отправителя к получателю” сводится в основном к борьбе со всевозможными костылями и ограничениями самой операционной системы, так как она в принципе не обязана Вам быстро и вовремя что то делать, уж очень навороченная и умная… Без нее, на голом железе все летало бы со свистом.))))

schs
oleg70:

то лишний раз подтверждает мой тезис: что Wi-Fi вполне себе справится с любым потоком,

Там ни разу не Wi-Fi, хоть и тот же частотный диапазон.

oleg70
schs:

Там ни разу не Wi-Fi

А по моему это всеж 802.11ac

Glinco
msv:

Уж, звиняйте, больше мой ноут не потянул… Но даже в таком разрешении картинка несравнима с аналогом.

Я не спорю что цифра лучше. Но при таком разрешении разница откуда? Пал дает такое же.

Меня оч расстраевает лаг. Даже без тормозов камеры, которые значительны, линк тоже дает его.
А те, что без лага, стоят как мост.

polarfox
Glinco:

На ста милливаттах? На сказку смахивает.

С этой штукой

schs:

Ground control with the 14db directional antenna

Почему нет?Очень даже возможно.В этой конкретной коробочке на мой взгляд плохо то, что нет подключения кабелем к монитору,только к планшету по ви-фи и то, что она работает в диапазоне 5,8ГГц

Glinco

Так они в описании товара на сосиску обещают 1-2 км.

Борис_Х
oleg70:

Хотелось оценить возможности raspberry по “упаковке” пакетов в стрим…
В принципе все сходится: 720х480 - 220 мсек, а при 1280х720 как раз ожидается ~ 0.4 секунды (у меня так и вышло, навскидку)

При испытаниях на небольшой дистанции у меня получается практически одинаковая задержка вне зависимости от разрешения. Пробовал от 640х480 до 1920х1080 (на своём квадрокоптере оставил 1080х720, в качестве монитора использую Air 2). Лаг и качество картинки вполне летабельные

oleg70
Борис_Х:

Лаг и качество картинки вполне летабельные

Могу я задать вопрос по настройке Gstreamer ?

Борис_Х
oleg70:

Могу я задать вопрос по настройке Gstreamer ?

Да, конечно. Если интересует именно настройка Gstreamer, а не установка (на последних дистрибутивах Raspbian именно с ней возникает большинство проблем), то вот ссылка, которой я руководствовался bluerobotics.com/…/how-to-see-video-in-qgroundcont…

oleg70
Борис_Х:

настройка Gstreamer

Не понятно назначение и смысл параметра "caps= " (на приемной стороне), в сети много примеров, в некоторых из них сей параметр вообще рекомендуют копировать из сообщения потока на передающей стороне… и превращается он в длиннющую непонятную абракадабру, причем у кого то он в кавычках, у кого нет… и общий принцип его создания - не пойму…
Короче, если можно, внесите ясность… - что это…

Борис_Х
oleg70:

Не понятно назначение и смысл параметра "caps= " (на приемной стороне)

Олег, если честно, первый раз сталкиваюсь c оператором caps. Судя по всему, он содержит в себе спецификацию передаваемого потока. Я пошёл по пути наименьшего сопротивления. Вот команда, которую я использую на Raspberry с модулем камеры:

raspivid -n -fl -w 1280 -h 720 -b 10000000 -fps 30 -t 0 -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=10 pt=96 ! udpsink host=<remote ip> port=5600

На принимающей стороне (на планшете) просто установлена последняя версия QGroundcontrol с вшитой поддержкой Gstreamer. Никакой код не требуется.

oleg70
Борис_Х:

первый раз сталкиваюсь c оператором caps

Я тут пол интернета перечитал на эту тему)))… в основном все примеры от авторов статей выглядят по разному, тут еще разные версии самого стриммера, разные платформы,…
Вещь похоже мощная и гибкая но разобраться в этой каше очень сложно…
По факту, у меня щас передача пакетов идет, а на приеме потока что то не клеится (mplayer отказывается понимать входящий формат)…

28 days later
macrokernel

oleg70, Борис Х,

Какой транспортный протокол вы используете для передачи видео - UDP? В системах видеоконференцсвязи используется протокол RTP. Может, стоит его попробовать? Вроде бы что-то есть под Linux для RTP. Навскидку гугл кое-что нашел.

Ещё кто-то тут говорил про броадкаст. Может быть стоит попробовать? Я так понимаю, что при широковещательной рассылке уменьшаются накладные расходы на канальном уровне - экономия на ARP-запросах?

Борис_Х
macrokernel:

oleg70, Борис Х,

Какой транспортный протокол вы используете для передачи видео - UDP? В системах видеоконференцсвязи используется протокол RTP. Может, стоит его попробовать? Вроде бы что-то есть под Linux для RTP. Навскидку гугл кое-что нашел.

Сергей, я так глубоко не копал… Для видео использую стандартный gstreamer, не углубляясь в его работу. Подозреваю, что он использует именно RTP протокол

Борис_Х
macrokernel:

Ещё кто-то тут говорил про броадкаст. Может быть стоит попробовать? Я так понимаю, что при широковещательной рассылке уменьшаются накладные расходы на канальном уровне - экономия на ARP-запросах?

Если для вас не принципиально наличие двусторонней связи, то wi-fi broadcast даст определённые преимущества. Как минимум, уменьшится лаг и увеличится дальность.

macrokernel:

Может быть gstreamer-у надо указать какие-нибудь RTP-параметры в явном виде?
…freedesktop.org/…/gst-plugins-good-plugins-plugin…

Какое железо вы планируете использовать? Вы уже запускали gstreamer на своей малине?

schs
macrokernel:

Какой транспортный протокол вы используете для передачи видео - UDP? В системах видеоконференцсвязи используется протокол RTP. Может, стоит его попробовать?

Это два разных уровня. RTP можно как по UDP так и по TCP пустить. RTP не лучший вариант в силу необходимости двустороннего обмена. Т.е. при обрыве связи будет процедура согласования, и так при каждом обрыве.