Создание IPTV на базе Astra. Доступно о доступном.

Astra — программное обеспечение с открытым исходным кодом (для Linux), модульной архитектурой и встроенным языком программирования на LUA для решения широкого спектра задач в области цифрового телевидения. Идеально подходит для операторов связи, гостиниц и курортов.

Официальный сайт — cesbo.com
Разработчик ПО — Андрей Дылдин (Екатеринбург)

Как известно, создание IPTV на основе профессиональных аппаратных решений является достаточно дорогостоящим удовольствием и для мелких кабельных операторов такие суммы не всегда подъёмны в качестве инвестиций и последующей окупаемости. Поэтому лучшим решением для них остаётся использование относительно недорогих тюнеров, встраиваемых в персональный компьютер — SkyStar, TBS, DVBSky и т.п., приобрести которые можно через интернет-магазин на aliexpress.com.

1. Собираем сервер. В качестве сервера можно использовать обычную персоналку. Главными критериями — при выборе железа для будущего сервера — являются такие условия:
— какие платы планируется использовать в качестве спутниковых приёмников
— сколько каналов планируется вещать в сеть.

Если у тюнера один вход (например SkyStar 2), то принять более одного транспондера не получится, отсюда максимальное количество каналов ограничено их количеством на данном транспондере — обычно не более 15 тв-каналов. Если плата с несколькими адаптерами, то соответственно принять и вещать можно будет уже каналы с нескольких транспондеров. Из опыта использования, среди кабельщиков популярны следующие модели спутниковых тюнеров: TBS6984, TBS6985, S952.

Если планируется вещать достаточно большое количество каналов не забываем о хорошей сетевой карте, например Intel 1Gb. В целом, для сервера (стримера IPTV на 60-70 каналов) можно рекомендовать следующее оборудование:
Материнская плата — Gigabyte GA-Z77
Процессор — LGA1155
Блок питания — не менее 700 ватт, выбираем понадёжнее — не экономим
Оперативная память — не менее 2 Gb
Жёсткий диск — флешка Transcend 8 Gb (но не китайская!)

2. Установка Linux.
— качаем образ netinstall дистрибутива: http://cdimage.debian.org/debian-cd/6.0.7/amd64/iso-cd/debian-6.0.7-amd64-netinst.iso
— разворачиваем скачанный образ на флешку не менее 512 Mb (любую, хоть китайскую) при помощи UltraISO или unetbootin (гуглим)
— загружаемся с данной флешки и проводим процесс установки ОС на флешку с которой будет работать наш сервер. Как правило, в процессе установки никаких сложностей не возникает. Единственное, что при выборе дополнительного ПО поставьте галки напротив: «Сервер SSH»(для возможности удалённого управления с помощью PuTTY) и «Стандартные программы…». После окончания установки вынимаем установочную и загружаем Linux.

Устанавливаем дополнительные пакеты, необходимые нам для работы:

apt-get install mc openssl gettext libssl-dev screen monit dvb-apps htop iftop ifstat vlan build-essential mercurial libncurses-dev libevent-dev libglib2.0-dev unzip linux-headers-`uname -r` gpm command-not-found

3. Установка драйверов для плат. Как установить драйвера для конкретной карты ищем на официальном сайте производителя.
Пример для DVBSky s952. Для начала качаем Linux Firmware (см. на странице http://dvbsky.net/Support.html)

root@dvbsky:~# cd /usr/src
root@dvbsky:/usr/src# wget http://dvbsky.net/download/dvbsky-firmware.zip

Внутри данного архива есть два файла: dvb-fe-ds300x.fw и dvb-fe-ds3103.fw. Копируем их в папку /lib/firmware.

Качаем непосредственно драйвера для ядра 2.6.x (именно такое ядро в установленной нами Debian):

root@dvbsky:~# cd /usr/src
root@dvbsky:/usr/src# wget http://dvbsky.net/download/s2-liplianin-f5cd7d75370e-bst-20120711.zip

Распаковываем и переименовываем папку для удобства:

root@dvbsky:/usr/src# unzip s2-liplianin-f5cd7d75370e-bst-20120711.zip
root@dvbsky:/usr/src# mv s2-liplianin-f5cd7d75370e-bst s2-liplianin

Открываем любимый mc , заходим в папку: /usr/src/s2-liplianin/v4l/scripts/ и устанавливаем на все файлы права доступа 0777.

Устанавливаем липлянинские драйвера:

root@dvbsky: cd /usr/src/s2-liplianin
root@dvbsky:/usr/src/s2-liplianin# make
root@dvbsky:/usr/src/s2-liplianin# make install

После установки драйверов, желательно перезагрузиться и посмотреть обнаружила ли ваша система адаптеры. В случае установки 5 плат, должно быть 10 адаптеров(по общему количеству входов):

4. Монтируем папки в оперативку. Так как наша операционка установлена на флешке, для снижения количества чтений-записей на неё, лучше смонтировать папки в оперативку:

root@dvbsky: mkdir /usr/tmpfs
root@dvbsky: chmod 0777 /usr/tmpfs
root@dvbsky: tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0
root@dvbsky: tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
root@dvbsky: tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
root@dvbsky: tmpfs /var/run tmpfs defaults 0 0
root@dvbsky: tmpfs /usr/tmpfs tmpfs defaults,noatime,mode=0755 0 0

5. Установка Astra. На начальном этапе, разработчик рекомендует настроить сетевой буфер. Для этого необходимо создать файл net.conf в каталоге /etc/sysctl.d со следующим содержимым:

net.core.rmem_default=262144
net.core.rmem_max=8388608
net.core.wmem_default=262144
net.core.wmem_max=8388608

Изменения вступят в силу после перезагрузки (можно выполнить позже).
Качаем и распаковываем последнюю версию Astra:

root@dvbsky:/# cd /usr/src
root@dvbsky:/usr/src# wget http://cesbo.com/download/astra-stable.tar.gz

Заходим в каталог с распакованной астрой и запускаем configure.sh:

Компилируем и устанавливаем:

root@dvbsky:/# cd /usr/src/cesbo-astra-64c4a168c471
root@dvbsky:/usr/src/cesbo-astra-64c4a168c471# make
root@dvbsky:/usr/src/cesbo-astra-64c4a168c471# make install

После установки можно выполнить команду astra, в результате которой увидим версию установленной в системе программы:

root@dvbsky:/usr/src/cesbo-astra-64c4a168c471# cd /
root@dvbsky:/# astra
Astra v.3.10
Usage: astra script [argv]
root@dvbsky:/#

6. Конфиг-файл для Astra. Вещаем в сеть.
Создадим файл конфига a0.lua в директории /usr/src , который будет брать с транспондера 12015 МГц телеканал «Восьмой» (нтв+):

#!/usr/bin/astra

require("base")

log.set({ filename = "/var/log/astra.log", debug = true })

pidfile("/var/run/astra.pid")

make_stream(
  {
    name = "My_super_test",
    dvb = { type = "S", adapter = 0, lnb = "10750:10750:10750", tp = "12015:R:27500", lnb_sharing = false }
  },
  {
    { name = "8 kanal", pnr = 22101, output = {"udp://192.168.1.22@239.0.100.1:1234"}},
  }
)

Каналов, естественно, может быть и больше (см.открытые каналы на этой странице). Достаточно размножить строку:

    { name = "NAZVANIE_KANALA", pnr = PNR_KANALA, output = {"udp://ADRES_SETEVOY_KARTY@239.0.100.XXX:1234"}},

Устанавливаем права доступа на запуск файла a0.lua.
Теперь файл-конфига можно запустить и если к нулевому адаптеру действительно подключен выход конвектора на 36-ой градус, то по адресу в вашей сети «udp://@239.0.100.1:1234» лицезреем вещаемый телеканал (к примеру, с помощью проигрывателя VLC).

Для каждого адаптера создаётся свой файл-конфиг, как на скрине:

О том, как запускать конфиги в фоновом режиме, с помощью программы screen, я писал здесь: http://conture.by/post/819

Запись опубликована в рубрике Linux, Телевидение с метками , . Добавьте в закладки постоянную ссылку.

Добавить комментарий