Vielleicht hat der ein oder andere schon bemerkt das es über XBMC nur einen Tvheadend Client gibt, ihr braucht aber auch noch einen Tvheadend Server um damit zB IPTV oder einen DVB-Stick benutzen zu können..
Ich beschreibe hier 2 Wege den Server zu installieren bzw zu kompilieren - ihr braucht aber nur einen, entweder oder
Bitte erst ein mal alles lesen bevor ihr anfangt!
Ich gehe davon aus das sämtliche Befehle als root oder mit root-Rechten ausgeführt werden - am besten ihr wechselt vorher zum root Benutzer: sudo -s
tvheadend Server kompilieren:
Spoiler anzeigen
Benötigte Pakete installieren:
apt-get update
apt-get install gcc-4.9 g++-4.9 build-essential
apt-get install unzip git-core pkg-config dvb-apps gettext
apt-get install libcurl4-openssl-dev libssl-dev libavahi-client-dev zlib1g-dev libavcodec-dev libavutil-dev libavformat-dev libswscale-dev
export CC=gcc-4.9
export GCC=gcc-4.9
Wer bereits mit dem neuen und schnelleren gcc-5 arbeiten möchte kann > dies < versuchen.
Aktuelle tvheadend laden:
tvheadend Server kompilieren:
Da der tvheadend Server nicht als root laufen sollte legen wir nun einen extra Benutzer an und geben diesem, durch hinzufügen zu der jeweiligen Gruppe, rechte auf Video und Audio zuzugreifen:
tvheadend Server über apt installieren:
Spoiler anzeigen
Es könnte sein das dieser Schritt noch nicht funktioniert da es von libssl1.0.0 abhängig ist, was aber noch nicht in jeder Distribution verfügbar ist..
tvheadend Repository hinzufügen:
Repository key hinzufügen damit apt-get funktioniert:
Paketinformationen aktualisieren und tvheadend installieren:
Siehe dazu auch hier: https://tvheadend.org/projects/tvheadend/wiki/AptRepository
Unabhängig davon welchen der 2 Wege ihr zum installieren des tvheadend-Servers genutzt habt ist folgendes für beides wichtig:
Ein Script installieren um tvheadend bei Systemstart starten zu lassen. Achtet dabei auf die im Script festgelegten Variablen worüber festgelegt wird als welcher Benutzer tvheadend ausgeführt werden soll. Mit dem Script könnt ihr auch prüfen ob tvheadend läuft oder es neu starten..
Script bearbeiten: nano /etc/init.d/tvheadend
Folgendes dort einfügen:
#!/bin/bash
### BEGIN INIT INFO
# Provides: tvheadend
# Required-Start: $local_fs $remote_fs $network
# Required-Stop: $local_fs $remote_fs $network
# Should-Start: $syslog
# Should-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1
# Short-Description: start/stop tvheadend Server
### END INIT INFO
TVHNAME="tvheadend"
TVHBIN="/usr/local/bin/tvheadend"
TVHUSER="tvheadend"
TVHGROUP="tvheadend"
PIDFILE=/var/run/$TVHNAME.pid
start() {
if [ -e $PIDFILE ]; then
PID=$(ps ax | grep -v grep | grep -w $(cat $PIDFILE) | awk '{print $1}')
if [ -n "$PID" ]; then
echo "$TVHNAME already running (pid $PID)."
exit 1
fi
fi
echo -n "Starting tvheadend: "
start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --user ${TVHUSER} --exec ${TVHBIN} -- \
-u ${TVHUSER} -g ${TVHGROUP} -f -C
echo "Done."
}
stop() {
if [ -e $PIDFILE ]; then
PID=$(ps ax | grep -v grep | grep -w $(cat $PIDFILE) | awk '{print $1}')
if [ -n "$PID" ]; then
echo -n "Stopping $TVHNAME: "
start-stop-daemon --stop --quiet --pidfile $PIDFILE --name ${TVHNAME}
echo "Done."
else
echo "$TVHNAME is not running."
fi
else
echo "$TVHNAME is not running."
fi
}
status() {
if [ -e $PIDFILE ]; then
PID=$(ps ax | grep -v grep | grep -w $(cat $PIDFILE) | awk '{print $1}')
if [ -n "$PID" ]; then
echo "$TVHNAME is running (pid $PID)."
else
echo "$TVHNAME is not running."
[ -e $PIDFILE ] && exit 1 || exit 3
fi
fi
}
case "$1" in
start) start ;;
stop) stop ;;
restart) stop && sleep 2 && start ;;
*) echo "Usage: $0 [start|stop|restart|status]" && exit 1 ;;
esac
exit 0
Alles anzeigen
Script ausführbar machen:
Script in den Runlevel aufnehmen damit es automatisch ausgeführt wird:
tvheadend Server starten:
Prüfen ob das Programm läuft:
Die unter "Add DVB Network by location" aufgeführten Sachen sind unter /usr/share/tvheadend/data/dvb-scan/ abgelegt und können da ggf selber erweitert werden.
Wenn alles erfolgreich verlaufen ist kann man das tvheadend eigene Web-Interface durch ansurfen der RaspberryPI IP-Adresse und dem Port 9981 ansurfen und den tvheadend-Server konfigurieren
Tests bezüglich DVB-C HD/SD: Tvheadend ruckler
Tips:
- In den DVB-Settings sollte man noch die Option "Full Mux Reception" auf "off" schalten. So wie ich es verstehe, werden sonst die Daten des gesamten Muxes empfangen und vom PI vor dem Streamen aussortiert.
- In den DVB-Settings die Option "Skip Initial Scan" anhaken, sobald alles fertig konfiguriert ist. Andernfalls werden bei jedem Start von TVheadend alle Muxe durch gescannt, was aber i.d.R. unnötig ist solange sich nichts an der Senderbelegung ändert.