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


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

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

Plakat 19.jpg KLASS_cenniki desatka_A3.rar 122GOP.mp4 klyuchik.rar Novaya papka.rar CCI22062017.pdf DOWNLOAD_20160909010000_1002_2.avi License.txt Risunok9.jpg 27-29.07.2016 Dimych v Odesse.rar positions_holidaydecor.com.ua-2016-01-23-Google.UA.xlsx Implementation of protocols_Mamenko_lapiy.rar roiorioir.rar klasniy kutok druk vishivanka..jpg Steko_2017(2).zip HLX59JcbM-0.jpg foto otgruzki.rar Novaya papka.7z UMH.7z Dokument Microsoft Word.docx Arhiv.zip semplHeavensGate1980.mkv 222.rar Misa - radius.rar RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911.zip Fila Marine M.rar film.mp4 1.rar YAblunya.jpg 04-00-00.MP3 vypusk 004.MPG IMG_0364.JPG Berdyanskiy r-n, trava.mpg 6019d5aa87cc9315cb1f457641918f8a.docx MED II MOD.2.rar app__99x210.pdf trim.DF1B9B91-5975-44BB-9395-406EC7B2B3F2.MOV Inna - Hot (Disco mix.).mp4 PX045A_x86_702JA_s.exe CONTEMPORARY_.pdf 2.6.167_3A3 250g + gl.lam.odnostoron..tif qwerty.exe Skrinshot_160519_001.jpg MVI_0681.MOV 1.rar MOV07692.MPG Anastasiya sitik1.tif Vipiska (1).pdf 8648-setup_ast-test_player_4.3.3.1.exe DR_USB_AC56_102362252013_Windows.rar karta.PNG scanner.rar 01-Swedish House Mafia - Greyhound.mp3 Urok 4. Massivy.pptx Plakat 10.jpg Bez nazvaniya (1).jpg 12345.png VID_20170606_195836.3gp Nikita.rar 0605-4996.rar trim.DAF43240-9586-456D-B6A3-5192AE5A6DDD.MOV otchet na zp 21.04.17 dv i sibir.ods 75818-reconnect-add.zip irPodborIObrabotkaObektov.epf 0000000.rar 2 priglasitelnye.tif Multik ot kidTV 'ZHivotnye Afriki' i ih zvuki Razvivayuschiy multik dlya detey (zvuki zhivotnyh).mp4 WinRAR ZIP archive.zip Naprirode SMART.zip 15.05.21-01.jpg advB.11.US.ppt HW2.rar Ocheretyanyi Kit 022.rar Action plan.pptx zavisanie.mp4 Novaya papka (2).rar TKALICH.MP3 05.16.rar VID_20160524_145830.3gp Pechat srochno!.rar Avatarl.jpg VID_20160414_162851.3gp Vipravlenі zvіti._ar SAM_1522.JPG druk.rar ch1.zip IMG_20160601_122212144.jpg VID_20180802_140706.mp4 2016-11-25 - FURNACE_V6_WORK_Last.zap13 Slitnikova fotosessiya 036.JPG Muzey Transporta.rar Mikulin2_van_vishion_55x73sm_1sht_eko.rar VID20170413134243.mp4 20171220_151721.mp4 6.rar UMT 07.14.rar STEPANOVA_A_A.rar CAM00133.mp4 Protokol Zborіv .pdf R3hab & KSHMR - Karate (Original Mix).mp3


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

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

UP