Как транслировать iptv в сеть
IPTV Своими руками: Первый опыт
iptv skycast vlc middleware dib-120 igmp multicast cisco
В этой статье я поделюсь первым опытом настойки и эксплуатации цифрового телевидения или IPTV, собранного «на коленке», расскажу о некоторых «подводных камнях», а так же дам советы новичкам.
/> | Данная статься основана на личном опыте автора и не претендует на звание идеального руководства по настройке IPTV |
/> | Вообще, данный, так сказать «проект» был реализован где-то в далеком 2010 году, и может уже считаться устаревшим. С тех пор уже много чего изменилось. Добавлю лишь, что добиться стабильной работы, описанного ниже примера, на современном железе и софте не удалось, но принципиальная идея, конечно же осталась неизменна. В будущем (я надеюсь) поделюсь опытом реализации кабельного ТВ в небольшом общежитии. |
Аппаратная часть
Необходимые и достаточные условия для приема видеопотока со спутника и его вещания в локальную сеть.
Программная часть: SkyCast Server
Подробнее о настройках SkyCast Server
- Секция [COMMON] — настойки параметров спутникового ресивера SkyStar.
MACSS2=01020304 — последние 8 цифр МАС адреса SS2/SS3 без разделителей (узнать MAC или физический адрес можно набрав в командной строке команду ipconfig /all).
CARDTYPE=0 — тип карты. 0 — SkyStar2, 1 — SkyStar3.
SS3NUM=1 — номер SS3 в системе по порядку, начиная с 1.
MULTICAST=239.1.1.1 — мултикаст адрес.
PORT=33033 — порт как порт.
IP=127.0.0.1 — транслируем поток в локальную петлю, чтобы не нагружать сеть. Конечно же можно ввести IP адрес действующей сетевой карты и весь принятый поток будет направлен в сеть через нее. На этом этапе клиенты уже смогут принимать и просматривать видеоканалы используя например VLC и указав источник видеопотока вышеописанные мултикаст адрес и порт в таком виде: udp://@239.1.1.1:33033. В нашем случае мы этого делать не будем, и сначала немого «оптимизируем» видеопоток все тем же VLC, но на стороне сервера.
![]() | Вместо «локальной петли», лучше использовать виртуальный сетевой адаптер |
ENABLED=1 — активируем вышеописанные параметры. К слову сказать, можно настроить до 4х различных параметров вещания мультикаста. В нашем случае выключаем оставшиеся секции, установив значения ключа равным 0.
Теперь произведем некоторые настройки уже в оболочке программы:
После установки необходимых параметров нужно нажать кнопку Tune. Если все выполнено правильно в разделе Current отобразятся две шкалы, показывающие уровень сигнала (шкалы в режиме реального времени не обновляются).
— Так же, не забываем установить галку Multicast и сохранить настройки в файле конфигурации, нажав кнопку Save.
В этом разделе нас интересует только значение выпадающего списка — Config. В нем необходимо выбрать имя файла параметров приема сигнала, созданный и сохраненный во вкладке Tuner/LNB/Net.
Выбранный файл параметров приёма, будет автоматически загружаться при старте программы.
Как вы могли заметить, ключ dst= содержит мултикаст адрес:порт для каждого из каналов.
Т.е. для просмотра какого-либо канала, клиенту достаточно обратиться на соответствующий мультикаст адрес.
Настройка сетевого оборудования
Настройка сетевого оборудования, необходимая для «правильной» работы IPTV
Всё! Теперь поток мультикаст будет отправляться только тем клиентам, которые запросили. Хочу заметить, что если в сети есть еще коммутаторы на них тоже необходимо включить IGMP snooping (querier включать на них НЕ нужно)
Теперь о подводных камнях:
Иногда, без каких-либо видимых причин, коммутатор (Cisco 2960) начинал рассылать поток мултикаст во все порты. Опытным путем было установлено, что это происходит когда в сеть включается/выключается какой-либо коммутатор. Оказалось причиной тому Spanning Tree Protocol а именно TCN.
Рекомендации Cisco для решения данной проблемы:
По какой-то причине мой коммутатор ни в какую не понимал эту команду (не исключено, что дело в кривых руках), хотя модель и версия ios входят в список поддерживаемых устройств.
Так же была опробована команда spanning-tree portfast на портах — проблему решило частично, иногда флуд повторялся.
В общем обдумав все за и против. отключил STP командой no spanning-tree vlan.
Настройка клиентского оборудования
Настройка клиентского оборудования, для просмотра IPTV на телевизоре, на примере цифровой ТВ-приставки D-Link DIB-120
Ознакомиться и загрузить файлы можно на странице нашего сайта: Middleware для D-Link DIB-120.
Настройка приставки
Теперь настраиваем приставку, для этого в главном меню переходим в раздел Settings, далее в Service, после выбираем IPTV и указываем адрес нашей страницы: http://адрес_WEB_сервера/mw.html. Нажимаем на пульте кнопку Play, если все сделали правильно, телевизор начнет показывать канал.
Немного о файлах mw.html и DIB120_API.js.
Внутри файла mw.html можно увидеть следующие строчки:
Это и есть список каналов, вещание которых мы настраивали выше. Первый параметр – это мультикаст адрес канала, второй его заголовок (будет отображаться на экране телевизора при переключении канала).
Вообще эту веб страничку можно оформлять как душе угодно, все зависит от фантазии, главное указать функцию инициализации приставки, при загрузке веб страницы:
Где:
stream – массив содержащий адреса и названия каналов (о котором я упоминал выше)
«Info» — имя идентификатора html блока (например div) в котором будет отображаться информация о канале
5000 — таймаут отображения информации о канале (миллисек.)
«Status» – имя идентификатора html блока (например div) в котором отображается текущее состояние канала
1000 – таймаут отображения состояния (миллисек.)
Что касается файла DIB120_API.js – там реализованы некоторые функции управления приставкой.
Обрабатывает нажатия кнопок пульта. На данный момент в ней реализовано переключение каналов, нажатием на цифровые кнопки и кнопки страничного переключения каналов, кнопки Play(запуск)/Stop(остановка), а так же отображение информации о текущем состоянии и номере канала.
Еще в скрипте реализованы некоторые другие функции (в комментариях написаны их назначения), но они не используются. При необходимости, их можно задействовать, добавив обработку этих функций в вышеописанную функцию обработки нажатия кнопок пульта.
Как организовать IPTV-трансляцию?
Поделимся с Вами очередным опытом администрирования в рамках корпоративных организаций использования ресурсов и пр. С постепенным ростом сети, перед нами наметился вопрос о предоставлении прочих фич, помимо доступа в Сеть. Скажем так: организация занимается не только предоставлением интернет-услуг, но также вопросами организации цифрового и аналогового ТВ в кабельном формате. Отсюда возникла естественная потребность сообразить телевещание через сеть IP.
Что было дано?
Спутниковые ресиверы от PBI (DCH4000Р) мы использовали, как потоковый источник. Поскольку при использовании одного такого ресивера можно получать только 6 выходных каналов мультикаста, возникла необходимость в дополнительном железе. Выбор пал на девайс производства СпецТВ IP StreamerIPS01 (Одесса). Таким образом, поток предполагалось брать с ASI-выхода, но не по IP.
Представленный девайс оснащен шестью ASI-входами, на которые было решено организовать подачу шести потоков с PBI-ресиверов. Поскольку все каналы у нас находятся в рамках потока, а порт стримера на выходе рассчитан на гигабайт, пришлось подумать о том, как организовать для пользователя подачу ограниченного числа каналов (то есть не всех 60) на интерфейс сети, что естественным образом при потоке примерно в 300Мбит/сек «забило» бы целиком пропускную способность. То есть, по сути, должен был выводиться только один канал, который будет запрашивать пользователь клиентской машины.
Вообще имелась возможность реализовать подобное, используя D-Link-коммутаторы, однако имея прецеденты с их недостаточно удовлетворительной работой в качестве querier, приняли решение обзавестись для этих целей коммутатором FoxGateS6224(S2).
Передача абонентам должна осуществляться посредством D-Link DES3526-коммутатора. Общую схему коммутации можно на скорую руку обрисовать примерно так:
6 DCH-4000P-ресиверов, идут параллельным подключением к ASI (IPS01), далее -> Ethernet (FoxGateS6224(S2) -> коммутатор D-Link(DES3526) -> параллельное распределение на несколько клиентских машин).
Проведение настройки
Для настройки ресиверов была использована самая обычная схема отладки ресиверов сигнала со спутников. Стример настраивали «ручками» — выбирали в браузере каждый канал и присваивали ему мультикастовый адрес (239.255.Х.Х). В данном случае считаем бессмысленным подробное описание процесса настройки оборудования.
Конфигурируем Querier FoxgateS6224-S2. 10.0.0.10 — адрес используемого коммутатора. Здесь необходимо выполнить следующие процедуры:
1. Создание отдельного vlan-а:
2. Включение контроля мультикастового потока:
3. Настройка соответствующих портов:
Intеrface Ethеrnet0/0/2
switchpоrt аccеss vlаn 382
.
.
.
!
Inteеrface Ethеrnet0/0/24
switchpоrt accеss vlаn 382
4. Порт 25 обращен к стримеру, когда 26-порт – к коммутатору. Исходя из этого необходимо произвести следующие настройки:
Intеrface Ethеrnet0/0/25
switchpоrt accеss vlаn 382
!
Interfаce Ethеrnet0/0/26
switchpоrt mоde trunk
5. Теперь переходим к включению igmp snooping. Здесь необходимо указать, что порт vlan, который мы создали функционирует как мультикастовый:
iр igmр snооping
iр igmр snооping vlаn 382
6. Далее потребуется включить фнкцию querier с указанием источника, которым является непосредственно устройство-коммутатор:
iр igmр snооping vlаn 382 l2-gеnеral-quеrier
iр igmр snооping vlаn 382 l2-genеral-quеrier-source 10.0.0.10
Теперь можно сказать, что мы завершили настройку querier. Далее переходим к конфигу нашего коммутатор D-Link (с использованием портов 25,26 для uplink):
1. Для начала необходимо включить igmp snоорing и сообщить о том, что созданный и vlan 382 функционирует, как мультикастовый:
enable igmp_snooping
creаte igmр_snооping multicаst_vlаn multicаst 382
2. Теперь укажем на то, что порты с 1 по 24 являются абонентскими, а порты 25 и 26 задействуются, как источник:
cоnfig igmр_snооping multicаst_vlаn multicаst stаte enаble replаce_sоurce_iр 0.0.0.0 mеmber_pоrt 1-24 sоurce_pоrt 25-26
3. Такая опция требуется для того, чтобы мультикаст смог вычислить все порты последовательно:
cоnfig igmр_snооping multicаst hоst_timeоut 260 rоuter_timeоut 260 leаve_timеr 2 stаte enаble
cоnfig igmр_snооping quеrier multicаst quеry_intеrval 125 mаx_respоnse_timе 10 rоbustness_variаble 2
cоnfig igmр_snoоping quеrier multicаst last_mеmber_quеry_intеrval 1 stаte disаble
4. Теперь в качестве профилактики для магистральных портов нужно отключить функцию фильтеринга:
cоnfig limitеd_multicаst_аddr pоrts 25-26 аccess dеnу stаte disаble
5. Далее необходимо перекрыть клиентам доступ к вещанию своих каналов (то есть эти каналы никому не будут доступны для просмотра):
cоnfig multicаst pоrt_filtеring_mоdе 1-24 filtеr_unrеgistered_grоups
cоnfig multicаst pоrt_filtеring_mоdе 25-26 forwаrd_unrеgistered_grоups
В сущности настройка коммутатора окончена. После этого необходимо будет создать плейлист channеls.m3u, который будет заполнен следующим образом:
#EХTM3U
#EХTINF:0, НТB-Мир
udp://@239.255.1.1:1234
#EХTINF:0, PТР-Планета
udp://@239.255.1.2:1234
#EХTINF:0, Пpемьера
udp://@239.255.1.3:1234
#EХTINF:0,СТС
udp://@239.255.1.4:1234
#EХTINF:0, ТHТ
udр://@239.255.1.5:1234
Теперь можно открыть этот список, к примеру, vlс и получать удовольствие от просмотра.
Как смотреть IPTV на конфиге: сервер под Ubuntu, внешний IP-адрес с точкой доступа, используемый в качестве сетевого роутера
Для этих целей прекрасно подошел igmproxy, только изначально возник ряд неприятных проблем, таких как рассыпание картинки или невозможность просмотра с использованием wi-fi (при наличии среднескоростной точки доступа мультикаст создает перегрузку).
Лучшим решением данной проблемы стало преобразование потока UDP в НТТР, что можно осуществить посредством такой программки, как udprxy.
Алгоритм действий в данном случае следующий:
1. Необходимо установить и создать скрипт для старта:
if [ -n «`pidоf udpxу`» ] ;thеn
/usr/bin/killаll udpху > /dev/null 2>&1
fi
/usr/lоcal/bin/udpху -а eth0 -m еth1 -p 8888
#eth0 – обращен к локальной сети
#eth1 – обращен к провайдеру
#8888 – порт, который будет использоваться для трансляции. В принципе можно выбирать любой из свободных.
2. Теперь просто переносим наш скрипт в директорию /еtc/init.d/.
3. Далее выполним:
/usr/locаl/bin/udpxуy -a еth0 -m еth1 -р 8888
4. Теперь проведем проверку:
$ ps аx | grеp udp
1970 ? S 0:00 /usr/locаl/bin/udpxу -a еth0 -m еth1 -p 8888
15231 pts/0 D+ 0:00 grеp —colоr=autо udр
Для просмотра статистики можно воспользоваться http://172.16.0.1:8888/status .
По серверной части все готово. Осталось организовать доступ клиентам для просмотра трансляции. С этой целью создаем примерно такой плейлист:
#|ЕXTM3U
#ЕXTINF:0, DОM KINO
httр://172.16.0.1:8888/udp/239.255.1.1:1234
#ЕXTINF:0, RTR-PLАNETA
httр://172.16.0.1:8888/udр/239.255.1.2:1234
#ЕXTINF:0, RBК-ТV
httр://172.16.0.1:8888/udр/239.255.1.3:1234
#ЕXTINF:0,BIBIGON
httр://172.16.0.1:8888/udр/239.255.1.4:1234
#ЕXTINF:0,TVCI
httр://172.16.0.1:8888/udр/239.255.1.5:1234
С такими настройками можно без проблем смотреть любые передачи даже с использованием Wi-fi.
Как настроить IPTV и смотреть на телевизоре, подключение приставки, роутера, настройки
IPTV
IPTV – современная технология телевещания, сочетающая доступ в интернет и цифровой сигнал. Служит для увеличения количества каналов и программ с возможностью их просмотра на телевизоре, компьютере, смартфоне. Варианты подключения и настройки IPTV отличаются в зависимости от типа устройства.
Подключение приставки IPTV
- На дистанционный пульт нажмите “Setup”.
- Выберите “Расширенные настройки” настройте время и дату (необходимо для использования опций “Timeshift”, “Видео по запросу”.
- Выберите “Конфигурация сети” – “Ethernet”.
- Нажмите “Авто (ДНСР)” – “Ок”.
- В пункте “Состояние сети” проверьте “Ethernet”.
- Разверните меню “Серверы”, в поисковой строке NTP задайте pool.ntp.org.
- Перейдите в “Настройка видео” и отключите “Форсировать DVI”. Установите параметры разрешения экрана, задайте режим видеовыхода (согласно инструкции).
- Сохраните изменения. Перезапустите.
Приставка присоединяется к телевизору проводом в HDMI или AV выход.
Как подключить IPTV к телевизору через роутер
Для подсоединения IPTV к телевизору используется маршрутизатор. Скорость сети интернета должна быть более 10 Мбит/с.
С помощью LAN-кабеля
Подключение с помощью LAN-провода возможно, если интернет-провайдер применяет протоколы РРРоЕ или L2ТР.
Выполните следующие действия:
- Вставьте один конец LAN-кабеля в гнездо на маршрутизаторе.
- Второй конец вставьте в разъем на корпусе телевизора.
После подключения кабеля осуществите настройку:
- Откройте меню, найдите “Настройка сети”. Появится надпись “Кабель подключен”.
- Перейдите в подменю “Пуск”.
- Укажите вариант подключения к интернету: в меню “Настройки” найти “Вариант подключения”, выбрать “Кабель”, нажать “Далее”.
Беспроводной способ
В телевизоре необходимо иметь модуль Wi-Fi. Его отсутствие заменяется USB-адаптером.
- Откройте меню “Настройка” – “Настройка сети”.
- Выберите “Способ подключения” – “Беспроводная сеть”.
- Из перечня выберите нужное, введите пароль.
Конкретные настройки зависят от модели маршрутизатора
D-LINK
- Зайдите в веб-интерфейс :
- IP-адрес – 192.168.0.1.;
- логин – admin;
- пароль – admin.
- На главной странице выберите “Мастер настройки IPTV”.
- Откроется окно выбора LAN-порта.
- Выберите порт. Нажмите “Изменить” и “Сохранить”.
TP-LINK
- Зайдите в веб-интерфейс:
- IP – адрес – 192.168.0.1 или 192.168.1.1;
- логин – admin;
- пароль – admin.
- Во вкладке “Сеть” (Network) перейдите в пункт “IPTV”.
- Включите “IGMP Proxy”.
- Выберите “Режим” – “Мост”.
- Выберите порт LAN 4.
- Сохраните.
В новом веб-интерфейсе это будет выглядеть так:
- Зайдите в веб-интерфейс:
- IP-адрес – 192.168.1.1;
- логин – admin;
- пароль – admin.
- Откройте “Локальная сеть”, перейдите в “IPTV”.
- Включите “IGMP Proxy”.
- Запустите “IGMP Snooping”.
- Нажмите “Udpxy”, установив значение 1234.
- Примените настройки.
Net Gear
Выполните такие действия:
- Зайдите в веб-интерфейс:
- IP-адрес — 192.168.0.1 или 192.168.1.1 ;
- логин – admin;
- пароль – password.
- Выберите “Расширенный режим”, перейдите к меню “Настройка”.
- Найдите “Параметры интернет-порта”.
- Зайдите в подпункт “Перенаправить IPTV” и отметьте – LAN 4.
- Нажмите “Применить”.
ZyXEL
- Зайдите в веб-интерфейс:
- IP – 192.168.1.1;
- логин — admin;
- пароль – 1234.
- В меню “WAN” выберите поле “Choose Bridge Port(s)”.
- Укажите LAN-порт.
- Сохраните настройки.
Подключение и настройка IPTV в телевизорах различных моделей
Наличие функции SMART в телевизоре позволяет смотреть телепрограммы IPTV через интернет.
Смарт LG
Для подсоединения IPTV в телевизорах Смарт ЛЖ производится настройка одним из 2 способов.
Первый способ. Алгоритм действий:
- В меню “Магазин приложений” выберите “LG Smart World”.
- Установите приложение “Tuner”.
- Выберите “Сеть” и нажмите на “Расширение настройки”.
- В открывшемся окне снимите пометку “Автоматически”, измените DNS на 46.36.218.194.
- Выключите и заново включите телевизор.
Второй способ. Выполните такие действия:
- В меню “Магазин приложений” выберите “LG Smart World”.
- Найдите “SS IPTV”, скачайте и установите согласно подсказкам.
- Войдите в настройки и запишите код.
- Установите плейлист:
- перейдите по ссылке;
- введите записанный код;
- найдите и загрузите нужный файл.
- Выключите и повторно включите телевизор.
Smart Samsung
- На пульте выберите “Smart Hub”.
- Нажмите кнопку А.
- Перейдите к пункту “Создать учетную запись”.
- Введите:
- логин – develop;
- пароль – 123456.
- Нажмите “Создать учетную запись”.
- Задайте логин и пароль.
- На пульте нажмите “Tools” и выберите “Настройки”.
- Появится окно “Разработка”.
- Зайдите в “Настройка IP-адреса”.
- Синхронизируя устройство со Smart Hub, наберите 188.168.31.14 или 31.128.159.40.
- Нажмите “Синхронизация приложений” – “Enter”.
- В перечне приложений (на телевизоре) найдите “Stream Player”, активируйте.
- В поисковой строке “Playlist URL1” наберите http://powernet.com.ru/stream.xml.
- В результате появится перечень популярных каналов.
Philips
Для подсоединения IPTV используется виджет Fork Smart. Алгоритм действий:
- Зайдите в меню через пульт, включите “Просмотр параметров”.
- Показатели зафиксируйте.
- Вернитесь в меню, найдите “Параметры сети”.
- Произведите настройку IP-адреса.
- Запустите настройку, обозначив записанные данные.
- Перезагрузите телевизор.
- На пульте выберите “Smart”.
- Подключится vidget Megogo, который подключает Forksmart.
- Подключится Forkplayer и установится IPTV.
Как подключить и настроить IPTV на телевизоре, приставке, телефоне, планшете с Android в 2020:
Подключение компьютера
Для воспроизведения плейлиста необходимо:
- Откройте приложение.
- Нажмите на шестеренку.
- В строке “Адрес списка каналов” пропишите ссылку или обозначьте путь к скачанному файлу в формате M3U.
Существует универсальное приложение VLC Media Player. Добавляя плейлист:
- Запустите программу.
- В меню выберите “Media”.
- Нажмите “Открыть URL” ( файл в формате M3U – “Открыть файл”).
- В пункте “Сеть” введите адрес плейлиста.
- Воспроизведите.
Еще один вариант — приложение SPB TV Россия. Приобрети его можно в Microsoft Store — магазине Windows.
Как настроить и смотреть IPTV на устройствах Android (планшеты и смартфоны)
Установив приложение IPTV Player, вы сможете смотреть IPTV на устройствах Android (планшет, смартфон).
Приобретение услуги от провайдера за дополнительную плату
- Подсоединить устройство к сети. видео-проигрыватель, активировать его.
- Скачать с Play Market специальное приложение для установки m3u-плейлиста (с высокой средней оценкой).
- Запросить от провайдера файл или ссылку.
- Для загрузки каналов:
- зайдите в приложение IPTV;
- выберите “Добавить плейлист”;
- нажмите “Выбрать файл” или “Добавить URL”.
- Появится окно, в котором запишите данные, полученные от провайдера.
- Подтвердите действие.
- В появившемся окне появится перечень каналов.
Настройка с помощью приложений
Для просмотра IPTV используйте проверенные приложения. Скачайте и установите приложение, самостоятельно найдите плейлисты. Алгоритм действий по установке аналогичен первому способу.
IPTV Player
Приложение имеет удобный интерфейс. Каналы можно сортировать по категориям, на любимые передачи устанавливать статус “Избранные”.
В видео показана настройка приложения:
Kodi Player
Для комфортного просмотра IPTV необходима установка плагинов:
- Зайдите в “Дополнения”.
- Выберите “Мои дополнения” – “Клиент PVR” – “Простой клиент PVR IPTV”.
- Перейдите в настройки.
- Добавьте плейлист формата m3u.
В видео показана настройка и установка приложения:
Lazy Player
Приложение воспроизводит видео с сайтов Вконтакте, YouTube. Есть возможность добавления передач в “Избранное”.
Для добавления плейлиста используется загрузка файла или вставка URL–адреса.
Настройка приложения в видео:
Использование Proxy
При трансляции IPTV обнаруживаются неполадки — плохое качество изображения, звука. Чтобы избежать подобных проблем, настройте UDP-прокси в компьютере или маршрутизаторе. При активации функции в маршрутизаторе просматривайте телепередачи в планшете, смартфоне и других устройствах.
- c Play Market.
- Активируйте.
- Выберите “Интерфейс UDP-multicast”, затем “Интерфейс HTTP-сервера”.
- IP-адрес интерфейсов должен совпадать с IP-адресом сетевого подключения. Для этого кликните по значку с сетевым подключением: Windows 7 – “Состояние” – “Сведения”; Windows XP – “Состояние” – “Поддержка”.
- Введите IP-адреса в UDP-to-HTTP Proxy.
- Сохраните, установите и запустите.
- В меню выберите “Настройки приложения”, перейдите к “Настройки прокси”, введите IP-адрес и порт, заданные в UDP-to-HTTP Proxy.
- Выберите тип Proxy-сервера.
- Активируйте.
Интерактивное телевидение IPTV — это современный дизайн и широкий спектр возможностей. С использованием любых устройств воспроизведения мультимедийного контента просмотр телевидения переходит на новый уровень удобства и комфорта.
Строим полноценный IPTV/OTT сервис: Stalker Middleware
В этой статье я расскажу как установить бесплатную IPTV/OTT Middleware с открытым исходным кодом от компании Инфомир, зачем она нужна и какие возможности предоставляет пользователям и администраторам.
Статья будет полезна небольшим операторам и даже пользователям. Можно «поднять» у себя дома Stalker и использовать его для просмотра* бесплатных IPTV и интернет каналов на приставке. Самому организовать EPG и запись телеканалов.
*Stalker Middleware не содержит никаких ссылок на сервисы или телеканалы,
не открывает доступ к какому-либо контенту, а лишь предоставляет удобный
интерфейс для администраторов сервиса и конечных пользователей.
▍Что такое Middleware?
Я полностью согласен с этим определением. Построить IPTV/OTT сервис без Middleware невозможно. Разработчиков на рынке много, у каждой Middleware свои особенности: список поддерживаемых устройств, список поддерживаемых CAS-систем, пользовательский интерфейс, список поддерживаемых видеосерверов, разные API для биллинга, стоимость и поддержка.
Выбрав одно решение, оператор привязывается к Middleware и не может быстро и дешево поменять решение, потому что это потребует смены программного обеспечения на ТВ-приставках (или их замена, если список поддерживаемых устройств не совпадает). Так же потребуется заново провести интеграцию с биллингом, системой закрытия контента. Это время и деньги, и чем больше абонентская база, тем сложнее.
▍Почему Stalker?
В первую очередь Stalker интересен тем, что он бесплатный. Правда бесплатный, без пробных периодов и ограничения функционала. Исходный код можно скачать на GitHub.
Это очень важное преимущества Stalker перед решениями других производителей. Я работаю много лет в сфере IPTV и не знаю других бесплатных решений. Я спрашивал у коллег и даже разработчиков Инфомира, они тоже не знаю. Напишите в комментариях, если знаете другие бесплатные решения.
Не каждый оператор готов вкладывать деньги в покупку Middleware, потому что сразу не понятно зачем она вообще нужна. Вот спутниковые приемники принимают телеканалы, CAS-система защищает контент, приставки показывают видео, биллинг деньги считает. А что делает Middleware? Список каналов и погоду показывает?
Конечно же нет, но этого уже достаточно чтобы заинтересоваться бесплатным решением и установить Stalker на тестовый сервер чтобы познакомится поближе.
▍Установка
![]() | Чтобы установить Stalker придется установить более 200 пакетов в вашу ОС. Рекомендую выделить отдельную виртуальную машину или установить в docker-контейнер, иначе могут возникнут конфликты с другими веб-сервисами. |
Образ VirtualBox
Запуск образа VirtualBox дело не сложное, но опишу кратко как это делается:
- Установить VirtualBox. Сайт: www.virtualbox.org
- Скачать и распаковать zip-архив с образом. Актуальная ссылка на странице: http://wiki.infomir.eu/doku.php/stalker:start
- Запускаем VirtualBox, меню «Машина», нажимаем «Добавить» (Ctrl+A) и выбираем файл VmVirtualBox_Ubuntu14.04.4.x64_MW.Stalker.Demo
- Запускаем виртуальную машину, авторизуемся (test/test), смотрим IP-адрес машины и открываем в браузере административный интерфейс.
- В админ интерфейсе «Хранилища» изменить IP-адрес хранилища на IP интерфейса виртуальной машины
▍Docker контейнер
Давайте установим Stalker в Docker контейнер. Это быстро и удобно. Если вы не знаете что такое Docker и никогда с ним не работали, почитайте статью habrahabr.ru/post/310460. Она даст полное представление о работе контейнеров. Но сейчас эти знания не понадобятся.
Разработчики настоятельно рекомендуют использовать Ubuntu Server LTS, при этом 16.04 не поддерживают пока, а 12.04 уже мало кем используется. Docker позволит запустить Stalker на вашем любимом дистрибутиве.
Для продолжения, нам потребуется сам Docker и Docker-compose. Пример установки для большинства дистрибутивов:
Создадим рабочую папку, в которой будет у нас жить Stalker и скачаем docker-compose файл:
Запускаем утилиту, которая скачает последнюю версию Stalker и заполнит нам базу данных:
Ждем, пока скрипт выполнится. У меня это занимает около 4-х минут (что ж там за это время происходит?). Готово, админ панель Сталкера доступна по адресу:
Заходим по стандартному логину/паролю: admin/1.
Еще раз все вместе, чтобы показать как все просто, буквально 3 команды:
Ролик «Установка Stalker Middleware за 2 минуты»:
▍Установка без виртуализации и контейнеров
Можно установить и по старинке, просто установить необходимые пакеты и отредактировать несколько файлов вручную. Этот способ самый долгий и трудоемкий, но отлично подойдет, если вы собираетесь запустить сервер в Production.
Если у вас уже есть сервер с nginx+apache2+php5, то вам повезло, возможно Stalker запустится и без установки дополнительных пакетов. Но, насколько я знаю, nginx+apache2 уже редко используются вместе, nginx+php-fpm куда удобнее.
Инструкция от разработчика: wiki.infomir.eu/doku.php/stalker:install_and_configure
▍Настройка
После установки, первым делом хочется открыть портал на ТВ-приставке, чтобы убедится, что установка прошла успешно и оценить интерфейс со стороны пользователя. Но пока рано, там будет совсем скучно, давайте пока добавим немного контента.
По умолчанию, админ интерфейс на английском языке. Переключиться на русский вы можете внизу страницы:
▍Добавление телеканала
Разворачиваем меню «IPTV Каналы», открываем страницу «Каналы». В списке уже будет предустановленный телеканал «Test channel», удалите его и давайте добавим свой канал (кнопка «Add a channel»).
Заполняем основные поля: «Номер канала», «Название канала», загрузим логотип, поставим галочку «Базовый канал».
Нажимаем на кнопку «Добавить ссылку», появляется всплывающее окно с формой добавления URL канала и дополнительными опциями. Как мы видим из подсказки, в эту строку нужно ввести «solution+URL». Solution — это подсказка для плеера приставки, какую библиотеку использовать для воспроизведения. В большинстве случаем достаточно указать «auto» (например, «auto udp://239.255.1.1:5500»). Для HLS рекомендуемый Инфомиром solution — ffmpeg.
Так как у меня видеосервер Flussonic, я сразу включаю поддержку временных ссылок. Они нужны, чтобы защитить контент от несанкционированного просмотра.
В результате должно получится:
Пропустим пока настройку программы передач (EPG) и ТВ-архива (DVR). Сохраняем.
▍Добавление фильма
Меню «Видеоклуб» → «Список фильмов».
Процесс добавления фильмов не сильно отличается, но есть приятный бонус: автозаполнение. Достаточно написать название фильма/сериала на оригинальном языке и Stalker сможет получить метаданные из базы данных TMDB или Кинопоиск.
Вручную заполнять список актеров, логотип, режиссера, год выпуска, жанр и прочую информацию, без которой каталог фильмов на приставке будет выглядеть неполноценным, очень трудоемко, когда нужно добавлять много фильмов. Спасибо, Инфомир.
Есть возможность добавлять сериалы, с правильной сортировкой серий. Вам не понадобится заводить каждую серию как отдельный фильм и писать в названии номер сезона и серии.
Для каждого фильма или серии можно добавить несколько ссылок для просмотра в разном качестве, это может быть удобно, если у вас уже есть исходники в разных качествах и вы не используете мультибитрейтный HLS.
▍Программа передач (EPG)
Без программы передач строить сервис нельзя, людям уже давно не интересно просто щелкать каналы. EPG нужна не только для того, чтобы пользователь мог посмотреть как называется текущая передача и что будет сегодня вечером, а еще для организации видеоархива! Позволяя пользователям смотреть передачи, которые уже прошли (т.н. Catch UP).
Stalker умеет импортировать EPG из формата XMLTV.
XMLTV — популярный формат описания программы передач основанный на XML, поддерживается всеми поставщиками EPG. Содержит подробное описание: название, время начала, время окончания, жанр, описание, картинку, список актеров, возрастной рейтинг и прочую информацию.
Для продолжения настройки, нам надо добыть поставщика EPG. Они бывают платные, бывают бесплатные. Отличаются количеством телеканалов, количеством информации (например, картинки для каждой передачи и список актеров есть далеко не у всех). Рекламировать никакие сервисы не буду, найдите в Google программу передач в формате XMLTV и продолжим.
Открываем меню «IPTV каналы» → «EPG». Кнопка «Добавить EPG».
Нам потребуется вставить ссылку на веб-сервер, где лежит xml файл. Из собственного опыта добавлю, что поставщики чаще всего выкладывают на закрытый паролем ftp-сервер, и в добавок еще архивируют, поэтому в Stalker вставляем ссылку на localhost, а в crontab добавляем скрипт, который будет скачивать и распаковывать XMLTV в нужную папку.
После добавления ссылки, нажмите «обновить». Если все сделали правильно, получится:
Теперь переходим в настройки телеканала. Меню «IPTV каналы» → «Каналы», нажимаем редактировать наш телеканал. Нас интересует раздел «EPG», указываем ID нашего телеканала и, при необходимости, корректируем время под наш часовой пояс.
Открываем текстовым редактором XMLTV файл и смотрим. В данном примере: «Первый канал» — 1, «Россия 1» — 2, «ТВЦ» — 3.
Для каждого телеканала придется вручную указывать ID. Способа автоматизировать это я пока не знаю.
▍Внешний вид
Инфомир уже давно разрабатывает новый современный интерфейс, но он пока выключен по умолчанию. Я не заметил в нем явных багов, работает очень даже неплохо, именно его скриншот в начале статьи.
Чтобы активировать его, переходим в меню «Настройки» → «Внешний вид». На этой странице можем ознакомится со всеми доступными темами.
Нажимаем «Применить» под темой «Stalker 5x — graphite».
▍Запускаем портал на приставке
Надеюсь, у вас есть под рукой приставка MAG? С помощью пульта ДУ или USB-клавиатуры, переходим в настройки приставки → «Серверы» → «Порталы» и указываем URL сервера, куда вы установили Stalker.
URL для клиентов: http://ip/stalker_portal/c/
Сохраняем, перезагружаем приставку и попадаем в нашу Middleware. Никакие логины и пароли не потребуются, по умолчанию авторизация не требуется.