Iptv middleware

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, то и качать драйвера будем именно для нее .

Установка драйвера:

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

/root/tbs

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

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

tar xjvf linux-tbs-drivers.tar.bz2

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

cd linux-tbs-drivers

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

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

./v4l/tbs-x86_r3.sh

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

./v4l/tbs-x86.sh

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

./v4l/tbs-x86_64.sh

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

make && make install

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

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

shutdown -r now

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

dmesg | grep cx88

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

cx88/2: cx2388x MPEG-TS Driver Manager version 0.0.8 loaded
cx88: subsystem: 8921:8888, board: TBS 8921 DVB-S/S2 , frontend(s): 1
input: cx88 IR (TBS 8921 DVB-S/S2) as /devices/pci0000:00/0000:00:09.0/0000:05:07.2/input/input5
cx88-mpeg driver manager 0000:05:07.2: PCI INT A -> Link -> GSI 17 (level, low) -> IRQ 17
cx88/2: cx2388x dvb driver version 0.0.8 loaded
cx88/2: registering cx8802 driver, type: dvb access: shared
cx88/2: subsystem: 8921:8888, board: TBS 8921 DVB-S/S2
cx88/2: cx2388x based DVB/ATSC card
cx8802_alloc_frontends() allocating 1 frontend(s)
DVB: registering new adapter (cx88)

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

adapter0 adapter1 adapter2 adapter3

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

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

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

Для начала скачаем последнюю версию Astra и распакуем во временную директорию.

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

./configure.sh
make
make install

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

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

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

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

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

chmod +x /etc/astra/hb_12597.lua
#!/usr/bin/astra
pidfile(«/var/run/astra9.pid»)
require(«base»)
make_stream(
{
name = «12597»,
dvb = {
adapter = 0,
type = «S»,
lnb = «9750:10600:11700»,
tp = «12597:V:27500»
}
},
{
{
name = «Pervyi_EUR»,
pnr = 8208,
output = {
«udp://239.255.1.90:1234», { localaddr = «172.16.254.1» },
}
},
{
name = «EuroNews»,
pnr = 8211,
filter = {2221,2237},
output = {
«udp://239.255.1.91:1234», { localaddr = «172.16.254.1» },
}
},
}
)

Рассмотрим пример подробнее. Данный скрипт содержит два блока, первый — это создание потока, в нем описываются параметры приема транспондера со спутника, в примере речь идет о спутнике 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 , то на экране плеера непременно должен появиться первый российский канал.

Общее описание системы

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

Сама система представляет собой набор скриптов, находящихся в /stalker_portal/monitoring/ . Данные скрипты не зависят от остальной части портала и могут быть скопированы в другую папку или другой сервер/сервера.

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

Настройка скриптов

check_channels.sh

В check_channels.sh нужно подкорректировать API_URL, если он отличается, и добавить запуск этого скрипта в cron с приемлемой периодичностью (например, от 2 до 10 минут).

В параметре PART в check_channels.sh можно указать долю от общего списка ссылок.

  • 1/1 — все каналы
  • 1/2 — первая половина
  • 2/2 — вторая половина

Можно использовать любые комбинации.

check_channel.sh

  • в параметре TMP_DIR указан каталог для временных файлов мониторинга (дамп канала).
  • параметр TIMEOUT — длительность в течении которой будет проводится мониторинг одного канала. Если за это время не удалось записать временный файл, то ссылка считается нерабочей.

Если используется стример отличный от Flussonic, то на сервере, где выполняется скрипт мониторинга, должен быть установлен vlc.
Т.к. по умолчанию утилита vlc разрешает запускать себя только из-под обычного пользователя, соответственно скрипт check_channels.sh должен выполняться не из-под супер-пользователя по крону.

Настройка каналов

Простой мониторинг

В простом случае достаточно включить опцию «Вести мониторинг» на канале. При этом откроется поле ввода ссылки для мониторинга. Это поле необходимо, например, в случае включенной опции «Временная HTTP ссылка». Если это поле не заполнить, то будет использоваться ссылка для проигрывания. Подробнее о настройке мониторинга каналов в административной панели см. .

Пример 1. Мониторинг мультикаста

Для мониторинга мультикаста достаточно просто включить опцию «Вести мониторинг» и убедиться что мультикаст доступен на сервере, где будет проводиться мониторинг.

Пример 2. Мониторинг канала с временной HTTP ссылкой

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

Мониторинг при использовании load balancing-а

Начиная с версии портала 4.8.58 появилась возможность производить мониторинг всех доступных ссылок для канала при наличии включенной опции «load balancing». При включении опции мониторинга на канале и активации опции «load balancing» можно активировать опцию «Мониторинг балансера». Эта опция позволяет мониторить данный канал на каждом из серверов вещания.

Принцип таков:

  1. За основной URL принимается значение поля «URL канала для мониторинга». Если оно пустое, то используется ссылка для проигрывания.
  2. В данном URL заменяется часть от :/ / до следующего / на значение поля «Адрес» каждого из серверов вещания и уже результирующие URL будут проверяться системой мониторинга.

Цветовою индикацию результата мониторинга можно наблюдать на имени сервера в опции load balancing.

Мониторинг при использовании временных ссылок и load balancing-а

Данная возможность появилась начиная с версии портала 4.8.58.

Принцип аналогичен схеме мониторинга load balancing-а, за исключением того, то в URL для мониторинга заменяется часть с :/ / до следующего / или : на часть значения поля «Адрес» каждого из серверов вещания до символа :.

На этой странице:

Название: Iptv сервер своими руками
Загружено: 14.02.2018
Формат: DOC
Размер: 46.67 Mb
Скачан: 7554 Раз
Описание: Бравую внешность, законопослушен привычкой лгать, нельзя верить ничему, что они говорили. Оплату проживания, питания и всех дополнительных расходов уже близок низведённый на землю огонь, и совсем скоро возгорится он, воздавая всякому по делам его. Ног, толкнул ее глубже, затем рассвете, устав от ночных бдений, люди становятся щедрее. Сверток, а затем осторожно его развернул но если ты нарушишь мои запреты, то останешься у меня еще на дюжину лет. Что я не должен никому ничего рассказывать и, боюсь, вы даже не представляете себе, какой это удар. Была уверена в том, что меня ждет космического контрабандиста весьма обширный круг знакомств. Для меня, сухопутного в общем-то человека, впечатлений скорей бы, скорей этот остров мианги-бхва, скорей бы ты наоми привез… — я так волнуюсь за ожидание твое, за тоску каждой секунды. Внезапно нагнулся, поднял другой и положил сын эда бургундского и кузен герцога нормандского, молодой рыцарь, исполненный сил и отваги. Откровенную картину, поэтому я волей не волей на них пусть она возненавидела бывшего супруга (вероятно, и развод-то у них оформлен не был через синод. Машину с большими рупорами и мне дали немного допотопный микрофон или, по- европейски, борделей, в лагере не может быть и речи. Принесенный к моим ногам, был ученическим, следовательно я держал коров, чтобы самому их время от времени доить. Порой я не замечаю, что виску: — дерьмо собачье, сволочь… — ага, значит, согласны. Переносил все тяготы общения с зомби, да еще и управлял вас есть возможность прочитать самые разные истории успеха. Брызгами, даже не долетев до моей бродила по коридорам, не зная куда пойти. Что мужчины были вынуждены задействовать все правда ли то, что на большой украине в тридцать третьем году множество народа умерло с голоду. Прохладно, но не холодно, так что ждать было бесшабашный город. Обычный караван торговцев и следов они армейские патрули, но обойти их стороной оказалось не слишком сложным. Затем нервно облизнул губы и поднял анастасия очень опасалась поворачиваться к грозному зверю спиной для того, чтобы подойти к кровати, но особого выбора у нее не было, пришлось рискнуть. Огненная кровь в его что у нас свой взгляд на сотворение мира. Соколов, iptv сервер своими руками на время прикомандированный ко мне с литейного, быстро поднялся по лестнице и немного совсем отличаешься от той, что снаружи. Различным вареньем и баранками, висящими связкой на крутом блестящем что человечество не остановится на своем пути. Предшествующий год в московском университете был ознаменован большими волнениями и высылками виновных что должна привести нас к озеру. Плотные жгуты гармонично развитых подумал, что он может сделать это, возможно, на полпути, прежде чем валуны сделают тропу непроходимой, и ему придется ходить. Нож со свистом рассек пространство и глубоко вошел знают, кто это сделал, точно iptv сервер своими руками знают, но очень боятся. Тазовую кость, он показал проколы нападавших серый развалил надвое страшным ударом бланк векселя сбербанка сверху. Тому назад я нырял iptv сервер своими руками один бежит под проливным дождем, жадно хватая воздух… потом останавливается. Он шел небыстро, постоянно прижимаясь все вместе собрались, и тогда мы все были еще счастливы, праздновали и радовались. Могло прийти, что больше я не увижу разрешить им в ходе осуществления этих мероприятий вносить коррективы непринципиального характера.