Продолжаем пытаться смотреть IPTV от Росинтела без капиталовложений =)
SoftMVR
Довел до работоспособного состояния программу, позволяющую смотреть IPTV в сети компании “Росинтел” без танцев с бубном, соторого дира, dd-wrt, сетевух с вланами и так далее. Ссылка на дистрибутив, инструкции по использованию и установке находятся здесь. Программа находится в разработке, поэтому возможны некоторые проблемы с ее работоспособсностью, о которых желательно сообщать мне =)
Важное замечение. Автор сего опуса не представляет официальную точку зрения ЗАО “Росинтел”, не отвечает за последствия действий, описанных ниже и не рекомендует выполнять их никому, кроме как на свой страх и риск.
Ну что же, отмазались и поехали =). Итак, с недавнего времени все абоненты компании “Росинтел” с положительным балансом на счету получили возможность на халяву смотреть 58 каналов. Рассмотрим, как это можно сделать.
Для понимания происходящего требуется знать и понимать, что такое VLAN. Поскольку никто читать пространную статью о том, что это такое, не будет, скажу просто, что это группа сетевых устройств, взаимодействующих между собой на канальном уровне, хотя при этом физически они могут быть подключены к разным сетевым коммутаторам. Нужна это штука много для чего, но в том числе и для более удобной работы с широковещательным трафиком в сети, коим и является пресловутое IPTV. VLAN это не то же самое, что WLAN и вообще не то же самое, что VPN. Не знаю почему, но это очень частый вопрос =)
Нас интересует два VLANa – 0, условно называемый internet и 222, условно называемый iptv. VLANы бывают тегированные и нетегированные (вторые также могут называться нативными, это термин, который использует Cisco). В тегированных VLANах каждый кадр трафик определенным образом помечен, таким образом указывается, какому VLANу он принадлежит. Существует несколько протоколов для решения данной задачи, но наиболее распространенным является IEEE 802.11Q. В нашем случае VLAN 0 – нативный, а 222 – тегированный. Что же это означает для конечного пользователя? Дело в том, что наиболее популярная ныне операционная система Windows не умеет работать с вланами “из коробки”, в отличие от Linux/Unix. Фактически это означает, что в Windows по умолчанию нельзя создать некий сетевой интерфейс, который бы относился к некоему влану, поэтому приходится либо использовать отдельную железку – D-Link DIR-100, либо пытаться заставить свою сетевуху начать понимать метки вланов.
Остановимся поподробнее на каждом из этих вариантов. В случае с DIR-100, он будет выступать как коммутатор вланов, никаких дополнительных настроек сетевухи производить не требуется. Данный вариант считается официальным. Можно либо приобрести в самом Росинтеле уже настроенный девайс за 1000 рублей, либо прошить уже имеющийся, согласно инструкции на сайте Росинтела.
Для слишком жадных, либо очень умных есть альтернативный вариант, точнее варианты. Можно попробовать научить работать свою сетевуху с вланами. Настройка сетевой карты обычно производится через некую утилиту, найти которую можно на сайте производителя и по сути сводится к созданию двух вышеупомянутых вланов.
Общая инструкция
1) ставим драйвер или утилиту с поддержкой vlan. Найти ее можно на сайте производителя.
2) создаем 2 vlan-а (после создания, как правило, появятся еще два виртуальных сетевых адаптера, а старый переведется в режим поставщика vlan и будет выведен из непосредственной маршрутизации трафика)
а) с тегом 0 (как вариант ставим тип vlan Native/Untagged в тех драйверах, где можно выбрать) – называем Internet – заводим на него свои настройки интернета. В некоторых случаях тег 0 невозможно установить непосредственно в утилите – создаем с любым – потом пытаемся поменять на 0. В некоторых еще более запущенных случаях – проставляем тег через реестр. То есть, натурально, ставим какую-нибудь мониторилку реестра, создаем любой влан и анализируем, где появилась запись. Потом перебиваем в нужным местах номер влана на 0.
Если вышеперечисленные телодвижения ничего не дали – после пункта б) – пытаемся поднять ipv4 на сетевом адаптере, являющимся поставщиком vlan, но это самый тухлый вариант
б) с тегом 222 (тип Tagged) – прописываем любой адрес с любой маской из серого диапазона rfc1819 – называем IPTV. Диапазоны следующие: 10.0.0.0 – 10.255.255.255 (255.0.0.0), 172.16.0.0 – 172.31.255.255 (255.240.0.0), 192.168.0.0 – 192.168.255.255 (255.255.0.0)
3) ставим плеер, указываем интерфейс IPTV для работы ТВ
4) загружаем плей-лист, в случае необходимости – добавляем плеер в исключения брэндмауэра
5) тестируем
Есть также вариант с использованием роутеров, которые умеют работать с вланами. Если же официально Ваш роутер этого делать не умеет, можно рассмотреть вариант с прошивкой его альтернативной прошивкой (простите за тавталогию=). Наиболее распространенная это dd-wrt. Список устройств, которые можно прошить с ее помощью, равно как и информацию о ее настройке можно найти на сайте
Отдельно хотел бы рассмотреть вопрос с Wi-Fi. У многих сетка дома построена на данной технологии и некоторые пользователи сталкиваются с проблемами при попытке посмотреть ТВ. Связано это вот с чем: IPTV использует протокол UDP, в котором отсутствует гарантированность доставки пакета. Это значит, что при некоторой загрузке канала, ряд пакетов, не пролезающий в полосу пропускания, будет отброшен, что и приведет к появлению артефактов картинки. Для решения этой проблемы существуют так называемые UPD2HTTP прокси, наиболее известные это UDP-to-HTTP Прокси и udpxy. Информация о их настройке легко находится на сайтах данных утилит.
В данный момент проходит тестирование, поэтому о замеченных проблемах рекомендуется писать в HelpDesk, в раздел “Тестирование IPTV”.
В будущем планируется предоставлять услугу без компьютера, при помощи D-Link DIB-120 и Amino 130. Цена пока неизвестна. Поскольку возникают вопросы о возможности приобретения приставок на стороне, а также использования других приставок, например, домолинковских Zyxel, мое понимание ситуации таково: IPTV очень, очень сильно завязано на авторских правах. Требования владельцев контента иногда просто шизофренические =) Примером может служить домолинковский PCPlayer, где изменение конфигурации системы вызывает блокировку программы, после чего приходится проводить время дозваниваясь в саппорт и снимая блокировку =) Приобрести приставку типа Amino 130 “с рук” во-первых, весьма сложно, так как продукт весьма специфичен, а во-вторых, перспективы ее последующей активации представляются мне весьма сомнительными. Что касается других STBшек. Полагаю, что middleware все-таки рассчитано на конкретные приставки, учитывает их алгоритмы CAS, API и так далее, и в этой связи использовать нечто отличное от эталонных экземпляров проблематично. Пока неизвестна система шифрования контента, говорить о том, есть ли некие перспективы работы “левых” приставок, нелогично. =)
Информация о пакетах каналов и их стоимости пока неизвестна. Известно, что некий набор каналов будет доступен всем пользователям с положительным балансом. В данный момент работает вообще у всех, даже у тех, кто в глубочайшем минусе =) Дата запуска услуги в коммерческую эксплуатацию пока неизвестна.
Собственно, есть такая чудная программка для IPTV, которую использует в том числе и наш любимый Центртелеком. Понятно, что версия из коробки ужасна и малоюзабельна =) Ребята из ЦТК обещали привести ее в чувство, но подозреваю, что от них вообще мало что зависит, а Нетрису, наверное, вообще по барабану =) Я не пользуюсь ей уже пару месяцев, но на тот момент в ней все еще отсутствовал регулятор звука ^_^.
Все что написано далее, является не более чем горячечным бредом автора, который он лично никогда не претворял в жизнь и не советует никому, дабы не попрать священный запрет на модификацию программы или ее части, NDA и прочая ;-)
Для начала разберемся со скином. Собственно, сам скин это файлик ViewRight-2_0.usk в папке Skins. Сначала я хотел разобраться со структурой файла, благо в нем прослеживается определенная структура, и сделать что-то свое, но потом забил болт и взял уже готовый, то ли акадовский, то ли еще чей-то, скин, благо он был весьма симпатичен. Теперь перейдем к самой начинке программы. Меня раздражали в ней две вещи: во-первых, она жутко долго грузилась после первого запуска, проверяя логин и пароль и во-вторых, была весьма нефункциональна. Вооружившись прикладными инструментами, я начал разбираться, как же она работает.
Оказалось, что для начала работы ей требуется связаться со своим vcas-сервером. Собственно, vcas.iptv это именно он и есть =) Сама начинка программы по сути является обыкновенной веб-страницей, а программа-обрезком веб-браузера. Наверное, до сих пор можно поймать веселый глюк – попробуйте зажать левую кнопку мышки и протянуть ее вниз до конца окна и увидите, что в самом низу страницы появляются 4 цветные кнопки =) Итак, дело за малым, нужно всего лишь заставить плеер лезть за контентом на нашу страницу. Поскольку я планировал сделать все как положено, с EPG, превьюшками и так далее, я изначально решил хостить свою версию мидлвари на своем же сервере. Чтобы перенаправлять трафик с утилиты по нужному адресу, я использовал чудесную утилитку под названием rinetd. Для ее запуска требуется составить файлик с данными, что и куда мы будем перенаправлять, примерно такого вида.
#bindaddress bindport connectaddress connectport
212.12.9.43 7777 yandex.ru 80
212.12.9.43 12701 127.0.0.1 12701
Я прописывал адрес 212.12.9.43 алиасом на свою же сетевую карту для отладки.
Запускаем
rinetd.exe -c rinetd.conf
Запускаем PC Player и вуаля, вместо привычной домолинковской начинки видим в плеере Яндекс =)
Остается всего ничего – сделать свою версию мидлвари, с шахматами и поэтессами. По сути, там может быть вообще все что угодно, что адекватно будет показываться в IE. Единственным моментом, на котором я бы хотел заострить внимание, это переключение каналов из веб-морды. Требуется отправить GET-запрос вида
http://212.12.9.43:12701/Open?filename=udp://адресканала:5000&displayname=имяканала
Соответствие адресов каналам в тарифе “Максима” выглядело примерно так
1 Первый канал 233.3.3.1
2 Россия 1 233.3.3.2
3 ТВ Центр 233.3.3.6
4 НТВ 233.3.3.4
5 Россия К 233.3.3.3
6 Россия 2 233.26.198.82
7 Звезда 233.3.3.12
8 РБК 233.26.198.95
9 2×2 233.3.3.14
10 Муз-ТВ 233.3.3.12
11 MTV 233.3.3.15
12 Петербург – 5 канал 233.3.3.5
13 7ТВ 233.3.3.13
14 ТВ3 233.3.3.11
15 ДТВ 233.3.3.9
16 СТС 233.3.3.16
17 ТНТ 233.3.3.8
20 Бибигон 233.26.198.117
21 Bridge TV 233.3.3.34
22 МИР 233.26.198.126
23 Россия 24 233.3.3.40
25 France 24 233.26.198.46
26 Боец 233.26.198.100
27 Ля Минор 233.26.198.56
28 CNN 233.26.198.89
29 TCM / Cartoon Network 233.26.198.75
31 Авто Плюс 233.26.198.86
32 Комедия ТВ 233.26.198.66
33 Индия ТВ 233.26.198.80
34 Мать и Дитя 233.26.198.65
35 World Fashion Channel 233.26.198.96
36 VIASAT Русское кино 233.26.198.68
37 Travel Channel 233.26.198.79
38 VIASAT Sport 233.26.198.125
39 VIASAT Explorer 233.26.198.93
40 VIASAT History 233.26.198.78
41 VIASAT TV 1000 233.26.198.90
42 ТВ Бульвар 233.26.198.94
43 Jetix 233.26.198.84
44 24Техно 233.26.198.123
45 MCM Top 233.26.198.88
46 MEZZO 233.26.198.45
48 Discovery channel 233.3.3.19
49 Animal planet 233.3.3.20
50 Axn Sci Fi 233.3.3.27
51 SET 233.3.3.22
52 Discovery world 233.3.3.23
53 Nickelodeon 233.3.3.17
54 Hallmark 233.3.3.26
55 Universal channel 233.3.3.25
56 Universal SyFy 233.3.3.18
57 Discovery travel & living 233.3.3.21
58 Discovery science 233.3.3.24
59 A-one 233.3.3.28
60 TV1000 Action 233.3.3.4
61 2 Спорт 2 SD 233.3.3.49
62 2 Спорт 2 HD 233.3.3.47
79 Усадьба 233.26.198.49
80 НСТВ (Страшное) 233.26.198.57
81 Охота и рыбалка 233.26.198.48
82 Здоровое ТВ 233.26.198.50
83 Extreme Sports 233.26.198.58
84 FLN 233.26.198.127
85 Zone Reality 233.26.198.101
86 BBC World 233.26.198.67
87 Zone Romantica 233.3.3.29
88 Jim Jam 233.3.3.31
89 Deutsche Welle 233.26.198.53
90 English club TV 233.3.3.32
91 Russia Today 233.3.3.35
92 Amazing Life 233.3.3.36
93 Music Box 233.3.3.45
94 Music Box RU 233.3.3.44
95 GameLand TV 233.3.3.43
96 Беларусь ТВ 233.3.3.41
97 ТНВ 233.3.3.42
Сейчас, я думаю, что-то изменилось, поправить труда не составит. =)
Я не понял, как заставить PC Player понимать русский язык в названии каналов, очень даже может быть, что никак =) По факту displayname=имяканала нужен сугубо для обозначения названия канала в заголовке окна.
И последний tip для тех, кто возможно решит сделать свою классную модификацию для PC Player – чтобы отправить запрос, но при этом никуда фактически не переходить браузером, удобно использовать библиотеку jQuery, примерно так:
<a onclick=”$.get("http://212.12.9.43:12701/Open?filename=udp://233.3.3.1:5000&displayname=First Channel");return false;” href=”#stayhere”>Первый канал</a>
В данный момент я занимаюсь некоторым проектом, который также имеет отдаленное отношение к телевидению. Возможно через некоторое время у меня выдастся свободная минутка и руки дойдут до того, чтобы сделать из данной программы нечто, чем будет приятно пользоваться, если этого никто не сделает до меня, разумеется =)
