Tvheadend auf Raspberry Pi3
Ziel:
Ich habe zwei Raspberry Pi als Kodi-Clint im Einsatz! Diese betreibe ich mit einem Image von OSMC! Außerdem habe ich Kodi noch auf einem MacBook und einem Android-Phone installiert! Auf allen diesen Clints möchte ich auch Fernsehen können. Tvheadend als IPTV Stream Server kann das Verteilen der IPTV-Streams übernehmen. Ich möchte diesen Server auf Basis eines Raspberry Pi 3 aufsetzen. Hier bin ich immer wieder auf Schwierigkeiten bei der Installation von Tvheadend gestoßen. Sodass mir nichts anderes Übrigblieb, als den Sourcecode von Tvheadend auf dem Pi selber zu Kompilieren! Die folgenden Schritte basieren auf der Installation des „RASPBIAN JESSIE LITE“ Images von https://www.raspberrypi.org/downloads/raspbian/
1. PI vorbereiten
1 2 3 4 5 6 7 8 | sudo raspi-config sudo reboot sudo apt-get update sudo apt-get upgrade sudo apt-get install rpi-update sudo rpi-update sudo reboot sudo apt-get install git |
2. TVHeadend installieren
1 2 3 4 5 6 7 | sudo -s apt-get install git build-essential pkg-config libssl-dev gettext dvb-tools libdvbv5-0 liburiparser-dev liburiparser1 libavahi-client-dev zlib1g-dev libavcodec-dev libavutil-dev libavformat-dev libswscale-dev cd /usr/src git clone https://github.com/tvheadend/tvheadend cd tvheadend ./configure make |
Das Kompelieren des Tvheadend sources dauert auf dem Pi eine Weile, in meinem Fall waren es 1h 28min! Deshalb habe ich mir nach dem Kompilieren erst einmal ein Backup der SD-Card gemacht, falls etwas schief läuft möchte ich nicht schon wieder 2h alles vorbereiten! Vor dem ersten Teststart müssen noch schreibrechte für /root/.hts gesetzt werden!
1 | sudo chmod 777 /root/.hts |
Den Server ins Autostart legen:
Das war nicht ganz so einfach wie ich dachte, aber ich habe mich an dieses Tut gehalten => http://www.forum-raspberrypi.de/Thread-tutorial-tvheadend-server
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:
1 2 3 | sudo groupadd tvheadend sudo useradd -g tvheadend -G video -m tvheadend sudo usermod -G audio -a tvheadend |
Dann müssen wir noch ein Startscript anlagen! Dieses ist hier schon an die Installation wie ich sie hier beschrieben habe angepasst!
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/src/tvheadend/build.linux/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 |
Script ausführbar machen und in den Runlevel aufnehmen damit es automatisch ausgeführt wird:
chmod +x /etc/init.d/tvheadend update-rc.d tvheadend defaults |
Jetzt können wir den Server über das Script starten:
/etc/init.d/tvheadend start |
Und Überprüfen ob der Server läuft!
ps aux | grep -v grep | grep tvhead |
Zur Konfiguration schaut euch dieses Video an https://www.youtube.com/watch?v=y8vm9es6FL0
Posted in TvHeadend auf Raspberry PI 3 by Longri with 5 comments.
Schreibe einen Kommentar