kirush Опубликовано 8 февраля, 2011 (изменено) · Жалоба Добрый день! Подскажите как выйти из "положения": Имеем входной поток IPTV около 130 каналов, поступает по rtp. В связи с тем, что сеть на данный момент полностью не позволяет перейти на вещание по multicast, выкручиваюсь перегоном rtp в http. screen -dmS vlc sudo -u xxx cvlc rtp://@230.3.3.84:5678 --sout-all --sout='#std{access=http,mux=ts,dst=10.1.255.100:8081}' screen -dmS vlc sudo -u xxx cvlc rtp://@230.3.3.32:5678 --sout-all --sout='#std{access=http,mux=ts,dst=10.1.255.100:8082}' и т.д. Таким образом постоянно принимаются и перегоняются в http все каналы, что генерит достаточно большой трафик. Можно ли сделать, чтобы vlc начинал перегонять нужный поток только когда есть "потребность" (т.е. когда абонент включает канал) и прекращалось когда нет "потребности". Или может есть другой выход из ситуации? Заранее благодарен за любые мысли. Изменено 8 февраля, 2011 пользователем kirush Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 8 февраля, 2011 (изменено) · Жалоба kirush Можно так: udpxy -a SERVER_IP -p HTTP_PORT -M 60 После этого, ссылка будет иметь вид http://SERVER_IP:HTTP_PORT/udp/MCAST_GROUP_IP:MCAST_PORT Сервер будет подписываться на мулькаст-группу только по мере необходимости Изменено 8 февраля, 2011 пользователем s.lobanov Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kirush Опубликовано 8 февраля, 2011 · Жалоба Как раз сейчас наткнулся на этот демон. Сейчас изучаю его, спасибо за совет. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
IVOL Опубликовано 24 февраля, 2011 · Жалоба Похожая ситуация. С IP-стримера IPS-01 идёт мультикаст поток (239.255.2.0/24:1234) на сервер. В этом сервере установлена вторая гигабитная сетувуха с IP 192.168.1.12, именно в эту сетевуху подключен кабель с ИП-стримера. Для ретрансляции мультикаста в юникаст установил udpxy и запустил его с настройкой на 4022 порт. Команда route add 239.255.2.0/24 192.168.1.12 позволила настроить роутинг потока. По ссылке http://server:4022/udp/239.255.2.11:1234 теперь можно посмотреть канал. Но картинка очень сильно рассыпается, а звук только иногда прорывается. Не хватает потока. Статистика VLC показывает, что поток около 1 Мегабита/сек, а trafshow показывает около 130 килобайт/сек, что одно и тоже. А для нормального качества поток одного канала должен быть около 4 Мегабит/сек. Вопрос: почему и где зажимается поток? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
iMPoSsibLe_iT Опубликовано 26 февраля, 2011 · Жалоба kirush Можно так: udpxy -a SERVER_IP -p HTTP_PORT -M 60 После этого, ссылка будет иметь вид http://SERVER_IP:HTTP_PORT/udp/MCAST_GROUP_IP:MCAST_PORT Сервер будет подписываться на мулькаст-группу только по мере необходимости Спасибо. Схема работает. Попробую в "боевых" условиях. Для ноутов с Ви-Фи должно быть самое оно... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Globus Опубликовано 10 апреля, 2012 · Жалоба Вам тоже большое спасибо! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
KL!M Опубликовано 27 апреля, 2012 (изменено) · Жалоба У меня наоборот другая проблема - vlc пытаюсь перегнать 60 потоков multicast в unicast, но vlc больше 20 потоков одновременно не поднимает (Linux) пример конфига vlm: #Multicast to Unicast new channel1 broadcast enabled setup channel1 input udp://@234.5.2.1:20000 setup channel1 output #standard{access=http,mux=ts,dst=10.128.255.6:10001} control channel1 play new channel2 broadcast enabled setup channel2 input udp://@234.5.2.2:20000 setup channel2 output #standard{access=http,mux=ts,dst=10.128.255.6:10002} control channel2 play new channel3 broadcast enabled setup channel3 input udp://@234.5.2.3:20000 setup channel3 output #standard{access=http,mux=ts,dst=10.128.255.6:10003} control channel3 play udpxy не предлагать, нужны активные 60 потоков для мониторинга дропов mpeg2-ts ещё пробовал Relaying (http://deineka.net/2010/12/06/relaying-multicast-v-http-i-obratno/) но у него другая проблема, один поток поднимается нормально, а когда поднимаешь два и более - начинаются mpeg2-ts больше 1к Изменено 27 апреля, 2012 пользователем KL!M Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
server801 Опубликовано 27 апреля, 2012 · Жалоба на чем пробовали relaying ? на freebsd прекрасно работает. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
KL!M Опубликовано 27 апреля, 2012 · Жалоба на чем пробовали relaying ? на freebsd прекрасно работает. relaying пробовал на Linux, на FreeBSD тоже пробовал - работало отлично, но проблема в том что IPTV-Analyzer только под Linux... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
server801 Опубликовано 27 апреля, 2012 · Жалоба вам шашечки или ехать? не пойму - чем вам софт не устраивает? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
KL!M Опубликовано 27 апреля, 2012 · Жалоба вам шашечки или ехать? не пойму - чем вам софт не устраивает? Софт устраивает, но мне необходимо на Linux'е стримить 60 каналов и на нем же мониторить их с помощью IPTV-Analyzer (без поднятых потоков зонду анализировать будет нечего), как я уже писал выше - VLC отказывается стримить больше 20 каналов, собственно в этом главный вопрос и заключается - как заставить VLC стримить все 60 каналов. я бы и рад использовать Relaying (больше нравится чем vlc) но на Linux'e он некорректно работает. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
mag@ Опубликовано 28 апреля, 2012 · Жалоба Софт устраивает, но мне необходимо на Linux'е стримить 60 каналов и на нем же мониторить их с помощью IPTV-Analyzer (без поднятых потоков зонду анализировать будет нечего) Для того, чтобы получать на Linux железку multicast поток достаточно програмульки на перле которая откроет "мультикаст" сокет, а потом из него будет читать данные. Уложится в 30-40 строчек кода (с хелпом, проверками и коментами - т.е. если писать "культурно"). Что на основе подобного кода. my $sock = IO::Socket::Multicast->new(Proto=>'udp',LocalPort=>$mPort,Blocking=>1,ReuseAddr=>1); $sock->mcast_add($mGroup) || die "Couldn't set group: $!\n"; while( 1==1 ) { alarm $timeout; if ( !defined($sock->recv($data,1316)) ) { #print "no data\n"; $rcmd_res = "fail"; } else { #print "exist stream\n"; $rcmd_res = "ok"; } alarm 0; } Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
KL!M Опубликовано 28 апреля, 2012 · Жалоба Софт устраивает, но мне необходимо на Linux'е стримить 60 каналов и на нем же мониторить их с помощью IPTV-Analyzer (без поднятых потоков зонду анализировать будет нечего) Для того, чтобы получать на Linux железку multicast поток достаточно програмульки на перле которая откроет "мультикаст" сокет, а потом из него будет читать данные. Уложится в 30-40 строчек кода (с хелпом, проверками и коментами - т.е. если писать "культурно"). Что на основе подобного кода. my $sock = IO::Socket::Multicast->new(Proto=>'udp',LocalPort=>$mPort,Blocking=>1,ReuseAddr=>1); $sock->mcast_add($mGroup) || die "Couldn't set group: $!\n"; while( 1==1 ) { alarm $timeout; if ( !defined($sock->recv($data,1316)) ) { #print "no data\n"; $rcmd_res = "fail"; } else { #print "exist stream\n"; $rcmd_res = "ok"; } alarm 0; } Сделал на perl'e, поднимает 80 потоков - 4 ядра ксеона уходят в полку с load average: 90.21, 86.14, 70.26 Интересно кто как мониторит дропы mpeg2-ts пакетов? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
server801 Опубликовано 28 апреля, 2012 · Жалоба Вот расскажи - зачем тебе это? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
KL!M Опубликовано 28 апреля, 2012 · Жалоба Вот расскажи - зачем тебе это? Собственно для мониторинга качества транслируемого контента, регионов много, интересно знать что происходит в сотне-тысяче км. от тебя. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
shicoy Опубликовано 16 января, 2013 · Жалоба Кстати, в relaying кто нить разобраться как работает ключ --auth? Уж очень хочется basic авторизацию замутить. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 16 января, 2013 · Жалоба А что вы хотите получить на выходе? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
martini Опубликовано 16 января, 2013 · Жалоба чтобы мониторить чтото в тысячах километрах - нужно ставить аналайзер там, а не на стримере.. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
^rage^ Опубликовано 22 августа, 2013 · Жалоба а интересно кому еще это? :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
20Ilya Опубликовано 26 августа, 2013 · Жалоба Что именно? Мультик в Юник? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
^rage^ Опубликовано 27 августа, 2013 · Жалоба Что именно? Мультик в Юник? что угодно в юник :) возможно даже с транскодированием :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
20Ilya Опубликовано 28 августа, 2013 · Жалоба Лично меня интересует... Но пока руки не дошли... Да и временная техническая проблема прокинуть транспондеры в стойку... Тем более, что я хомячок... ;) Просто 1:1 планирую делать на Астре4, которая пока глубокая опенбета... Если же применять транскодинг - думаю как лучше... Но ничего пока не придумывается... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 28 августа, 2013 · Жалоба У меня очень продвинутый самописный udpxy, но транскодить пока не учил :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
^rage^ Опубликовано 28 августа, 2013 · Жалоба у меня вариант простой и эффективный: gstreamer(с выхлопом по multifilesink) + чуть-чуть самописного на python. работает на cpython и pypy, держит 100k коннектов и легко укладывает пару гигабит(sendfile же :)) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
maxlapshin Опубликовано 29 августа, 2013 · Жалоба 100k коннектов на 2 гигабита — это 21 килобит. Видео. 21 килобит. sendfile при раздаче по сети. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...