Ivan Rostovikov Posted February 12, 2014 Posted February 12, 2014 Привет. Такая задача. Есть сервис мультикаст, вещает в сеть каналы с тарелки. Открыто. Все неплохо но иногда сигнал пропадает, PBI ломается или карта не проплачена.... в общем что-то идет не по плану и телевидения нет. Решили дополнительно получать каналы от другого оператора по IP. Тоже по мультикаст. Оператор вещает на свои группы например 224.0.10.1-224.0.10.100 У нас плей листах прописаны наши группы (с тарелки) например 224.0.50.1-224.0.50.100 В качестве мультикаст роутера - Cat6506. Вопрос: как сделать так, что бы при отказе "тарелки" пользователи смогли по прежнему запрашивать группы 224.0.50.1-224.0.50.100. Что б не приходилось менять плей лист. Возможно ли делать какой то NAT Для мультикаст групп ? Вставить ник Quote
Alex780 Posted February 12, 2014 Posted February 12, 2014 astra4 c двумя источниками. Вставить ник Quote
El_Vago Posted February 12, 2014 Posted February 12, 2014 Но это будет запутаный и муторный конфиг, заводить свой мультикаст с PBI и мультикаст оператора на сервер c астрой в input, а затем создавать другой мультикаст с основным своим и резервным чужим на output. Будет что-то типа: require("stream") make_channel({ name = "Rossia 1", input = { "udp://eth0@224.0.50.1:1234", "udp://eth1@224.0.10.1:1234", }, output = { "udp://eth2@224.0.50.1:1234", } }) И так на каждый канал. Хотя почему бы и нет. Вставить ник Quote
Ivan Rostovikov Posted February 12, 2014 Author Posted February 12, 2014 Астра это значит пропускать все каналы через сервер-транскодер ? Я хотел этого избежать.... Надеялся можно просто модифицировать заголовки пакетов. Что б изменить мультикаст-группу. :-( Какой процессор нужен для транскодинга 10-ти SD каналов ? Вставить ник Quote
zedsh Posted February 12, 2014 Posted February 12, 2014 Ivan Rostovikov Это не транскодер. Астра к содержимому пакетов даже ts уровня не прикоснётся. Она именно переформирует их заголовки. На циске так точно не сделать. Очень вероятно, что можно сделать нечто такое на iptables. Вставить ник Quote
martini Posted February 12, 2014 Posted February 12, 2014 на иптейбл тоже не сделать ) Вставить ник Quote
El_Vago Posted February 13, 2014 Posted February 13, 2014 Астра не очень требовательная к ресурсам. Пробовал на уже немолодом Xeon E5420 на Arch Linux запустить около 20 каналов SD загрузка выше 15% не поднималась. При том что он еще немного с другим работает. Вставить ник Quote
Ivan Rostovikov Posted February 13, 2014 Author Posted February 13, 2014 Какие требования к ОЗУ ? Вставить ник Quote
El_Vago Posted February 13, 2014 Posted February 13, 2014 http://cesbo.com/forum/topic/760-железо-для-сборки-приёмника-на-astra-и-платах-tbs/ Вставить ник Quote
zedsh Posted February 13, 2014 Posted February 13, 2014 martiniПочему это не сделать. Вполне возможно. Нужен только один момент - весь мультикаст должен сыпаться на карту как броадкаст. Вставить ник Quote
Minya Posted February 13, 2014 Posted February 13, 2014 zedsh Сразу оба не снатить в один адрес иначе рассыпания будут из-за дублирования пакетов. Придётся натить только один, анализировать оба источника где-то и при пропадании одного - переключать скриптом нат. Вставить ник Quote
zedsh Posted February 13, 2014 Posted February 13, 2014 Minya Да, ты прав. Именно это я и имел ввиду. Тогда может понадобиться 3 сетевухи) Вставить ник Quote
Ivan_83 Posted February 14, 2014 Posted February 14, 2014 Хернёй занимаетесь. На любом перле пишется простейший демон который на нужном интерфейсе джойнися к нужной группе а на другом выплювывает полученное. Если прожорливость не устраивает и оптимизировать почему то не получается смотрим на фрю с нетграфом: ng_ether + ng_bpf + ng_patch правда оно там джойнится не умеет, потому снупинги придётся отключать со стороны входа. Вставить ник Quote
^rage^ Posted February 16, 2014 Posted February 16, 2014 у меня уже написано такое :) только nat - это побочная функция. основная - принять мультикаст в одной точке, передать через интернеты и раздать его в другой. можно сразу на несколько точек раздать. на раздающей стороне: # cat sender.conf mode: 'send' defaults: {dst_bsize: 8192, iface: eth0, src_bsize: 2048000} hosts: 2x2: {src: '233.166.172.215:1301', dst: '0.0.0.0:11500'} disney: {src: '233.166.172.75:1301', dst: '0.0.0.0:11501'} 5nica: {src: '233.166.172.81:1301', dst: '0.0.0.0:11502'} на принимающей: # cat reciever.conf mode: 'recv' defaults: {dst_bsize: 262144, src_bsize: 8192, ttl_mc: 4} hosts: 2x2: {dst: '239.152.0.1:1301', src: '93.xx.xx.zz:11500'} disney: {dst: '239.152.0.3:1301', src: '93.xx.xx.zz:11501'} 5nica: {dst: '239.152.0.7:1301', src: '93.xx.xx.zz:11502'} Вставить ник Quote
Ivan_83 Posted February 16, 2014 Posted February 16, 2014 А как вы выравнивали поток исходящего мультикаста?) Вставить ник Quote
Ivan Rostovikov Posted February 18, 2014 Author Posted February 18, 2014 2rage Давай делись подробностями ;-) Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.