Проксируем IPTV в HTTP
Для тех зашел сюда в поисках халявного IPTV сразу даю ссылку на свой плейлист, — смотрите на здоровье. Для успешного просмотра у вас должен быть открыт 4022 порт на хост berezhinskiy.name Трансляция ограничена 6ю смотрящими одновременно.
Для остальных — маленькое HOWTO на тему проксирования UDP multicast по протоколу HTTP:
Решение реализуется с помощью udpxy и 2х строк в rc.conf. Для начала проверим активирована ли поддержка мультикаст на интерфейсе:
# ifconfig net0 | grep MULTICAST net0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
Ставим udpxy:
# cd /usr/ports/net/udpxy/ && make install clean
Добавляем в rc.conf флаги запуска, стартуем и проверяем что порт слушается:
# cat /etc/rc.conf | grep udpxy udpxy_enable="YES" udpxy_flags="-m net0 -p 4022 -S -c 6" # /usr/local/etc/rc.d/udpxy start Starting udpxy. # sockstat | grep udpxy root udpxy 56048 5 tcp4 *:4022 *:*
Флаги запуска:
* -m — имя интерфейса мультикаст-каналов
* -p — TCP порт для HTTP запросов к приложению
* -c — максимальное количество клиентов, обслуживаемых одновременно
* -l — записывать журнал приложения в указанный файл
* -S — передавать статистику о клиентских соединениях
Далее берем плейлист, который нам дал провайдер и изменяем под наши нужды:
# head tv_all.m3u #EXTM3U #EXTINF:0,1 - Channel 5 (Ukraine) udp://@239.100.0.1:5004 #EXTINF:0,2 - 1+1 international (H264) udp://@239.100.0.10:5004 #EXTINF:0,3 - UR1 udp://@239.100.0.101:5004 #EXTINF:0,4 - RADIO ERA udp://@239.100.0.102:5004 #EXTINF:0,5 - L.Radio # cat tv_all.m3u | sed -e 's@udp://\@@http://berezhinskiy.name:4022/udp/@' > TV.m3u
Естественно, заменяем http://berezhinskiy.name:4022 на свои ip:port, запускаем VLC/winamp/wmp и проверяем работоспособность. Если что не фурычит — смотрим лог и гуглим :)
Если вы оставили опцию -S в флагах запуска, — статистика будет доступна по адресу http://ip:port/status
Рубрики: FreeBSD · Теги: iptv proxy, multicast, tv, udpxy, смотреть, телевизор
