Настройка IPTV во FreeBSD 9.1 по средствам udpxy

У моего провайдера есть IPTV по средствам Multicast. Можно использовать конечно маршрутизацию и трансляцию Multicast в нашу локальную сеть. Но это не так просто сделать, плюс к тому же это лишняя нагрузка. Я пошел другим путем, есть серверная программа udpxy. Принцип работы основан на том что она принимает Multicast по протоколу UDP и транслирует его в протокол TCP. Вещание осуществляет по средствам HTTP запросов.
Это удобно когда устройства или программы не умеют работать с мультикастом. Еще мы получим доступ к IPTV с любого адреса интернета, что сможем посмотреть что-нибудь с планшета.
И так приступим к установке.
Обновляем дерево портов и переходим
cd /usr/ports/net/udpxy
Далее установим с нужными нам параметрами make install clean

Добавим разрешающие правила в IPFW. В моем случаи внесу изменения в файл /usr/local/etc/ipfw_config Как настроить IPFW читаем: notanony.ru/post/14/
# Переменная для пути запуска ipfw.
fwcmd="/sbin/ipfw"
# Переменная для внешнего сетевого адаптера (Интернет).
internet="re0"
# Разрешаем прохождения igmp трафика.
${fwcmd} add allow igmp from any to any via ${internet}
# Разрешаем UDP трафик от IP адресов с которых ведется Multicast вещание. Для каждого интернет и IPTV провайдера IP адреса будут свои.
${fwcmd} add allow udp from any to 224.0.90.0/24 via ${internet}
${fwcmd} add allow udp from any to 234.5.2.0/24 via ${internet}

Перезапускаем IPFW командой /etc/rc.d/ipfw restart

Добавляем udpxy в загрузку системы, файл /etc/rc.conf с нужными параметрами запуска.
udpxy_enable="YES"
udpxy_flags="-m 169.254.1.1 -a 192.168.0.1 -p 4022"
Где m – IP адрес сетевого интерфейса который смотрит в интернет(IPTV вещание), a – IP адрес к которому могут подключать клиенты, p – порт подключения. Что бы люди из интернета не могли использовать IPTV. Список других параметров запуска читаем в документации udpxy.com/umanual-ru.html

Запускаем udpxy командой /usr/local/etc/rc.d/udpxy start Если настроили все верно, IPTV будет транслироваться. Теперь приведем плейлист провайдера для работы с udpxy.
#EXTM3U
#EXTINF:-1,Первый канал (Россия)
udp://@234.5.2.1:1234
#EXTINF:-1,Россия 1
udp://@234.5.2.2:1234
#EXTINF:-1,ТВ Центр

Пример обращение к Multicast через udpxy:
http://192.168.0.1:4022/udp/234.5.2.1:1234
IP адрес и порт udpxy, далее идет тип протокола (udp), 234.5.2.1:1234 – IP адрес и порт Multicast вещания.
Для этого откроем плейлист провайдера (m3u). В моем случаи заменим
udp://@
на
http://192.168.0.1:4022/udp/
через любой текстовый редактор. В результате получим следующий плейлист:
#EXTM3U
#EXTINF:-1,Первый канал (Россия)
http://192.168.0.1:4022/udp/234.5.2.1:1234
#EXTINF:-1,Россия 1
http://192.168.0.1:4022/udp/234.5.2.2:1234
#EXTINF:-1,ТВ Центр
http://192.168.0.1:4022/udp/224.0.90.104:1234
Открываем получившийся плейлист в плеере IPTV.
0.10
27.08.2013 16:20