Jump to content
Калькуляторы

Каким софтом попроще вещать http unicast?

Чем можно нормально вещать http unicast (внутри mpeg ts со спутника), чтобы из одного потока сделать несколько?

 

Я пробовал nginx streaming module, но он неожиданно на каждый коннект открывает новый коннект к источнику, и в результате входящий трафик с каждым коннектом растет, хотя вещается всем клиентам один и тот же канал.

Он вообще такое может? Или какой софт может?

Условие-то только одно - вход и выход должны быть http mpeg-ts.

Share this post


Link to post
Share on other sites

Форум астры почитал, говорят падает оно при http input, ибо поддержка в зачаточном состоянии.

Может подскажете конкретную версию, на которой у вас стабильно работает подобный конфиг?

Share this post


Link to post
Share on other sites

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

есть тестовые есть стабильные версии, есть бесплатные

сначала пробовать надо

ну либо покупайте вовзу, вдруг у вас денег много лишних и ресурсов

 

у меня https://github.com/marakew/AvProxy/ работает и не падает

Edited by paradox_

Share this post


Link to post
Share on other sites

Собрал astra, работает, единственно, что смущает, url каждого канала надо забивать статически, хотя это же релей, какая ему вообще разница до этого, задача же передать на апстрим.

Может это как-то решается через lua? я в нем не силен.

Share this post


Link to post
Share on other sites

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

соответственно и багов в опенсорс давно не фиксилось

я не помню, там кажется даже http chunks не поддерживается

поэтому пробовать лучше платную тестовую, там плюшек больше и hls и http chunks, веб инферфейс итд

http://dev.cesbo.com/download/astra/

 

 

луа я тоже не знаю

как проксик там вроде на форуме кто то кидал какие то луа скрипты, и даже xproxy кажется называется версия скриптов для астры с проксированием

Edited by paradox_

Share this post


Link to post
Share on other sites

Да, нашел этот скрипт, оставлю тут, вдруг кому пригодится:

 

master = "http://12.34.56.78"

function on_request_channel(server, client, request)
   local client_data = server:data(client)

   if not request then -- on_close
       kill_input(client_data.input)
       xproxy_kill_client(server, client)
       collectgarbage()
       return nil
   end

   local conf = parse_url(master .. request.path)
   if not conf then
       server:abort(client, 404)
       return nil
   end

   xproxy_init_client(server, client, request, request.path)

   conf.name = "Relay " .. client_data.client_id
   client_data.input = init_input(conf)
   server:send(client, {
       upstream = client_data.input.tail:stream(),
       buffer_size = relay_buffer_size,
       buffer_fill = relay_buffer_fill,
   })
end

 

запускать "astra --relay -p 8000 script.lua"

Share this post


Link to post
Share on other sites

' timestamp='1480694365' post=1348718]

каждый коннект открывает новый коннект к источнику, и в результате входящий трафик с каждым коннектом растет, хотя вещается всем клиентам один и тот же канал.

а юникаст по любому открывает каждому подписчику свой канал, или я не прав?

Share this post


Link to post
Share on other sites

а юникаст по любому открывает каждому подписчику свой канал, или я не прав?

Если мы говорим, о релее, то нет. Будет 1 коннект от релея к источнику, и по одному коннекту от клиента до релея.

Т.е. мы смещаем точку вещания кучи потоков ближе к абоненту.

 

 

p.s.

Astra (как минимум последняя 4 версии) все-таки не готова к http input. Можете попробовать взять поток из nginx'а или squid'a, и увидите кучу ошибок через '--analyze', или кашу на экране в режиме релея.

Хотя если напрямую плеером подключаться к nginx, то все ок. Astra и nginx даже на одной машине для теста запускал.

 

Т.е:

клиент -> astra relay -> источник http - работает без проблем

клиент -> nginx proxy -> источник http - без проблем

клиент -> astra relay -> любой прокси -> источник http - куча ошибок

Share this post


Link to post
Share on other sites

к http input 4 версия готова, а вот http chunks она не поддерживает, это можно было в wireshark посмотреть или в tcpdump

 

все это поддерживает только коммерческая версия

Edited by paradox_

Share this post


Link to post
Share on other sites

' timestamp='1480696493' post='1348726']

Форум астры почитал, говорят падает оно при http input, ибо поддержка в зачаточном состоянии.

Может подскажете конкретную версию, на которой у вас стабильно работает подобный конфиг?

бвает

Share this post


Link to post
Share on other sites

300-400 юзеров онлайн и астра умрёт.

 

почти полторы тысячи активных сессий на одном сервере и работает нормально.

wO0oYyUPpXg-small.jpg

картинка побольше http://cesbo.com/download/and/wO0oYyUPpXg.jpg

Edited by and_cesbo

Share this post


Link to post
Share on other sites

почти полторы тысячи активных сессий на одном сервере и работает нормально.

Всё так же греет воздух копируя данные из юзерспейса каждому юзеру и в один поток?

Share this post


Link to post
Share on other sites

О, начались опять камлания вокруг нахер ненужного ядерного zerocopy.

Так если он был не нужен то нетфликс его бы во фрю так старательно и целенаправленно не впиливал.

У тебя то тоже поди sendfile() юзается.

Share this post


Link to post
Share on other sites

Всё так же греет воздух копируя данные из юзерспейса каждому юзеру и в один поток?

 

так где есть смысл использовать sendfile - оно используется. там где оно не надо - не используется. это называется здравый смысл :-)

Share this post


Link to post
Share on other sites

да-да, я слышал про эти смешные игры с поллингом через madvice и последующим sendfile.

 

Нет, мы этой фигней не балуемся и 20 гигабит прекрасно обычными pread, write отдаются. Блокирующий тред sendfile и непредсказуемые игрища с мапингом памяти — это не про предсказуемость, а больше про синтетические бенчмарки.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.