Организация IPTV с помощью GetStream

В данной статье приведу методику поднятия сервака для вещания в сеть IPTV.

Использованное оборудование: мамка Gigabyte GA-H61M, проц Intel-i5, память DDR-3 4Gb, винт 250 Gb, блок питания 550W. Сетевая карта Intel 1000 Mbit/s. Помимо этого стандартного оборудования в компьютере установлено 3 штуки DVB-S2 карты(модель TBS-6984), которые приобретались здесь http://www.buydvb.net/tbs-6984-pcie-dvbs2-quad-tuner-tv-card_p33.html

 

 

 

 

1. Установка на сервер Debian.

Заходим на FTP, распространяющий дистрибутивы Linux и качаем образ диска с установкой, например debian-6.0.5-amd64-netinst.iso можно скачать здесь: http://www.debian.org/distrib/

Берём флешку и с помощью программы UNetBootin записываем на неё скачанный образ.

Включаем в биосе загрузку с нашего флеш-диска и перезагружаем. Как правило, установка не вызывает никаких трудностей: необходимо будет указать язык, страну, переключение раскладки, ip-адрес, создание пароля для рута и тд. Единственное! При выборе дополнительного ПО надо поставить галку «SSH сервер» — это позволит нам работать удалённо с сервером(с помощью PuTTY).

2. Установка дополнительных пакетов.

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. Установка драйверов для TBS-6984.

apt-get update
apt-get install linux-headers-`uname -r` build-essential linux-kernel-devel
mkdir /mnt/usb/tbs
cd /mnt/usb/tbs
wget http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v120617.zip
unzip tbs-linux-drivers_v120617.zip
tar xjf linux-tbs-drivers.tar.bz2
nano linux-tbs-drivers/linux/drivers/media/dvb/dvb-core/dmxdev.h
#define DVR_BUFFER_SIZE (10*188*1024*16)
cp dvb-fe-cx24116.fw /lib/firmware/
cd linux-tbs-drivers
./v4l/tbs-x86_64.sh
make
make install

После чего перезагружаемся (команда reboot). Если всё установлено правильно, то в директории /dev/dvb лицезреем наши адаптеры(один адаптер на один вход):

Какому адаптеру назначен какой вход определяется опытным путём при подключении кабеля от спутниковой тарелки(но это делается немного позже — после того, как установлена программа GetStream или с помощью femon). Например у меня адаптеры назначились таким образом:

4. Установка GetStream_a84

Почитать о программе можно здесь: https://bitbucket.org/cesbo/getstream_a84/wiki/Home . В настоящий момент автор прекратил работу по поддержке этого программного обеспечения и сейчас работает над более продвинутой программой Astra: https://bitbucket.org/cesbo/astra/wiki/Home

Скачиваем в /usr/src/
Так качать с репы:

hg clone https://bitbucket.org/cesbo/getstream_a84

Команды для установки:

### hg clone https://cesbo.com/hg/getstream_a84
### tar xf getstream_a84-default.tar
### tar zxf default.tar.gz
### cd getstream_a84-default
./configure
make
cp getstream /usr/local/bin

Если конфигурационные файлы уже имеются, то можно и запустить программу GetStream:

/usr/local/bin/getstream -c /usr/src/getstream/configfile123 -d

Запуск в фоне:

screen -d -m -S 11727 /usr/local/bin/getstream -c /usr/src/getstream/11727 -d

А потом чтоб подлючиться к консоли гетстрима

screen -r 11727

Для каждого адаптера необходимо запускать свой экземпляр программы со своим конфиг.файлом. Можно также эти строки прописать в /etc/rc.local, чтобы автоматом запускалось при загрузке компа:

# Satelites
screen -d -m -S 12518 /usr/local/bin/getstream -c /usr/src/conf.0.12518 -d
sleep 1
screen -d -m -S 12548 /usr/local/bin/getstream -c /usr/src/conf.1.12548 -d
sleep 1
screen -d -m -S 12579 /usr/local/bin/getstream -c /usr/src/conf.2.12579 -d
sleep 1
screen -d -m -S 12610 /usr/local/bin/getstream -c /usr/src/conf.3.12610 -d
sleep 1
screen -d -m -S 12640 /usr/local/bin/getstream -c /usr/src/conf.4.12640 -d
sleep 1
screen -d -m -S 12670 /usr/local/bin/getstream -c /usr/src/conf.5.12670 -d

Пример конфигурационного файла для adapter0, настроенного на частоту 12518 МГц (спутник ABS-1 75E):

pidfile "/var/run/conf.0.12518.pid";

adapter 0 {

    packet-buffer 140;
    budget-mode 0;
    stat-interval 120;

    dvb-s {

        lnb-sharing 0; // 0-питание конвертера выключено, 1-включено
        lnb {
            lof1 9750000;
            lof2 10600000;
            slof 11700000;
        };
        transponder {
            frequency 12518000;
            polarisation V;
            symbol-rate 22000000;
        };

    };

    stream {name "Peretz";
        input {pnr 504;};
        output-udp { remote-address 239.0.100.1; remote-port 1234; local-address 192.168.1.21; ttl 1; };
    };
};

Данный конфиг направляет мультикаст канала «Перец» на сетевую карту eth1, имеющую ip: 192.168.1.21. Теперь, если эта сетевая подключена к коммутатору, то можно на другом компе словить этот мультикаст с помощью проигрывателя VLC. Для этого выполняем «Открыть URL» и вводим сетевой адрес мультикаста: udp://@239.0.100.1:1234

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

3 комментария: Организация IPTV с помощью GetStream

  1. admin говорит:

    Установка драйверов S2-LIPLYANIN :
    Для начала обновим систему:
    root@iptv# apt-get update && apt-get dist-upgrade
    Установим недостающие пакеты:
    root@iptv# build-essential linux-headers-generic mercurial subversion libncurses-dev libpng12-dev
    Качаем v4l-dvb дрова s2-liplianin
    root@iptv# cd /usr/src
    root@iptv# hg clone http://mercurial.intuxication.org/hg/s2-liplianin/
    root@iptv# cd s2-liplianin
    root@iptv# make menuconfig
    P.S если есть какие то ошибки, попробуйте снять галочку с Multimedia support> DVB/ATSC adapters> FireDTV and FloppyDTV
    root@iptv# make && make install
    root@iptv# reboot

  2. admin говорит:

    Ещё один способ установки драйверов:
    git clone git://linuxtv.org/media_build.git
    cd media_build
    ./build
    make install

  3. micelin говорит:

    Я вас добавил, и отправил авторизацию!

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