LINUX.ORG.RU

Альтернатива RTMP, будущее FLASH

 ,


3

4

Какие есть альтернативы протоколу Adobe RTMP для real time вещания? Сейчас тенденция к удалению флеша(в андроиде уже удалили, в ФФ вроде как через год удалят).
WebRTC подходит, в браузерах уже вроде хорошая поддержка, но серверных решений мало, нашел только 1 рабочий вариант - Kurento media server. Но его не получается поставить на Debain(пакеты есть полько под Ubuntu) и вообще у меня он дико тормозит уже на 10-20 стримах. Интересует прежде всего схема peer to many, т.е. чел со своего браузера вещает на сервер, а сервер раздает всем клиентам

Собственно самый главный вопрос: стоит ли вкладываться в flash или ждать развития html5 и тестировать его баги и тормоза..?

★★★★

Последнее исправление: gobot (всего исправлений: 1)

Сейчас имеет смысл поддерживать оба варианта, флеш как fallback. Html5 чёрт знает когда там доделают. А могли бы просто добавить в стандарт хотя бы обычный rtsp (причём, WebRTC основан на нём и так). А текущая ситуация я думаю ещё несколько лет провисит, когда для каждой платформы придётся поддерживать свой протокол (HLS для Apple, Флеш для Firefox, для Хрома что там, dash?).

Я тут недавно пилил html5 плеер для Icecast на основе jplayer... Основной поток там в vorbis, но для поддержки IE и Apple поднят параллельно в mp3 (транскод). В Firefox столкнулся с багом, который не фиксят уже три года. Пришлось городить костыль на JS.

А флеш уже не стоит использовать по умолчанию, его уже выпиливают на некоторых платформах (iOS, например).

FriendlyFire
()
Ответ на: комментарий от FriendlyFire

Да, webrtc основан на rtp, sip и он работает p2p отлично, хоть и с тормозами, но хромает именно сервеоная часть. Наприер у rtmp есть wowza, nginx rtmp, red5, adobe media server, тут же только сырой kurento. Начало хорошее но не видно тенденций. HLS не риал тайм, очень сильно отстает поток от вещания, пробовал на андроиде его. Mpeg dash развивает MS, тоже не RT, но почему флеш для фф, они же его вроде как собираются удалить после 2016 года.
Единственное получается нужно ждать допиливание webrtc и серверную часть, жду с 2013 года, а пока юзать флэш и nginx-rtmp

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

они же его вроде как собираются удалить после 2016 года

разве?

i-rinat ★★★★★
()

это зависит от.

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

Если можешь потерпеть, то надейся.

Куренто у тебя тормозит не потому, что он плохой, а потому что он транскодирует из человеческого h264 в больной гугловый vp8.

Мы сейчас бьемся над тем, что бы в FF завести вебртц без транскодинга.

max_lapshin ★★★★★
()
Ответ на: комментарий от gobot

но почему флеш для фф

Иногда нет возможности специально для ФФ дежать варианты медиафайлов в vorbis и webm. Хромум даже под линуксом играет mp3, например.

Adept_of_shreedom
()
Ответ на: комментарий от FriendlyFire

его уже выпиливают на некоторых платформах (iOS

Он там был вообще? Флеш можно смело закапывать - нет на мобильных платформах - не нужно.

Deleted
()
Ответ на: комментарий от max_lapshin

Куренто у тебя тормозит не потому, что он плохой, а потому что он транскодирует из человеческого h264 в больной гугловый vp8

Зачем он это делает? Мы это кто и зачем вы это делаете?

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

Это критический недостаток, потому что мобайл давно обогнал десктоп по числу устройств и продолжает наращивать численность.

Deleted
()
Ответ на: комментарий от max_lapshin

Больная видимо у тебя голова, но не vp8. Youtube уже давно конвертирует в vp9:

$ youtube-dl -F https://www.youtube.com/watch?v=L2thkx-kYNc | grep vp
278          webm       256x144    DASH video   58k , webm container, vp9, 13fps, video only, 2.53MiB
242          webm       426x240    DASH video   81k , vp9, 25fps, video only, 3.62MiB
243          webm       640x360    DASH video  168k , vp9, 25fps, video only, 7.05MiB
244          webm       854x480    DASH video  290k , vp9, 25fps, video only, 11.59MiB
247          webm       1280x720   DASH video  551k , vp9, 25fps, video only, 22.25MiB
248          webm       1920x1080  DASH video  965k , vp9, 25fps, video only, 38.73MiB
Deleted
()
Ответ на: комментарий от Deleted

С ростом согласен. Поэтому и ищу альтернативу flash, но пока не нахожу )

gobot ★★★★
() автор топика
Ответ на: комментарий от JN

Есть же JS H.264 декодер https://github.com/mbebenita/Broadway

Интересует rtmp на JS или любой другое решение real time вещание. Сейчас же только через флэш можно

gobot ★★★★
() автор топика
Ответ на: комментарий от Deleted

Ага, но только поддержка декодирования webm значительно и на порядок слабее на устройствах, чем у h264

На мобильных устройствах зачастую даже 'свободные' решения предпочитают h264, чтоб батарею не садить.

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

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 2)

Мне понравилась связка ffmpeg + nginx-rtmp + HLS + THEOPlayer. Тестировал под несколькими платформами (Windows, OS X, Linux, Blackberry, Android, iOS) и везде работало на ура. Вообще подписка стоит денег, но товарищи очень адекватные и охотно идут на контакт.

silw ★★★★★
()
Последнее исправление: silw (всего исправлений: 1)
Ответ на: комментарий от silw

Мне понравилась связка ffmpeg + nginx-rtmp + HLS

HLS значительно отстает от rtmp потока, пробовал я в той же связке, только плеер был jwplayer. У тебя как было?

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

Для ПК, вроде, я в итоге докрутил до дельты в ~ 0.5с между rtmp + jwplayer и hls + theoplayer. С мобильными получалось чуть больше. Но учитывая, что в целом задержка на сборку всех аудио и видеопотоков + транскодинг в h264 у меня была ~ 2-3c, то лишние полсекунды-секунда для моей задачи (трансляция лекций) погоды не делают.

silw ★★★★★
()
Ответ на: комментарий от fornlr

Да, там HLS

http://usher.justin.tv/api/channel/hls/vovapain.m3u8?token={%22user_id%22:null,%22channel%22:%22vovapain%22,%22expires%22:1444824562,%22chansub%22:{%22view_until%22:1924905600,%22restricted_bitrates%22:[]},%22private%22:{%22allowed_to_view%22:true},%22privileged%22:false,%22source_restricted%22:false}&sig=0018dd9ff3b1c92b45acc4c33bcbf6d492cf2288

Но HLS не real time...

gobot ★★★★
() автор топика

С WebRTC основная засада это MS и Apple ни те ни другие не хотят его втаскивать в свои поставки «из коробки» хотя в виде плагинов для IE он уже давно есть, и есть Bowser для iOS с потдержкой WebRTC. Причем для MS дело понятно - они опасаются что WebRTC им сильно попортит клиентскую базу Skype то с Apple не ясно почему они его не хотят втаскивать в сафари (гугл вроде как все сорци дает). Все говорят что если один из них (MS или Apple) таки подтянет WebRTC второму деватся некуда будет и он его подтянет довольно быстро. Но в таком состоянии WebRTC уже 3й год находится и подвижений в этом направлении особо не видно что а Apple что у MS (MS уже 3й год декларирует что они работают над интеграцией - но пока только работают).

А без потдержки клиентской части от MS и Apple расщитывать что ктото будет серьезно двигать серверную часть сильно не приходится.

По поводу peer-to-many если у вас есть человек с хорошиб пониманием и опытом RTP/RTCP (audio/video) то сделать совй сервер труда не соствавит (2-3 недели максимум с отладкой и чтением документации).

zaz ★★★★
()
Ответ на: комментарий от fornlr

поддержка декодирования webm значительно и на порядок слабее на устройствах, чем у h264

это пока. webm уже умеет в ha на последних девайсах кажется самсунга, думаю за остальными также не заржавеет. Ну и Youtube хранит 6(!) видео в vp9 различного разрешения для каждого ролика не просто так.

Лично для меня vp9 плох тем что требует серьезных ресурсов для кодирования, правда в h265 дела не намного лучше.

Deleted
()
Ответ на: комментарий от silw

Какие то особые настройки делал в nginx для постижения 0.5с? Я особо не копался, посмотрел что сильно отстает от rtmp и забил. Может стоит какой то тюнинг сделать в nginx

gobot ★★★★
() автор топика
Ответ на: комментарий от zaz

Да хрен бы с этим IE и Apple, вроде большинство Chrome, Opera и FF используют

А без потдержки клиентской части от MS и Apple расщитывать что ктото будет серьезно двигать серверную часть сильно не приходится

Да, серверных решений практически нет, один только Kurento

если у вас есть человек с хорошиб пониманием и опытом RTP/RTCP

Такого человека нет

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

Кстати как вариант вам можно поискать чистый SIP сервер который будет делать peer-to-many стриминг (по сипу). А уже перед ним поставить простой гейт WebRTC to SIP - я поиском таких гейтов особо не занималься но они должны быть (там все предельно просто, и часто на глаза мне попадались)

zaz ★★★★
()
Ответ на: комментарий от fornlr

На десктопе twitch работает нормально без флеша.

Это просто чудесно. Нашёл способ получить прямую ссылку на m3u8 и скормил его Flash версии flowplayer'а с HLS плагином. По виду поток не хуже «medium» в стандартном плеере Twitch, только процесс с Flash ест где-то 30% вместо 60%.

Кажется, они намеренно не делают Flash версию своего плеера лучше.

i-rinat ★★★★★
()
Ответ на: комментарий от gobot

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

Deleted
()
Ответ на: комментарий от gobot

Мне было интересно проверить именно Flash версию, так как на Twitch используют Flash и он там просто нереально жрёт CPU.

i-rinat ★★★★★
()
Ответ на: комментарий от gobot

Там не так много вариантов. Я крутил

hls_type
hls_fragment
hls_playlist_length
silw ★★★★★
()

Вкладываться в флеш бессмысленно. Его поддержка становится меньше везде с каждым днём. Я например, уже очень давно его везде выпилил.

Пока только ждать доведением данного функционала до ума в html5.

th3m3 ★★★★★
()
Ответ на: комментарий от gobot

он это делает, потому что изначально в webrtc был только vp8.

Это дурацкий и ненужный кодек, который пропихивает гугл исключительно для того, что бы пиарить себя и тянуть на себя одеяло.

Этот кодек всем хуже чем h264, но гугл нагло врет всем, говоря о его патентной чистоте, что конечно ложь. Пукнуть нельзя, не нарушив чьего-то патента, а уж кодек сделать и подавно.

Так вот в хроме webrtc принципиально по политическим соображениям не умеет h264, но никто кроме гугла в vp8 не играет, поэтому куренто мучается, но транскодит видео из кодека в кодек.

Мы — это эрливидео. Но когда я допилю dtls + srtp + всё остальное, я пока не готов сказать. Прежде всего я рассчитываю на вещание в Firefox, который умеет h264.

max_lapshin ★★★★★
()
17 ноября 2015 г.
Ответ на: комментарий от max_lapshin

Есть продвижки у кого нибудь? Пишем подобный проект нужно решение peer to many с минимальной задержкой. Сейчас крутим OpenWebRTC и Bowzer но путёвого сервера так и не нашли.

Zentra
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.