Форум XBMC \ Kodi Russia

Форум XBMC \ Kodi Russia (http://xbmc.ru/forum/index.php)
-   Подсказки, описания и FAQ по XBMC (http://xbmc.ru/forum/forumdisplay.php?f=3)
-   -   Дружим XBMC и HTS Tvheadend (http://xbmc.ru/forum/showthread.php?t=265)

seppius 25.04.2010 01:25

Дружим XBMC и HTS Tvheadend
 
Вложений: 1
Техническое задание:
* Просматривать спутниковые каналы на компьютерном ресивере.
* Тюнер может находится на другом компьютере (соединять через локальную сеть).
Даже может стоять на чердаке, рядом с тарелкой. При этом наличие видеокарты в системе не обязательно. Так что с успехом могут быть использованы старые системники с сгоревшей AGP картой :D
* Все должно работать под Linux.
* Все должно быть удобно :)

Решение:

I. Покупаем тюнер

Из опыта:
Был у меня ST-4200 (PCI модель) — в openSUSE 11.2 работает из коробочки, но нужно найти фирмварь и положить ее в /lib/firmware. Ходят слухи, что для улучшения качества приема требуется пайка кондюков на эту карту.

Сейчас у меня работает Tevii S-470 (PCI-E модель). Заставить работать пульт в ней оказалось сложнее, но работает отлично.
О том, как заставить работать пульт читайте тут http://forum.free-x.de/wbb/index.php...D=658&pageNo=4
Подойдут и USB тюнера или любые другие, хорошо работающие в Linux


Что купить, читайте тут http://forum.free-x.de/wbb/index.php...6409#post16409
Лучший вариант для PCI - TT-1600
Лучший вариант для PCI-E - Tevii S-470 (Tevii S-480)


Плату купили, вставили, подключили к круговому LNB (на Eurоtelsат - 36).
Включаем «аппарат» и смотрим в файловую систему. Если у вас появился путь /dev/dvb/adapter0 — то драйвер для тюнера уже есть в системе. Если устройство не работает, то надо подкинуть фирмварь. Если у Вас нет пути /dev/dvb/adapter значит драйвера у Вас нет, и нужно идти на сайт linuxtv.org за новыми дровишками.
Смотрим также в /dev/input — если там появился файл ir - то значит у Вас заработал и пульт :)

Чтобы убедиться в работоспособности тюнера, запускаем kaffeine и сканируем спутник (не важно какой) — главное, вы должны обнаружить какие либо значение уровня сигнала и качество (хотя бы > 0 ). Если нет такого, то это однозначно неработоспособный тюнер, - наберите в консоли команду dmesg и устраните все проблемы.

Никогда не покупайте тюнеры, которые еще не работают в Linux! Возможно они никогда и не заработают, как например Aver TV Satellite Trinity PCI-E. Полагаться на жирных котов - глупо.:mad:

II. И так тюнер у Вас работает...

Теперь мы должны сделать его доступным для XBMC.
Пока XBMC не наделена возможностями PVR, поэтому ищем ей друга - http://www.lonelycoder.com/hts/tvheadend_overview.html
HTS Tvheadend — программа с удобным web - интерфейсом, которая позволяет расшарить тюнер по локальной сети, и уже имеет newcamd клиент.

И так, качаем его (на сегодня этот http://www.lonelycoder.com/debian//d...nd_2.11.tar.gz).
А еще лучше слить последний
Код:

svn co svn://svn.lonelycoder.com/hts/trunk/tvheadend
git clone https://github.com/andoma/tvheadend

Заменяем в каталоге файл src/linuxtv_muxes.h — это нужно для того, чтобы в списке появился наш «любимый» спутник Eurоtеlsаtт (Хотя транспондеры можно вбивать и руками).


Потом стандартная процедура:
1) ./configure
2) смотрим, о чем ругался configure и устраняем проблемы ;)
3) make (идет сборка...)

У меня configure отработал с ключами --disable-ahavi и --release

После того как все собралось - запускаем tvheadend под правами простого пользователя.
Пользователь должен состоять в группе video. Иначе программа не сможет работать с тюнером ;)
Можно запустить под root`том, но это плохо с точки зрения безопасности (но и группы video не надо) :wave:

Чтобы tvheadend запускался всегда автоматически, - его надо демонизировать:
1. Берем скрипт (внизу, расчитан на openSUSE)
2. Правим его (слово htpc меняем на имя пользователя, под которым демон должен работать. Также проверяем путь к бинарнику)
3. Кидаем его в /etc/init.d
4. Включаем демон стандартными системными средствами (через Yast)
Можно подпихнуть фоновый запуск в конфиги вашего профиля, или создать задачу запуска при входе в КДЕ/Гноме.
Собственно, скрипт демона для SUSE (заменить слово htpc на имя юзера, под которым ему работать)
Код:

#!/bin/sh
#
# tvheadend    Starts and stops the tvheadend daemon
#
#
# processname: tvheadend
# description: tvheadend
#
### BEGIN INIT INFO
# Provides: tvheadend
# Required-Start: $network
# Should-Start:
# Required-Stop: $network
# Should-Stop:
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: HTS tvheadend
# Description: HTS tvheadend
### END INIT INFO

udpxy_name=tvheadend
udpxy_bin=/opt/tvheadend/build.Linux/tvheadend


test -x $udpxy_bin || {
        echo 1>&2 "$udpxy_bin not installed"
        if test "$1" == "stop" ; then exit 0 ; else exit 5 ; fi
}

# Source function library.
. /etc/rc.status

# First reset the status of this service
rc_reset

case "$1" in
    start)
        pid=$(pidof $udpxy_name)
        if test -n "$pid"; then
          rc_failed 0
        else
          su htpc -c "$udpxy_bin -f"
        fi
        rc_status -v
        ;;
    stop)
        pid=$(pidof $udpxy_name)
        if test -n "$pid"; then
          kill -9 $pid
        else
          rc_failed 0
        fi
        rc_status -v
        ;;
    restart)
        $0 stop
        $0 start
        rc_status
        ;;
    status)
        pid=$(pidof $udpxy_name)
        test -n "$pid"
        rc_status -v
        ;;
    *)
        echo "Usage: $0 {start|stop|restart|status}"
        exit 1
        ;;
esac

rc_exit

Еще вариант (более верный)
Код:

#!/bin/sh
#
# tvheadend    Starts and stops the HTS Tvheadend daemon
#
#
# processname: tvheadend
# description: tvheadend
#
### BEGIN INIT INFO
# Provides: tvheadend
# Required-Start: $network
# Should-Start:
# Required-Stop: $network
# Should-Stop:
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: HTS tvheadend
# Description: HTS tvheadend
### END INIT INFO

tvh_name=tvheadend
tvh_bin=/opt/tvheadend/bin/tvheadend
tvh_pid=/var/run/tvheadend.pid

test -x $tvh_bin || {
        echo 1>&2 "$tvh_bin not installed"
        if test "$1" == "stop" ; then exit 0 ; else exit 5 ; fi
}

. /etc/rc.status

rc_reset

case "$1" in
    start)
        startproc -p $tvh_pid $tvh_bin -u xbmcuser -f -p $tvh_pid
        rc_status -v
        ;;
    stop)
        killproc -p $tvh_pid -TERM $tvh_bin
        rc_status -v
        ;;
    restart)
        $0 stop
        $0 start
        rc_status
        ;;
    status)
        checkproc -p $tvh_pid $tvh_bin
        rc_status -v
        ;;
    *)
        echo "Usage: $0 {start|stop|restart|status}"
        exit 1
        ;;
esac

rc_exit



III. Далее запускаем браузер, и заходим на сервер HTS например так: http://127.0.0.1:9981 или используем другой IP если он установлен на сетевой машине (По умолчанию http доступ разрешен только с localhost, если нужна первичная настройка с другого хоста, то запустите tvheadend с ключом "-С" и добавляем в список разрешения хост с которого будет производится настройка и перегружаем демон без ключа "-C")

http://i069.radikal.ru/1008/f9/ad071533f676t.jpg
EPG разумеется у Вас еще не будет

Теперь настраиваем DVB устройство:

1. Указываем, что у нас подключен круговой LNB

http://s45.radikal.ru/i107/1008/e5/460b8e65b5c2t.jpg
Circular - значит круговой

2. Включаем автосканирование транспондеров и выбираем спутник


3. Подключаем какую-нибудь шapoвню с по запросной оплатой
Логины, пароли, порты - берем при подписке. DES ключ указан на странице подписки (при вставке двоеточия можно не ставить - hts сам сообразит)
Учтите также, что имена серверов шapинга может блокировать провайдер (видимо по сговору с плюснутыми или др. жадными субъектами) Поэтому я ввел IP адрес сервера (его можно узнать через Whois).
Позеленевшая строка говорит о том, что camd сервер активен, подключение в порядке.


4. Ждем, пока транспондеры не отсканируются (смотрим справа в разделе General)
5. В списке «services» видим все каналы


6. Теперь возвращаемся в раздел General вашего адаптера и жмем "Map DVB services to channels" (процесс займет некоторое время). Внимание! В этот момент Вас может забанить гаринг-провайдер, за частую смену ключей. Скорей всего так и произойдет если вы используете сервис с абонплатой. У провайдеров с позапросной оплатой такое явление практический отсутствует.
Задавать имена каналам можно и в ручную (в разделе Services), а удалять каналы в закладке Channels. Так приходится делать, если шура не дала вовремя ответ.
7. Теперь запускаем xbmc и в категории «видео» добавляем новый источник
Имя: 'Спутник' - или любое другое, которое вам нравится.
Путь: htsp://127.0.0.1 (127.0.0.1 — в случае если HTS установлен на локальной машине, или IP адрес сетевой машины, как у меня)/ Внимание! Проверьте настройки доступа в HTS. Разрешите доступ из LAN если у Вас возникла ошибка.


'*' - значит любой юзер или пароль

И так, мы видим каналы «прямой трансляции»


Жмем на любой канал и наслаждаемся результатом :)


Внимание! В tvheadend есть ошибка, котрая приводит к сканированию не верных частот, поэтому советую почитать этот пост и править linuxtv_muxes.h вручную. Вазелин вам в руки... :p

nutone 28.04.2010 10:21

EPG?
 
seppius спасибо вам за развёрнутый мануал по прикручиванию "хитрого" просмотра к XBMC, возник вопрос сразу же, как-то возможно прикрутить EPG к вашей свзяке или к любой другой?

seppius 28.04.2010 18:18

В xbmc EPG в развернутом виде не отображается. Надо просить автора
Полная EPG только через Web-интерфейс HTS Tvheadend
В xbmc отражается только текущая передача.
В HTS Tvheadend можно добавить импорт программ через xml и иконки каналов.

IceMan76 27.05.2010 21:18

Цитата:

Сообщение от seppius (Сообщение 1674)
В xbmc EPG в развернутом виде не отображается. Надо просить автора
Полная EPG только через Web-интерфейс HTS Tvheadend
В xbmc отражается только текущая передача.
В HTS Tvheadend можно добавить импорт программ через xml и иконки каналов.

Да без EPG плоховато :( так и прийдется откатываться на Myth.
еще "-" или может я не доразобрался. rtsp каналы с dvb можно смотреть только одному клиенту в сети :(
а в МИФе есть PiP если канал на том же транспондере.

Да и еще хитрый просмотр так и не заработал.
Вот лог:
Код:

May 27 20:11:55 cwc: Connected to cserv18.net:10000
May 27 20:11:55 cwc: cserv18.net: Connected as user 0xde to a Viaccess-card [0x0500 : 00.00.00.00.00.00.00.00] with 3 providers
May 27 20:11:55 cwc: cserv18.net: unknown card
May 27 20:11:55 cwc: cserv18.net: Provider ID #1: 0x023700 00.00.00.00.00.00.00.00
May 27 20:11:55 cwc: cserv18.net: Provider ID #2: 0x030600 00.00.00.00.00.00.00.00
May 27 20:11:55 cwc: cserv18.net: Provider ID #3: 0x040600 00.00.00.00.00.00.00.00
May 27 20:11:55 cwc: cserv18.net: Will not forward EMMs (not allowed by server)


seppius 28.05.2010 00:08

Похоже, автору tvheadend не интересно исправлять эту проблему.
Надо своими силами доходить. Но он обещал включить исправления в репозиторий.

ihaar 28.05.2010 01:36

ну хоть что-то
я просто совсем недавно на форуме и не знаком с уровнем участников.
сам вообще далёк от программирования.
первое, что приходит в голову разнести инфу про прогу на узкоспециальные форумы типа free-x.de viacses и прочие. там народ оперативно патчил sc для vdr в своё время.
а с добавлением в официальную xbmc pvr функций прога становится вообще вне конкуренции. если мы тут оценили потенциал, то и профи наверняка тоже.
как-то так

ihaar 29.05.2010 01:11

всё. абсолютно точно дело не в длине ключа, а в неправильном переборе идентов.

как я уже писал, сижу на подписке с одним идентом, всё работает кроме рейсов. сегодня вычитал, что у рейсов ключик ещё длиннее. поменял в cwc.c параметр cws_netmsgsize на 480 (строка 49), пересобрал заново tvheadend и заработали рейсы.

так что ковырять нужно ту часть кода, которая отвечает за иденты

в строке 593 в комментах к коду обнаружил вот что
Цитата:

/**
* Detects the cam card type
* If you want to add another card, have a look at
* http://www.dvbservices.com/identifie...stem_id?page=3
*
* based on the equivalent in sasc-ng
*/
может у кого-нить есть код sasc-ng что бы сравнить?
может достаточно добавить поддержку viaccess, её по умолчанию нет в нашем коде cwc.c
на сайте проги народ уломал автора добавить поддержку seca в код (Ticket #139)

skyros 29.05.2010 20:03

Цитата:

Сообщение от ihaar (Сообщение 2089)
может достаточно добавить поддержку viaccess, её по умолчанию нет в нашем коде cwc.c

Ага, а еще DREcrypt, DiseqC 1.2 и запись из XBMC для полного счастья! :) Без этого пока трудно спрыгнуть с VDR.

LordMerlin 31.05.2010 12:56

Уважаемые, расскажите чем хуже использование комплекта yaVDR по сравнению с отдельным прикручиванием Tvheadend. Там вроде все уже интегрировано, и дрова на Нвидию последние и все фичи PVR изкоробки. Может он по хитрому не робит??

nutone 01.06.2010 20:39

yaVDR робит по хитрому, отличие в том, что существует мнение,
Цитата:

потомучто пока tvheadend несколько сыроват под российского пользователя и в качестве ТВ использую VDR
Мнение не моё, но очень авторитетного, по крайней мере в моих глазах, товарища, который собаку съел, думаю даже не одну, в медиацентрах.


Текущее время: 12:11. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.