Iptv своими руками сервера

Iptv своими руками сервера

Региональные представители:

IPTV стример своими руками на базе Linux и DVB карты TBS6985 DVB-S2 Quad Tuner PCIe Card

Наверное, сегодня, только самый маленький и ленивый провайдер не задумывался о создании дополнительных сервисов для своих абонентов, что позволило бы повысить привлекательность предоставляемых услуг провайдера.

Термин TriplePlay, что по версии Википедии означает — маркетинговый телекоммуникационный термин, описывающий модель, когда пользователям по одному кабелю широкополосного доступа предоставляется одновременно три сервиса — высокоскоростной доступ в Интернет, кабельное телевидение и телефонная связь, уже давно укрепился в умах маркетологов провайдеров телекоммуникационных услуг.

Если Вы Интернет провайдер, то уже, как минимум, одну услугу из трех своим абонентам Вы предложить смогли. Сейчас мы постараемся на один шаг приблизиться к пресловутому TriplePlay и попробуем создать вторую, а именно IPTV.

Когда провайдер задумывается о предоставлении услуги IPTV, перед ним становиться вопрос, а где же добыть этот самый iptv? На этот вопрос существует много ответов и каждый из них по-своему правильный, но наиболее часто выбор становиться за покупкой у поставщика IPTV услуг готового пакета, либо же строительство собственной головной станции IPTV. Первый вариант обладает существенным недостатком — он не дает пищи для ума и нас этот вариант не устраивает, да еще и придется платить деньги каждый месяц за транспорт до поставщика потока ну и конечно же за саму услугу. Поэтому мы будем идти по пути — все сделаем сами не хуже, а где-то даже лучше других, вместе с этим, займем свой мозг и время, да еще и сэкономим деньги.

Коротко о подходах доставки телевидения потребителю

Телевидение, как таковое, может быть доставлено до потребителя огромным количеством способов. Попробуем разобраться какие способы бывают:

  1. Кабельное аналоговое
  2. Кабельное цифровое
  3. Эфирное аналоговое
  4. Эфирное цифровое
  5. Спутниковое
  6. Эфирное по технологии MMDS
  7. IP телевидение

На самом деле этот список можно было бы продолжать еще довольно долго, но суть статьи не в этом.

Все представленные способы хороши, однако, мы сегодня говорим об IPTV и втором шаге на пути к провайдеру TriplePlay услуг, поэтому отбросим все и остановимся на последнем пункте, а именно, IP телевидение. Сам по себе термин IPTV не указывает нам, каким способом при помощи протокола IP телевидение достигнет потребителя, а таких способов тоже существует не мало. Наиболее популярные сегодня способы доставки ТВ до клиента это IPTV Multicast, IPTV Unicast, ну и наверное не для кого не секрет какую популярность сегодня набирает проект Torrent TV (torrent-tv.ru).

Откуда берется телевидение?

Теперь, когда известно о технологиях доставки ТВ абонентам, нужно решить еще одну задачу: где взять собственно сами ТВ каналы? На этот вопрос ответ довольно прост — там где они есть в достатке и в хорошем качестве и это место у нас с Вами над головой, а именно, на геостационарной орбите, там, где «пасутся» телекоммуникационные спутники.

Начнем строительство

Теперь, когда мы вкратце разобрались с технологиями, узнали о месте жительства ТВ каналов, можно приступить к строительству головной станции IPTV. Но сначала нам необходимо определиться, что для этого потребуется.

Во-вторых. Настроенные на нужные спутники антенны с необходимым количеством LNB(Low-Noise Block converter — дословно малошумный конвертор-моноблок).

В-третьих. Сервер с установленным Linux и имеющим на борту материнской платы достаточное количество свободных PCI-Express слотов, ну и поскольку речь идет об IPTV, то сетевая карта тоже пригодиться.

В-четвертых. Карта для приема спутникого телевидения, здесь выбор пал на четырехголовую карту TBS6985 DVB-S2 Quad Tuner PCIe Card, которую мы любезно можем Вам продать.ТЫЦ.

Приступим

Собрав все это в одну кучу и установив спутниковую карту в сервер начнем с установки драйвера спутниковой карты.

Драйвера для карточки лучше всего брать на официальном сайте производителя в разделе загрузок http://www.tbsdtv.com/download/ , ну а поскольку выбор пал на карту TBS6985, то и качать драйвера будем именно для нее http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v130506.zip .

1. Создадим директорию к примеру

2. Скопируем в созданную директорию содержимое скаченного архива с драйвером

3. Распакуем находящийся в архиве собственно драйвер

4. Передем в директори с распакованным драйвером

5. Далее необходимо определиться какое ядро linux у нас установленно

5.1. Если ядро третьей ветки но при этом система 32х битная, то необходимо выполнить следующую команду:

Читайте также:  Как сделать карандашницу своими руками пошагово

5.2. Если ядро версии 2.6.x 32 бита, то

5.3. Для любых 64битных ядер выполним:

6. Ну и теперь пришло врема выполнить сборку и установку самих драйверов

7. Если все прошло успешно, а в случае если в системе установлены все необходимые пакеты для компиляции модулей ядра (kerner headers и build tools), то иначе и быть не может, остается только перезагрузить наш сервер.

Для этого можно выполнить

8. После загрузки Linux проверим загрузились ли только что собранные драйвера:

На что в ответ в случае успеха получим

А в каталоге /dev/dvb должны появиться четыре устройства

На этом этап установки драйвера закончен, можно приступать к этапу добычи «небесного телевидения».

Установка и настройка программы стриминга.

Поскольку сами по себе драйвера ничего особо делать не умеют, а задача стоит получить со спутников телеканалы и транслировать их в сеть, то необходим некий инструмент для этих целей. К счастью, благодаря проекту Astra (http://cesbo.com) сделать это довольно не сложно.

Для начала скачаем последнюю версию Astra http://cesbo.com/forum/files/download/10-astra-source/ и распакуем во временную директорию.

Сама по себе установка очень простая, нужно выполнить последовательность команд:

Если все прошло успешно, то можно считать, что финиш недалеко.

Осталось только настроить Астру для приема спутниковых каналов и определиться со способом трансляции их в сеть.

Для настройки приема и трансляции в Astra используются скрипты написанные на языке Lua. Вдаваться в описание этого языка не будем, так как об этом языке немало известно Google.

Рассмотрим настройку приема каналов и трансляции их Multicast-ом на примере.

Создаем файл в директории /etc/astra/hb_12597.lua и сразу дадим ему права на испольнение

Рассмотрим пример подробнее. Данный скрипт содержит два блока, первый — это создание потока, в нем описываются параметры приема транспондера со спутника, в примере речь идет о спутнике HotBird и блок трансляции, здесь уже мы разбираем спутниковый поток на каналы и описываем способ их отправки в сеть.

Подробное описание настройки приема и вещания в сеть можно на русском языке найти официальном сайте разработчика http://cesbo.com/wiki/ru:astra:stream:configuring

Наиболее важным в данном примере является описание параметров спутникового приема, где:

adapter — устройство приема /dev/dvb/adapterX

type — выбор стандарта DVB

lnb — настройка параметров LNB конвертера

tp — описание параметров принимаемого транспондера (частота, поляризация, скорость)

Для транслируемых каналов определены следующие параметры:

name — имя канала

pnr — номер канала в спутниковом потоке

output — способ трансляции канала в нашем случае это UDP Multicast

localaddr — адрес локального интерфейса с которого будет осуществляться отправка потока.

Filter — фильтрация потоков в канале. Так как канал EuroNews транслируется с множеством языковых дорожек, а нам достаточно одной (русской), то в примере мы указали, что транслировать будем только две дорожки канала (видео и звук с русским переводом).

Если запустить этот скрипт и в настройках iptv плеера указать источник udp://@239.255.1.90:1234 , то на экране плеера непременно должен появиться первый российский канал.

Ic-line — продажа сетевого оборудования © 2009-2020

Источник

Iptv своими руками сервера

В этой статье я поделюсь первым опытом настойки и эксплуатации цифрового телевидения или IPTV, собранного «на коленке», расскажу о некоторых «подводных камнях», а так же дам советы новичкам.

Данная статься основана на личном опыте автора и не претендует на звание идеального руководства по настройке IPTV

Вообще, данный, так сказать «проект» был реализован где-то в далеком 2010 году, и может уже считаться устаревшим. С тех пор уже много чего изменилось. Добавлю лишь, что добиться стабильной работы, описанного ниже примера, на современном железе и софте не удалось, но принципиальная идея, конечно же осталась неизменна.
В будущем (я надеюсь) поделюсь опытом реализации кабельного ТВ в небольшом общежитии.

Аппаратная часть

Необходимые и достаточные условия для приема видеопотока со спутника и его вещания в локальную сеть.

Сервер IPTV — собственно, устройство, которое будет принимать, обрабатывать и вещать в локальную сеть видеопоток со спутника. В моем случае это обычный ПК под управлением MS Windows 2003 SP2, с одноядерным Intel Pentium4 тактовой частотой 2.6Ггц, 512Мб оперативной памяти, двумя сетевыми платами(можно обойтись и одной) и самое главное — спутниковым ресивером TechniSat SkyStar USB 2.
Очевидно, чтобы обеспечить прием сигнала со спутника необходима тарелка и так называемый спутниковый конвертер. Я использовал тарелку триколор(55 см) и универсальный спутниковый конвертер (Ku-диаразона) Golden Interstar GI-201.
Теперь нужно определиться со спутником и транспондером, с которого мы хотим получать видео поток. Большая их часть транслируют каналы в шифрованном виде, посмотреть без «танцев с бубном» их не удастся. Но на некоторых спутниках есть транспондеры вещающие часть каналов в открытом виде. Посмотреть спутники и их транспондеры можно, например, на постоянно обновляющемся, сайте lyngsat.com. Я настраивался на сигнал одного из транспондеров спутника ABS1.
Поймать сигнал со спутника дело не легкое, кропотливое и с первого раза не всегда удачное, в общем, статей на тему как и куда направлять тарелку в интернете предостаточно, подробно описывать процесс не буду. Скажу лишь, что в комплекте с драйверами спутниковых ресиверов SkyStar, поставляется приложение Server4PC, которое облегчит поиск сигнала. Можно воспользоваться приложениями сторонних разработчиков, типа Fast Satfinder.

Так же хочу заметить, что одновременно принимать и обрабатывать сигнал можно только с одного транспондера, одним спутниковым ресивером. Но существуют спутниковые конвертеры с двумя или более выходами, т.е. имея несколько спутниковых ресиверов можно обрабатывать сигнал нескольких транспондеров, увеличивая таким образом количество каналов, принимаемых с одной тарелки.

Программная часть: SkyCast Server

Подробнее о настройках SkyCast Server

Для обработки и передачи видеопотка по локальной сети, будем использовать связку бесплатных утилит: SkyCast Server + VLC.
SkyCast Server — программа, разработанная только для ресиверов SkyStar. Позволяет получить поток со спутникового ресивера SkyStar и передать его по сети. В нашем случае используем эту программу как мост между ресивером SkyStar и программой VLC.
Загружаем программу, в установке она не нуждается, просто распаковываем архив. Открываем блокнотом файл skycast.ini:

    Секция [COMMON] — настойки параметров спутникового ресивера SkyStar.

MACSS2=01020304 — последние 8 цифр МАС адреса SS2/SS3 без разделителей (узнать MAC или физический адрес можно набрав в командной строке команду ipconfig /all).
CARDTYPE=0 — тип карты. 0 — SkyStar2, 1 — SkyStar3.
SS3NUM=1 — номер SS3 в системе по порядку, начиная с 1.

Секция [MULTICAST1] — параметры мултикаста

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.

Теперь произведем некоторые настройки уже в оболочке программы:

    Вкладка: Tuner/LNB/Net — настройка параметров приёма спутникового сигнала

    — Раздел LNB — параметры спутникового ковертора
    Параметры для универсального спутникового конвертера ku-диапазона:
    LOF 1: 9750 мГц (9750000 кГц)
    Switch: 11700 мГц (11700000 кГц)
    LOF 2: 10600 мГц (10600000 кГц)

    — Раздел Tuner setting — настройка параметров транспондера
    Настройки одного из транспондеров спутника ABS1:
    Частота транспондера: 12640 мГц (12640000 кГц)
    Поляризация: Вертикальная (V)
    Скорость потока: 22000 кб/c

    После установки необходимых параметров нужно нажать кнопку Tune. Если все выполнено правильно в разделе Current отобразятся две шкалы, показывающие уровень сигнала (шкалы в режиме реального времени не обновляются).
    — Так же, не забываем установить галку Multicast и сохранить настройки в файле конфигурации, нажав кнопку Save.

    Вкладка Common — общие настройки

    В этом разделе нас интересует только значение выпадающего списка — Config. В нем необходимо выбрать имя файла параметров приема сигнала, созданный и сохраненный во вкладке Tuner/LNB/Net.
    Выбранный файл параметров приёма, будет автоматически загружаться при старте программы.

    Вкладка MultiCast Filter — настройка фильтра видеопотока, вещаемого в сеть средствами multicast.

    Видеопоток принятый с выбранного нами транспондера, может содержать ненужные нам данные, например шифрованные или «промо» каналы, дабы уменьшить нагрузку на ресурсы компьютера и сети можно (и нужно) их исключить, настроив фильтр.

    После нажатия кнопки Scan будет выполнен анализ потока, в правом списке отобразятся доступные каналы. Далее, кнопкой «Информация кодека» можно увидеть PIDы каждого аудио и видео ряда

    Как вы могли заметить, ключ dst= содержит мултикаст адрес:порт для каждого из каналов.
    Т.е. для просмотра какого-либо канала, клиенту достаточно обратиться на соответствующий мультикаст адрес.

    Хочеться заметить, что работа VLC стабильностью не отличаеться. Часто могут возникать утечки памяти и сбои в работе плеера

Настройка сетевого оборудования

Настройка сетевого оборудования, необходимая для «правильной» работы IPTV

Для нормальной работы IPTV (точнее для нормальной работы мультикаста) необходим сетевой коммутатор (или просто свитч) с поддержкой IGMP snooping. В принципе IPTV будет работать и с коммутаторами без поддержки этой функции (обычно это неуправляемые офисные свитчи за несколько сотен рублей, так или иначе в технических характеристиках коммутатора производитель указывает поддерживаемые протоколы). Разница между этими коммутаторами заключается в обработке мультикаст трафика. Свитч без поддержки IGMP обрабатывает мултикаст как широковещательную рассылку т.е. весь приходящий поток отправляет во все порты. Коммутатор же с поддержкой IGMP ресурсы расходует разумнее и отправляет мультикаст трафик только тем клиентам, которые его запросили.
По умолчанию поддержка IGMP snooping у большинства коммутаторов выключена, поэтому её достаточно просто включить (в административных настройках устройства активировать функцию IGMP snoping).
Пример для Cisco 2960:

Всё! Теперь поток мультикаст будет отправляться только тем клиентам, которые запросили. Хочу заметить, что если в сети есть еще коммутаторы на них тоже необходимо включить IGMP snooping (querier включать на них НЕ нужно)

Теперь о подводных камнях:
Иногда, без каких-либо видимых причин, коммутатор (Cisco 2960) начинал рассылать поток мултикаст во все порты. Опытным путем было установлено, что это происходит когда в сеть включается/выключается какой-либо коммутатор. Оказалось причиной тому Spanning Tree Protocol а именно TCN.
Рекомендации Cisco для решения данной проблемы:

По какой-то причине мой коммутатор ни в какую не понимал эту команду (не исключено, что дело в кривых руках), хотя модель и версия ios входят в список поддерживаемых устройств.
Так же была опробована команда spanning-tree portfast на портах — проблему решило частично, иногда флуд повторялся.
В общем обдумав все за и против. отключил STP командой no spanning-tree vlan.

Самое лучшее решение — «пустить» поток IPTV в отдельном VLAN

Настройка клиентского оборудования

Настройка клиентского оборудования, для просмотра IPTV на телевизоре, на примере цифровой ТВ-приставки D-Link DIB-120

Итак, для просмотра, принятых со спутника, каналов на приставке D-Link DIB-120 нам понадобится, так называемый middleware, грубо говоря связующее программное обеспечение между пользователем и IPTV сервером. Представляет он из себя WEB страницу находящеюся на WEB сервере в локальной сети. WEB сервер
WEB сервер для middleware можно поднять там же, где настроен сервер IPTV, либо на отдельной платформе. Если у вас установлен MS Windows можно добавить компонент Internet Information Service, либо воспользоваться продуктами сторонних разработчиков. После этого, на WEB сервере, в каталог сайта по умолчанию, добавляем файлы mw.html и DIB120_API.js — это и есть тот самый middleware.
Для проверки можно воспользоваться компьютером, подключенным к локальной сети, открыв в браузере WEB страницу: http://адрес_WEB_сервера/mw.html. Если браузер открывает пустую страницу значит все работает.

Ознакомиться и загрузить файлы можно на странице нашего сайта: 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(остановка), а так же отображение информации о текущем состоянии и номере канала.
Еще в скрипте реализованы некоторые другие функции (в комментариях написаны их назначения), но они не используются. При необходимости, их можно задействовать, добавив обработку этих функций в вышеописанную функцию обработки нажатия кнопок пульта.

Источник

Читайте также:  Как отремонтировать ротор электродвигателя своими руками
Оцените статью