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

fpv_mutant

Читал ранее про это.Читал про вафлю,что из-за особенностей стандарта,не реализован или не в полной мере реализованы на аппаратном уровне те плюшки,что есть в lte/wimax устройствах.От вафли кроме применения бустеров много не дождешся.Но меня и 1-3 км устроит.Здесь где то выкладывали ссыль на проект (помоему Шефпилот),в котором модернизированная вафля имеля двусторонний линк (могу ошибатся) и была заявлена приемлемая дальность.Интересно,что то похожее запилить.Бинифит прикольно,но линк в одну сторону не интересно,имхо чтоб не гадить радио частоту,лучшебы один приемопередатчик юзать в двух направлениях.

Lazy

Чел…Ты читать уметь, да? Здесь не только лишь многие писали - 8-10 км на убукитовских железках вытягивается без проблем. Бинифит…

fpv_mutant

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

Artur1985

Здравствуйте.

Мой вопрос не совсем соответствует теме, Вы в основном летаете, а я пытаюсь плавать:). Но вопрос с передачей видео в режиме Full HD с частотой кадров 25 в секунду и минимальной задержкой <=0,2c. встал ребром.

Пытаюсь передать выше указанный поток в браузер. Из железа Raspberry Pi 2 + ее родная камера. Сеть 100Mbit, которая переходит в Wi-Fi пока g (54Mb\s), потом будет n (150-300Mbit\s). Пока, хочу передать видео на расстояние 20 метров по Wi-Fi. С одной стороны задача намного проще, тех, что Вы решаете, с другой стороны браузер (мне кажется, что иногда он является проблемой лага, хотя не уверен).

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

Пока попробовал UV4L с разрешением 720p получил задержку около 0,2 секунд. Так же попробовал GStreamer + RTMP получил Full HD с задержкой 0,3 секунды, но качеством хуже, чем у UV4L. Правда просто установил GStreamer, не знаю получу ли выгоду если скомпилирую его в системе.

Заранее благодарен.

Lazy

Эта, усуп…По делу есть что сказать?
Пробовал? Летал? Умеешь что то другим рассказать?

Artur1985
Lazy:

Эта, усуп…По делу есть что сказать?
Пробовал? Летал? Умеешь что то другим рассказать?

Не понял Вас, Вы обращаетесь ко мне?

Не летаю, хочу сделать Rov, но передача видео, как мне кажется тема общая для многих моделистов, не важно летаю, плавают и т.д… О чем уже говорил:

Artur1985:

Вы в основном летаете, а я пытаюсь плавать.

Если Вы хотите знать настройки для браузера, этих режимов, могу дать ссылку на ресурс, где с другом описал настройку для данных режимов, хотя к примеру UV4L ни чего делать не надо, просто установить с GStreamer немного по другому.

Lazy
Artur1985:

Не понял Вас, Вы обращаетесь ко мне?

Нет, конечно не к вам. 😃 Если 20 метров - то вам любой WiFi свисток для Pi подойдёт.

Artur1985
Lazy:

Нет, конечно не к вам.

Так и подумал.😃

Lazy:

Если 20 метров - то вам любой WiFi свисток для Pi подойдёт.

С самим Wi-Fi проблем нет, хотя скорее всего будет роутер с хорошей антенной.

А вот с софтом увы, пока переберешь все реализации, не понимая в какую сторону идти для получения нужного результата уйдет вечность. Сейчас пытаюсь запустить RaspberrIP-Camera (live555), а сколько их еще FFmpeg, Streamer попробовать скомпилировать, netcat-traditional, VLC, есть еще экзотика live555 (для Raspberry pi 1 говорят не плохо работала) и т.д.

fpv_mutant

Artur,20м вообще не расстояние,без напряга должно пробить,а вот с программной реализацией не подскажу,ибо сам из-за незаконченнвх планов пока отлижил малину с вайфай.Покурите ссыль binifitiv как то так она называется,вроде на этой странице упоминалась,но там реч поро связь между малинами,думаю можно малина>пк (юбунту/дебиан).В этом проккте нестандартный подход по передаче в эфир пакетов,а по вашей задаче думаю все элементарно.
Тупо организовать мост между устройствами и если линух,то типо пакетов gstreamer прогонять поток,а на базе win еще проще.

РД00
Artur1985:

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

Посмотрите в сторону GStreamer’а. Нетривиальная настройка, но и самый гибкий инструмент.

Вот, например - habrahabr.ru/post/153611/

Lazy
РД00:

Посмотрите в сторону

Скажите коллега, вы ещё 64 битовую не пробовали?

Artur1985

Только добрался до дома, нужно было посетить славный город Смоленск.

fpv_mutant:

.Покурите ссыль binifitiv как то так она называется,вроде на этой странице упоминалась,но там реч поро связь между малинами,думаю можно малина>пк (юбунту/дебиан). В этом проккте нестандартный подход по передаче в эфир пакетов,а по вашей задаче думаю все элементарно.
Тупо организовать мост между устройствами и если линух,то типо пакетов gstreamer прогонять поток,а на базе win еще проще.

Спасибо за совет, мне удалось запустить передачу между GStreamer на Win 7 64 bit и Raspberry по UDP, но задержку не тестировал.

Хочется именно браузер, вариант передачи между компьютерами рассматриваю как крайний. Кстати, к примеру на netcat-traditional передача между 2 linux системами обещают 100ms, сам не проверял.

РД00:

Посмотрите в сторону GStreamer’а. Нетривиальная настройка, но и самый гибкий инструмент.

Спасибо, скорее всего Вы правы, беглое знакомство GStreamer показало, что у него есть RTSP Server, как и поддержка RTMP, без сервера, но можно использовать crtmpserver, nginx. Как я понял еще много всего вкусного, есть поддержка OpenMax, не понятно есть ли OSD. Хотя его часто поминают за глюки и нестабильную работу, сам не замечал.

Но про нетривиальную настройку Вы правы, по крайней мере для меня, как Windows пользователя. Спасибо буду капать в эту сторону, хочу вначале заставить работать RaspberrIP-Camera. Товарищ обещает 200ms, правда нет подтверждения, что будет работать на Raspberry pi 2, локально запустил, работает отлично, сейчас пытаюсь запустить в браузере.

UDP. OSD у GStreamer есть, не знаю какая скорость, но пока не попробуешь не узнаешь.

Artur1985
fpv_mutant:

А зечем через браузер,если не секрет?

Конечно не секрет.😃

Идея в том, чтобы не просто сделать Rov, а сделать какую-то базу для Rov строителей, передача видео, наложение OSD, управление. Которую можно использовать для создания своих Rov, код будет открытым и кто угодно может присоединится к данной теме. Можно будет просто повторить, дополнить существующую, так и сделать свою реализации, тем самым помогая друг, другу.

Поэтому выбор пал на браузер, все таки у всех свои предпочтения кто-то работает на Win, кто-то на linux, Mac OS, Android и т.д., разное железо если потребуется использовать аппаратные кодеки и т.д. Сделать такую поддержку для не коммерческого проекта, где пока лишь 2 человека, просто не под силу. А сделать 1 общую реализацию есть шанс, надеюсь силы, времени и знаний хватит.

fpv_mutant

Идея хорошая,в принципе меня таже мысль и посетила,перед вопросом.Жаль что не все умеют править драйвера wifi модулей для реализации режима передачи broadcast.

Artur1985
fpv_mutant:

Идея хорошая

Спасибо.

fpv_mutant:

Жаль что не все умеют править драйвера wifi модулей для реализации режима передачи broadcast.

Тот кто ищет, то рано или поздно найдет.😃

Artur1985
Lazy:

Вот так с помощью OpenCV отрисовывается OSD на малинке.

P.S.
МапЭд не мой.

Большое спасибо.

Интересно сама библиотека, отлично описана есть множество материалов даже на русском. Да и робот, очень любопытный.

Lazy

Робот как робот, но ИМХО задача очень похожая на вашу.

РД00
Lazy:

Скажите коллега, вы ещё 64 битовую не пробовали?

Под Linux’ом именно 64 бит Gstreamer 1.0, и принципиальных отличий от Win32 Gstreamer 0.10 не увидел. Работает и то, и то.

Artur1985:

Но про нетривиальную настройку Вы правы, по крайней мере для меня, как Windows пользователя.

Мне здорово помогли вот эти статьи - habrahabr.ru/post/178813/ и эта шпаргалка - wiki.oz9aec.net/index.php/Gstreamer_cheat_sheet

Artur1985:

OSD у GStreamer есть

В зачаточном виде. Наложить субтитр можно, но не более.

fpv_mutant
Artur1985:

Спасибо.

Тот кто ищет, то рано или поздно найдет.😃

В проекте бинифитина я нашел драйвера,но под никс и под пару адаптеров,хотелось бы win,android…

Artur1985
Lazy:

Робот как робот, но ИМХО задача очень похожая на вашу

Похож, но не совсем.

Там очень интересная идея, он делает просто фото затем наложение OSD, получает это фото и дальше отправляет команду. Интересно получится ли делать наложение OSD в реальном времени, надо будет глянуть.

РД00:

Мне здорово помогли вот эти статьи - habrahabr.ru/post/178813/ и эта шпаргалка - wiki.oz9aec.net/index.php/Gstreamer_cheat_sheet

Спасибо буду изучать, пока просто пользовался примерами без понимания процесса.

РД00:

В зачаточном виде. Наложить субтитр можно, но не более.

Спасибо, за экономию моего времени, буду смотреть в сторону других.

fpv_mutant:

В проекте бинифитина я нашел драйвера,но под никс и под пару адаптеров,хотелось бы win,android…

Честно говоря не сталкивался. Слышал о таких режимах, правда не знал о том, что они требуют спец. драйверов. Как я понимаю Вы хотите организовать видео вещание не точка-точка, а точка-все клиенты сети.

РД00
fpv_mutant:

В проекте бинифитина я нашел драйвера,но под никс и под пару адаптеров,хотелось бы win,android…

У него нет никаких спецдрайверов, он пропатчил имеющийся для AR9271. А именно : а) в драйвере Linux установил фиксированную мощность (максимальную, 20 дБм), б) в файле firmware установил фиксированную полосу (есть версии 10 и 20 МБит/с). Файл firmware одинаков для всех Linux’ов, т.к. загружается в RAM адаптера и исполняется в нем. У меня он работал на Raspberry и ноутбуке. Драйвер нужно перекомпилировать под платформу, хотя максимальную мощность можно выставить и изменением региона (на Боливию).

Андроид базируется на Linux, но там скорее всего не поддержан сам чипсет и надо собирать кастомное ядро, под каждый планшет свое.

Про Win можно забыть сразу, там не поддерживается packet injection в принципе, а проект на нем основан.

Почему именно AR9271 - потому что он единственный показал сколько-нибудь приличную скорость в beacon mode, он пробовал еще 4, там все плохо и они непригодны.

Artur1985:

Как я понимаю Вы хотите организовать видео вещание не точка-точка, а точка-все клиенты сети.

Это проект, где WiFi адаптер используется в вещательном режиме - кидает пакеты в эфир и не разбирается, приняли их или нет, как аналоговый передатчик. Соответственно нет необходимости держать WiFi соединение. Это критично для самолетов и больших расстояний, но не для наземных роботов. См. …wordpress.com/wifibroadcast-analog-like-transmiss…

Trebis

Интересно, а кто нибудь пробовал использовать AHDH камеру типа такой со стандартным оборудованием 2.4 или 5.8 ггц и через подобный конвертер подключать к монитору? По идее работать должно, AHD по сути аналоговый сигнал с прогрессивной разверткой. Вопрос имеет ли это смысл, и стоит ли ожидать более высокого качества? Подробнее по AHD стандарту тут.