Поделиться В Контакте Поделиться в Моем Мире@Mail.Ru Добавить в Одноклассники Поделиться в Facebook
Язык:

IPTV-стример на базе getstream_a84


IPTV-стример на базе getstream_a84
Как бы ни был VLC хорош с его набором модулей и функций, а также утечками памяти и глюками. Нет, я уважаю этот проект, но просто иногда не нужно всех этих плюшек.
Итак, начнем. Все действия производятся на Ubuntu Server 10.04 LTS с 4 DVB-картами Omicom S2 pci rev.3.
Для установки потребуются драйвера (не работают на ядрах 2.6.37 и выше), кстати подойдут ко многим DVB-картам и драйвера для версии ядра 2.6.38-8, и пакеты build-essential subversion linux-libc-dev libssl-dev gettext sysv-rc-conf linux-headers-`uname -r` git-core mercurial ncurses-dev dvb-apps libxml2-dev dialog libevent-dev libglib2.0-dev libncurses5-dev iptraf snmp snmpd monit.
Можно поставить драйвера от Игоря Липлианина, они должны лучше работать с картой, ну и якобы производительней. Но поставить их у меня не получилось, дрова откомпилились, но карта так и не определилась в системе.
Считаем, что карты уже стоят внутри сервера:

sudo aptitude install build-essential subversion linux-libc-dev libssl-dev gettext sysv-rc-conf linux-headers-`uname -r` git-core mercurial ncurses-dev dvb-apps libxml2-dev dialog libevent-dev libglib2.0-dev libncurses5-dev iptraf snmp snmpd rrdtool monit

После установки дополнительных пакетов качаем сами драйвера и устанавливаем:

cd /usr/src
wget http://valiant.pp.ua/files/v4l-omicom-s2.tar.bz2
tar -xjvf v4l-omicom-s2.tar.bz2
cd v4l-omicom-s2/
make KERNELRELEASE=$(uname -r)
make KERNELRELEASE=$(uname -r) install

После компиляции перезагружаем машину и проверяем наличие устройства:

zeleniy@streamer:~$ ls /dev/dvb/
adapter0 adapter1 adapter2 adapter3


Отлично карты определились, можно перейти к настройке.
Создадим файл 11389 и пропишем туда следующие настройки:

S 11389000 H 27500000 AUTO

S или S2 — это DVB-S или DVB-S2
11389000 — частота транспондера в KHZ
H — поляризация
27500000 — символьная скорость
AUTO — коррекция ошибок FEC, может быть AUTO, 3/4, 7/8 и так далее.
Создадим еще один пустой файл куда будут записываться каналы и параметры для них:

touch 11389.ch

Пишем в терминале:

scan -a 0 11389 > 11389.ch

Ключ -a 0 указывает на каком адаптере нужно провести сканирование.
После завершения сканирования в файле 11389.ch появятся следующие записи:

Inter:11389:h:0:27500:257:258:1
NTN:11389:h:0:27500:513:514:2
K1:11389:h:0:27500:769:770:3
MEGA:11389:h:0:27500:1025:1026:4
MTV UA:11389:h:0:27500:1281:1282:5
Enter Film:11389:h:0:27500:1537:1538:6
K2:11389:h:0:27500:1793:1794:7
Enter Music:11389:h:0:27500:2049:2050:8
Inter+:11389:h:0:27500:2305:2306:9
Gamma:11389:h:0:27500:2561:2562:10
Hockey:11389:h:0:27500:2817:2818:11
RTR Planeta:11389:h:0:27500:3073:3074:12
Impact TV:11389:h:0:27500:3329:3330:13


Разберем что есть что, по порядку: название канала, частота приема, поляризация, номер адаптера, символьная скорость, video pid, audio pid, sid. Нам нужно знать только название канала и его sid (последняя цифра).
Теперь перейдем к настройке getstream:

cd /tmp/
wget --no-check-certificate https://cesbo.com/hg/getstream_a84/archive/default.tar.gz
tar -zxvf default.tar.gz
cd getstream_a84-default/
./configure
make
install getstream /usr/bin/getstream

Теперь займемся файлом конфигурации getstream. Создадим файл 11389.conf.
С описанием параметров в файле можно познакомиться здесь. Хочу обратить внимание, что не стоит указывать в секции input параметр epg, т.к. во-первых наблюдаются глюки типа не с первого раза запускается просмотр на компьютере или останавливается канал, пока не передернешь. Ну а во вторых толку с епг в таком виде + лишний трафик, гораздо интересней прикрутить программу телепередач в iptv player.
Создадим скрипт /etc/init.d/getstream11389:

#! /bin/sh
#
# Some things that run always
# <commands here>
# Carry out specific functions when asked to by the system
case "$1" in
start)
sleep 10
/usr/bin/getstream -c /home/zeleniy/stream/11389.conf -dd > /var/log/getstream11389.log &
echo "Started."
;;
stop)
kill -9 `cat /var/run/getstream11389.pid`
echo "Stopped."
;;
*)
echo "Usage: /etc/init.d/getstream {start|stop}"
exit 1
;;
esac
exit 0

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

sudo chmod +x /etc/init.d/getstream11389
sudo update-rc.d gestream11389 defaults


Запускаем:

sudo /etc/init.d/getstream11389 start

Iptraf'ом смотрим что пакеты улетают, и пробуем смотреть на компьютере например VLC.
Ну а теперь настроим monit, он отслеживает работу getstream и при падении перезапускает процесс без участия администратора.
В файле /etc/default/monit выставляем параметр startup=1.
В файле /etc/monit/monitrc выставляем параметры:

set daemon 60 # Время проверки процесса в секундах, т.е. через каждую минуту. Можете поставить #сколько угодно
set logfile syslog facility log_daemon #Путь к логу
## Т.к. у меня 4 адаптера и запущено 4 копии getstream, то
####GETSTREAM 10722#########
check process getstream0 with pidfile /var/run/getstream10722.pid
start program = "/etc/init.d/getstream10722 start"
stop program = "/etc/init.d/getstream10722 stop"
####GETSTREAM 10759#########
check process getstream1 with pidfile /var/run/getstream10759.pid
start program = "/etc/init.d/getstream10759 start"
stop program = "/etc/init.d/getstream10759 stop"
####GETSTREAM 10806#########
check process getstream2 with pidfile /var/run/getstream10806.pid
start program = "/etc/init.d/getstream10806 start"
stop program = "/etc/init.d/getstream10806 stop"
####GETSTREAM 11389#########
check process getstream3 with pidfile /var/run/getstream11389.pid
start program = "/etc/init.d/getstream11389 start"
stop program = "/etc/init.d/getstream11389 stop"


Запускаем:
sudo /etc/init.d/monit start

В итоге, если getstream упадет, то monit через минуту его перезапустит и отпишет в syslog
Дополнительно можно мониторить по snmp, что я и делаю рисую график через rrdtool выходного интерфейса, т.к. графики я смотрю чаще, чем логи на сервере.
Итого:

zeleniy@streamer:~$ uptime
22:58:16 up 54 days, 23:16, 1 user, load average: 1.74, 2.00, 1.98


Ах да чуть не забыл самое главное — проверить уровень сигнала:

zeleniy@streamer:~$ sudo femon -H -a 0
FE: STV090x Multistandard (DVBS)
Problem retrieving frontend information: Operation not supported
status SCVYL | signal 80% | snr 69% | ber 0 | unc 191 | FE_HAS_LOCK


Ну а теперь особо интересная вещь=)

Счастливые обладатели телевизоров Samsung серий B, C и D с функцией Internet@TV и Smarthub могут смотреть IPTV прямо на телевизоре без всяких глюкавых приставок.
Достаточно получить доступ к файловой системе телевизора и установить виджет. Все подробности здесь.
У меня телевизор серии D, поэтому процесс опишу для него, но по телнету я к нему не смог добраться, т.к. телек был прошит последней прошивкой от самсунга, поэтому не рекомендую обновлять ПО в телевизоре. Мне из всех этих виджетов интересен только nStreamPlayer, поэтому я буду устанавливать его отдельно. Но только для этого нужен веб сервер, думаю что у всех найдется=). Есть оригинал виджета и его мод, мне по душе мод, поэтому качаю его. Хотя можно поставить оба одновременно и выбрать для себя, достаточно добавить в widgetlist.xml параметры второго виджета.
Создадим на веб сервере в корне файл widgetlist.xml:

<?xml version="1.0" encoding="utf-8"?>
<rsp stat="ok">
  <list>
    <widget id="nStreamLmod">
      <title>nStreamLmod</title>
      <compression size="20000" type="zip" />
      <description></description>
      <download>http://yourIP/widget/nStreamLmod.zip</download>
    </widget>
<widget id="nStreamPlayer">
      <title>nStreamPlayer</title>
      <compression size="20000" type="zip" />
      <description></description>
      <download>http://yourIP/widget/nStreamPlayer.zip</download>
    </widget>
</list>
</rsp>

Теперь положим виджеты сюда:

mkdir -p /var/www/widget
cd /var/www/widget
wget http://ru.16mb.com/nStreamLmod.zip
wget http://kartina.pristavka.de/nktvplayer/nStreamPlayer.zip
chmod -R 755 /var/www/widget/

Установить виджет без доступа по telnet получилось следующим образом:

1. Войти в SmartHub.
2. Нажать красную клавишу А, создать учетную запись с именем пользователя develop и любым паролем, залогинится под ним.
3. Нажать синюю клавишу D, зайти в меню Разработка-->Настройка IP-адреса сервера заходим и ставим IP-адрес своего сервера.
4. Клацаем Назад и выбираем Синхронизация приложений пользователя. Ждем пока виджеты установятся.
5. Закрываем все после установки, выходим из Smarthub, снова заходим и видем наши виджеты.
6. Запускаем например Lmod.

Появляется страница с настройками вводим туда:

Плейлист URL yourIP/channels.xml вводим адрес, где расположен список каналов в формате xml, можно m3u, подойдет от VLC, но тогда не будет доступен телегид.
Прокси для UDP — вводим адрес прокси, если используете udpxy, чтобы не переделывать ссылки из udp в формат udpxy
Коррекция времени — думаю понятно что тут писать
Начальный размер — ставим 0 16х9
Программка Яндекс — пишем ru или ua, кто где
Код региона187 для всей Украины
Форма иконки — форма логотипа канала, может быть 0 — квадрат или 1 — авто
Нажимаем Enter и виджет перезагружается с новыми параметрами.

Посмотреть код региона и id канала для программы можно на сайте Яндекса, код будет написан в адресной строке:

http://m.tv.yandex.ua/187/

Теперь чтобы для каждого канала отображался свой логотип и программа, нужно в списке каналов в тегах description указать id канала на сайте Яндекса, например для Интера это 308:

http://m.tv.yandex.ua/187/?channel=308&when=2&day=15420

Кусок из плейлиста:

<channel>
        <title>Интер</title>
        <stream_url><![CDATA[udp://239.255.3.1:1234]]></stream_url>
        <description>308</description>
        </channel>


Желаю Всем приятного просмотра!

Облако меток:

IMG_0162.JPG AusLogics_BoostSpeed_Premium_7.4.0.0_RePack_(&_Portable)_by_D!akov.rar trim.8946A6DA-C55D-42D4-84DE-A4F2EE18970D.MOV 18.02.16-VSІM PRO VSE(Dzhaz)-VASILEVA-UKR.mp3 f_87858e6674cddbbd.jpg 00016.MTS Tavriya , Varus.rar Ceftioclin part III.doc 1Cv8.dt 2016-07-18 19.12.54-1600x900.jpg Kuzin.pptx kedr.rar install.exe minus org.mp3 Petuhi.rar images.jpg Shot00005.jpg Laba 3.zip labaratorna robota№1 VKO.docx h1wa11ww.rar FORMU.pdf FS Tipovye shemy elektro.rar 120h200.tif Konstrukciya i proektirovanie zhidkostnyh raketnyh dvigateley - G.G. Gahun.PDF IMG_1688.JPG Video - puh.mpg Kostya.mov Shotgun.png Zapis.rar Chickenfoot.torrent Kalendar - Gruden 2016 - OBKLADINKA.pdf furtak.doc 88888.ZIP SKYMAL_1_Level.pdf Proverka dubus.esc 2_1.tif V70926-132815.mp4 IMG_5565.jpg Dj_Ozon_TRANSMUTATION_04_04_2016.mp3 00177.MTS AA_v3.4.exe.zip VSE S FLESHKI!.zip mega.rar DSC00899.JPG bluevpndunclientics-rus.apk Rezyume proekta.rar 18.rar IMG_20170330_193039.jpg CNQXWQ6W#423937690.zip Plakaty_A1_FudPaks.rar Snimok ekrana (11).png zayka 3.jpg TSISELSKAYA_E_S.rar 1.jpg DarkOrbit Calculator v1100.rar vip2.png GG.rar 6 1.rar Utrennik 07.rar 2016-07-17 17.01.51-1600x900.jpg vk.com.har 1.mp3 8fb4f77700a4b9011d2ea9df61b2dc76.jpg chernyahovskogo odessa.zip Decatylen_13s_+TAG2s_VO2.mp4 SSH+Brute (by z668).rar zadanie.png IMG_20160123_071845.jpg vypusk 6.rar yule.rar Woman 100%.7z Cineo_C4040_OM.pdf Katalog 2016 - 2017 (KOZ).docx Tavriya.jpg SCENARIY REDAKTORSKAYA.wav SS.rar Stanki.zip Camera.zip Action by panDor.rar Bezymyannyy.png 15 04 16 10.51.21-10-51-21.png olfen_demo4.mp4 kolonna 2.tif Fotozvіt Apteka Dobrogo Dnya Cerpen.rar 20170707_123525.jpg POSTER s adresom dlya Kieva FINISH.psd fіnansoviy zvіt.rar 8.12.16.WMA s-100 melkie dlya avto.rar Petrakov, Layosha Gavro-Baner_150x200cm.rar Pamyatki arhitektury.rar listovka.rar ux1998 1.rar radarrect.asi Pіdsumki viborіv.rar 110101_002.MP3 15 04 16 03.17.06-03-17-06.png bandicam 2017-09-03 03-29-29-007.mp4 Sєpariі kolaboracіonіsti.txt freecdukr.zip


При помощи сервиса обмена файлами files.d-lan.dp.ua Вы без труда и регистраций сможете обмениваться личными файлами с друзьями и коллегами, быстро загружая их и сохраняя на сервере. После загрузки файла, Вы получите ссылку, которую сможете размещать на блогах, форумах, личных сайтах, а также отправлять друзьям по электронной почте. Наш хостинг файлов бесплатный, работает без каких-либо ограничений по количеству загружаемых файлов. Сразу после выбора файла начинается его загрузка, после которой Вы незамедлительно получаете рабочую ссылку. Кроме того, наш хостинг уникален тем, что Вы можете в полной мере насладиться всем спектром удобных функций, не проходя при этом утомительную процедуру регистрации. Мы ломаем стереотипы - теперь для того, чтобы скачать файл, Вам не придется пересмотреть множество рекламных баннеров, отправлять текстовые сообщения на короткий номер, или покупать «голд аккаунты» за огромные деньги. Все это в прошлом. Если контент не нарушает действующего законодательства Украины, Вы можете легко его загрузить, будь то игра, фильм, музыка, программа, или электронная книга. Если Вы устали от торрентов с их перебоями, наш быстрый файлообменник станет достойной альтернативой. Загрузка на наш хостинг осуществляется напрямую через браузер и не требует установки дополнительных приложений. Все, что Вам нужно - это нажать кнопку «Выбрать файл» и выбрать интересующий файл на жестком диске. Если Вы хотите обратить внимание на свой материал, можете создать пост на блоге, с подробным описанием и, конечно же, фотографиями. Ограничение по размеру для одного файла на нашем сервисе составляет 2000 мегабайт, однако Вы всегда можете воспользоваться архиватором (к примеру, популярным WinRar), разбить материал на тома, и загрузить его отдельными файлами. При помощи той же системы Вы можете объединить несколько небольших файлов в одном архиве для экономии времени. Если Вы цените простоту в обращении и надежность, files.d-lan.dp.ua создан для Вас. Итак, подведя итоги Вы должны были заметить что наш файлообменник бесплатный, без регистрации, а самое главное это быстрый обмен файлами

Файлообменник сети D-lan 2012-2017
Использование любых материалов возможно только с разрешения
автора сайта.

UP