Поделиться В Контакте Поделиться в Моем Мире@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>


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

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

2016_03_09.zip Bez imeni-1.png BMZ foto new.tif Pershiy tanec.mp3 mama part 2.zip TeamViewer 10.0.47484 Final + Portable.zip Monakovo soya 2016.rar Vzlom ok.ru v5.1.exe hello teacher.mp3 3.png Florida RP (( Original )).rar Parfenovka Samara ALBOM.pdf Alene.rar ekrnu.exe Screenshot_2017-02-20-11-13-32-900_com.android.chrome.png HDSentinel.exe E_Global_HighFive_patch.zip KS ExtriserCheat Demo v1.0.exe Lyundovskiy VK.7z Lestovka A5_7cen_24.04_Berezniki.rar venchanie obrabotka.rar 13.rar CC Advanced7.02_Win7x64.zip 2000X2000_BANER_LYVERSI__dd.tif 12 yanvarya.rar Scepleniya Valeo&Sachs.rar !Visit to Ukraine!.mp4 Obrazec.rar Mathcad 14.iso Perfect half - chapter 28.rar DCIM.zip abada.png LB59386_V8_3_17_WR.wvs Parikmaher novaya samokleyka-1 700h1200 mm.jpg CHertezh 1..dwg 00.sav 20160313_030130.mp4 Funkcіonal_Motivacіya, akcії_3 ch..MP4 Prilozheniya.zip 2222.rar witryna NY (1).rar xdasxas.rar Katalog_SUN98.pdf ShugoShjnZ Free Version [64 bit].rar mods.zip Reklamy by Jessar Fchat 4sek.exe DNE BOB KST UW0928.zip Video.mp4 Snimok.JPG foto sh_10.08.17.rar DSC07232.JPG k serpac4.rar 2017 1H Still life cross category visuals.zip Vipuskniy.rar proj.rar AZ8+RS+Cabinet+RFQ+package+v2.zip M2630-TH.K.1-K.65.pdf V71206-132231.mp4 zustrіch.rar IMG_20180926_094440.jpg Instruction.pdf Zvyazok KAB.zip skrinmey.jpg foto.rar NACHALO.vbs BOSS.rar WinRAR.exe VID_20160626_134803.mp4 image.jpeg magniy.pdf NORIK_P_A.rar Manual.pdf Lekciya 5.docx video-2016-12-05-18-47-11.mp4 Foto Sebastiano 13.04.18.rar prv.zip Visnovki dіysnі CAUDALIE .rar racionka3.png karta pustyh.JPG verstka.pdf Orajet Druk Pomaranchevі z bіlim+(Podvіyna lamіnacіya GLYANEC)1.2h0.8.tif Downloads.zip bitcoin account.rar ASC 8.1 + Crack.rar MY Smeshnye.rar beloruskaya.rar Bezymyannyy3.jpg Skroll svadba u morya s korrekcieysuper2 (5).tif 7 17 2 0071.7z DSC_0019.jpg bedro malenkiy.psd land.rar 228322.exe Tanec na vypusknoy v stile Oskar (Amerikano) . Starshaya gruppa detsada № 160 g. Odessa 2017..mp4 Sadok 2 17.05.2016.pla M2U00335.MPG RU_Page_2.tif VID_20180620_163616.mp4 DSC_5462.MOV Flash 06-0-35-06-231.jpg


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

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

UP