HLS (HttpLiveStreaming) против RTP (Транспортный протокол в реальном времени) на UDP для мобильного P2P?

Я тестирую аудио / видео P2P-соединение между мобильными устройствами.

Изучая WebRTC, я заметил, что обход NAT (использует сервер STUN), а пробивка UDP-отверстий является ключом к тому, чтобы сделать P2P возможным.

С другой стороны, я заметил, что HLS (HttpLiveStreaming) на устройствах iOS очень оптимизирован для потоковой передачи A / V в реальном времени и широко доступен даже с Android4.x (3.x нестабильно).

Итак, вот мой вопрос, использую ли я HLS для мобильного P2P:

а) HLS - это протокол TCP (HTTP), а не UDP, поэтому нет ли недостатка в производительности?

См .: TCP против UDP в видеопотоке

б) Как насчет обхода NAT? Будет ли проще, ведь HLS - это HTTP (порт: 80)? Я прочитал википедию http://en.wikipedia.org/wiki/HTTP_Live_Streaming

Поскольку в его запросах используются только стандартные HTTP-транзакции, HTTP Live Streaming может проходить через любой брандмауэр или прокси-сервер, пропускающий стандартный HTTP-трафик, в отличие от протоколов на основе UDP, таких как RTP. Это также позволяет доставлять контент по широко доступным CDN.

в) Как насчет совместимости устройств Android? Есть ли много проблем с запуском распространения StreamingLive?

Спасибо.


person Community    schedule 24.12.2013    source источник


Ответы (4)


Причина, по которой брандмауэры не являются проблемой для HLS, заключается в том, что это протокол клиент-сервер, в котором все запросы выполняются через HTTP на порт 80. Если вы реализуете приложение P2P, вы не сможете подключить его к порту ниже 1024, если у вас нет прав root.

Это означает, что обмен данными через HLS (порт 80) не будет работать для P2P. Если только у вас нет сервера перевода посередине, который сводит на нет цель P2P.

person jamix    schedule 27.12.2013

Сравнение потоковой передачи HTTP Live Streaming с потоковой передачей видео P2P через UDP / RTP почти похоже на сравнение яблок и апельсинов. Скорее апельсины и мандарины ... читайте дальше.

HTTP Live Streaming был разработан как протокол клиент-сервер без учета обхода P2P или NAT. Идея состоит в том, что потоковый сервер уже работает через HTTP / TCP и доступен из общедоступного Интернета, как если бы он был обычным веб-сервером. Ключевыми особенностями HLS являются его способность динамически переключать битрейт в зависимости от того, насколько хорошо клиент принимает поток. Если клиентское соединение с сервером перестает работать при попытке передать видео 1080p, он может прозрачно переключиться на отправку видео с более низким битрейтом (и, вероятно, вернуться к потоковой передаче с более высоким битрейтом, если условия сети улучшатся). Хороший пример: Netflix.

WebRTC и ICE были разработаны для двунаправленной потоковой передачи видео в реальном времени между устройствами, которые могут находиться за NAT. Таким образом, прохождение NAT через UDP намного проще, чем через TCP. UDP поддается работе в реальном времени (с меньшей задержкой), чем TCP. Большинство клиентов видеочата (например, Skype) имеют встроенные динамические настройки полосы пропускания в свои кодеки и протоколы для достижения чего-то похожего на то, что делает HLS.

Я полагаю, вы могли бы объединить TCP NAT Traveral и HLS вместе. Выполнение HLS через UDP подразумевает, что вы создаете уровень надежности, подобный TCP, поверх вашего потока UDP.

Надеюсь это поможет

person selbie    schedule 25.12.2013
comment
Спасибо, селби, в принципе, я понимаю, что вы описали. Мой вопрос a) разрешен сайтом, на который я указал в своем ответе (by myelf). для Q.b), мне интересно, как вы говорите, требуется обход TCP NAT, потому что это HTTP, я прав? Итак, В.в) Я думаю, это будет большой проблемой. - person ; 25.12.2013

http://www.garymcgath.com/streamingprotocols.html

HTTP-трансляция в реальном времени

Новой тенденцией в потоковой передаче является использование HTTP с протоколами, поддерживающими адаптивную скорость передачи данных. Теоретически это не подходит, поскольку HTTP с TCP / IP предназначен для надежной доставки, а не для поддержания постоянного потока, но с преобладанием высокоскоростных соединений в наши дни это не имеет большого значения. Компания Apple использует HTTP Live Streaming, также известную как HLS или Cupertino streaming. Он был разработан Apple для iOS и широко не поддерживается вне продуктов Apple. Long Tail Video предоставляет тестовую страницу, чтобы определить, поддерживает ли браузер HLS. Его спецификация доступна в виде Интернет-проекта. Черновик содержит проприетарные материалы, публикация производных работ запрещена.

Единственный допустимый формат списка воспроизведения - M3U Extended (.m3u или .m3u8), но формат потоков ограничен только реализацией.

person Community    schedule 25.12.2013

Я мог бы достичь P2P поверх HLS, используя WebRTC на Android с браузером Mozilla Firefox и двумя другими настольными браузерами (Chrome и Firefox) в том же рое.

Вот скриншот моей презентации об университете: https://www.dropbox.com/s/zyfgs4o8al9ovd0/Screenshot%202014-07-17%2019.58.15.png

Этот снимок экрана был сделан при доступе к http://bem.tv/demo.html.

Если вы хотите узнать больше, это мой главный проект, и я публикую свои достижения на http://bem.tv и http://github.com/bemtv.

person flavioribeiro    schedule 17.07.2014