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


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

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

YAKIMENKO_YU_V.rar ELECTRUM - ELM.mov WIN_20170528_18_03_08_Pro.mp4 Arhiv WinRAR.rar LYULCHUK_A_M.rar pli5_3g_pv.zip subway-surfers-1.71.1-mod-5play.ru.apk rsmav.exe YxNlYj7CiLM.jpg digitals_07.02.2012.exe posters.pdf 2.Іnstrukcіya z vіddalenogo blokuvannya.doc Tekst.docx Dlya ZHeki.rar OZI 1.28-1.29.rar 28795379_2095813663985159_545611903421171302_n.jpg KAtalog_Mebigrand_1-4.pdf Foto_24Rtg5M256Hpiks‮gpj.exe SpyHunter4.28.5.4845ru.rar Na_zatverdzhuyu.zip Kr Open_2017_04_08.pdf surf_demo.dem Screenshot_55.png engine_i486.so IMG_4829.MOV Zuma_Deluxe_Full.Portable.exe 1B prazdnik — kopiya.zip zauvazhennya po topo - Vakulіvska-3.rar IMG_4889.JPG VID_20160328_231843.3gp vhzNY4NW2e0.jpg 16 04 16 12.18.25-12-18-25.png 15 04 16 02.57.54-02-57-54.png Jatone VSOP Special.jpg Danilchenko.PDF 15 04 16 10.51.58-10-51-58.png Russkiy paren zanyalsya seksom so zreloy krasotkoy poka roditeli uehali na dachu_1.mp4 VID_20160329_225736.mp4 S51.wotreplay Slava rodu Zadornov.docx custum.zip shot_027.jpg Statistika_UKRAЇNA_za_2016.03.01-03.30.html HASP WS2008_2012_W8 x64.zip Tom 3.zip Psiholog_det_sad.mpg Page.jpg WP_20140919_005.mp4 karkozova mazda 6.rar Bezymyannyy2.png 02-06.PDF yva.xlsx Result.exe SKT_Tub_MamofillinCream_50ml.jpg Reglament_dnevnoy_dozor-2016.doc 11.06.16-VSІM PRO VSE(Pіst)-VASILEVA-UKR.mp3 TVRK.rar Screenshot_16.png Otchet iyun 2017.7z 0515_aac.mp3 Kredit Market.rar Desktop.rar MІY scenarіy 1 mol.docx SAS-itog.pdf r.PNG pokemongo_0.29.3.apk Screenshot_6.png foto.rar odnoklasniki.exe vropeyska komіsіya.doc painttool sai russian.rar Brify.rar NOVOKHATSKAYA_YU_E.rar Windows Loader.exe VID_20180312_213319.mp4 Promtehkomplekt.zip 3k Good Base.rar MAH05760.MP4 IMG_5637 - kopiya.JPG LTMarketProfitPack_2.5.3_edu.zip Podstanciya 17.rar msert.exe PicsArt_1473242966180.jpg Tomazo Albinoni - Koncert dlya skripki s orkestrom op.9 №10 (Allegro; Adagio;All.mp3 Amm Bordy Oktyabr, montazh, pechat, orenda.PDF SDC12059.JPG Plenka glyanec s laminaciey_1370h1170mm.tif AK-74U vmesto Galil-a.7z solonenko ekaterina.rar 46234f5e2a.jpg Solovey.pptx Dj Jedy feat Olesya May - Prekrasnoe Daleko.mp3 Screenshot_2016-10-10-23-02-41.jpg McQueen371_Go.mp3 2016-07-12 14.13.26-1600x1049.jpg Praktikum po marketingu.rar samooborona dlya spartakiady.mp4 2008.02.01 - Vstrecha_5 let.7z pizza.MOV EF-GG965F_001_Front_White.psd


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

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

UP