10 февр. 2011 г.

Просмотр ТВ каналов Ростелекома на Ubuntu

Суть проблемы - гении Ростелекома выбрали 200 порт для вещания. При просмотре через этих каналов VLC пытается задействовать 200 порт, но не может, т.к. порты с номером меньше 1024 считаются привилегированными во всех *nix системах (все Linux, все BSD, MacOS X) и доступны только для root. Очевидное решение - долбить провайдера, чтобы он корректно настроил своё оборудование. Но не тут то было, т.к. "Просмотр IP-TV на компьютере не поддерживается". Официальная приставка работает, больше их ничего не волнует.

Для решения проблемы подменим порт 200 на 34200. Сделать это на Ubuntu можно с использованием iptables следующим образом:

sudo iptables -t nat -A PREROUTING -p udp -m udp --dport 200 -j DNAT --to-destination :34200
sudo iptables -t nat -A POSTROUTING -p udp -m udp --dport 34200 -j SNAT --to-source :200

После ввода этих строк я попытался открыть канал Discovery Science udp://239.32.0.69:34200/ (порт 200 был заменён на 34200) и о чудо! Всё работает! Теперь остаётся только переделать свой плейлист заменив порт 200 во всех каналах на 34200 и наслаждаться просмотром IPTV на компьютере.