Fernsehen mit Aufnahme über IPTV mit Raspberry und A1

Loading

Als Kunde des A1 IPTV – Angebotes bekommt man ein A1 DSL – Modem samt einer A1 TV-Box. Diese Kombination funktioniert natürlich einwandfrei. Möchte man den Funktionsumfang erweitern und beispielsweise eine MINIX NEO – Box als Streaming Client betreiben, so bietet sich hier die bekannte Software „KODI“ an, die für alle möglichen Hardwareplattformen und Betriebssysteme erhältlich ist.

TV-Variante ohne Server, ohne Aufnahme und Timeshift

Die A1 TV – Box kann man direkt gegen die MINIX Box ersetzen. Auf der Mini-Box läuft ein Android Betriebssystem. Unter kodi.tv kann man sich den Client herunterladen und auf der Mini Box installieren. Dann ist noch unter SYSTEM -> STETTINGS -> ADDONS -> PVR clients auszuwählen.kodiiptvclient

Dort findet man den PVR IPTV Simple Client der zu installieren ist. Unter Konfiguration ist der Pfad zu einer .m3u – Liste anzugeben. Die m3u Liste sollte einfacher weise in einem lokalen Ordner (z.Bsp. Downloads) abgelegt werden. kodiiptvclient1

Die .m3u – Datei beinhaltet die IP-Adressen mit den Streaming-Links und Sendernamen und sieht für die Basissender von A1 so aus:

#EXTM3U

## A1TV_Basis, Stand: Nov. 2015
## KODI

#EXTINF:-1 tvg-num="1" tvg-logo="609",ORF eins
rtp://@239.2.16.1:8208
#EXTINF:-1 tvg-num="2" tvg-logo="625",ORF 2-W
rtp://@239.2.16.2:8208
#EXTINF:-1 tvg-num="3" tvg-logo="671",ATV
rtp://@239.2.16.3:8208
#EXTINF:-1 tvg-num="4" tvg-logo="4",PULS 4
rtp://@239.2.16.4:8208
#EXTINF:-1 tvg-num="5" tvg-logo="227",Servus TV
rtp://@239.2.16.11:8208
#EXTINF:-1 tvg-num="6" tvg-logo="5",SAT.1 Austria
rtp://@239.2.16.5:8208
#EXTINF:-1 tvg-num="7" tvg-logo="7",ProSieben Austria
rtp://@239.2.16.7:8208
#EXTINF:-1 tvg-num="9" tvg-logo="6",RTL Austria
rtp://@239.2.16.6:8208
#EXTINF:-1 tvg-num="10" tvg-logo="75",A1 TV Plus-Info
rtp://@239.2.16.10:8208
#EXTINF:-1 tvg-num="14" tvg-logo="672",ATV 2
rtp://@239.2.16.91:8208
#EXTINF:-1 tvg-num="18" tvg-logo="574",Das Erste
rtp://@239.2.16.16:8208
#EXTINF:-1 tvg-num="19" tvg-logo="642",ZDF
rtp://@239.2.16.17:8208
#EXTINF:-1 tvg-num="22" tvg-logo="611",ORF III
rtp://@239.2.16.29:8208
#EXTINF:-1 tvg-num="23" tvg-logo="578",3sat
rtp://@239.2.16.21:8208
#EXTINF:-1 tvg-num="27" tvg-logo="612",ORF SPORT +
rtp://@239.2.16.78:8208
#EXTINF:-1 tvg-num="34" tvg-logo="709",gotv
rtp://@239.2.16.36:8208
#EXTINF:-1 tvg-num="66" tvg-logo="617",ORF 2-B
rtp://@239.2.16.65:8208
#EXTINF:-1 tvg-num="67" tvg-logo="618",ORF 2-K
rtp://@239.2.16.66:8208
#EXTINF:-1 tvg-num="68" tvg-logo="619",ORF 2-NÖ
rtp://@239.2.16.67:8208
#EXTINF:-1 tvg-num="69" tvg-logo="620",ORF 2-OÖ
rtp://@239.2.16.68:8208
#EXTINF:-1 tvg-num="70" tvg-logo="621",ORF 2-S
rtp://@239.2.16.69:8208
#EXTINF:-1 tvg-num="71" tvg-logo="622",ORF 2-St
rtp://@239.2.16.70:8208
#EXTINF:-1 tvg-num="72" tvg-logo="623",ORF 2-T
rtp://@239.2.16.71:8208
#EXTINF:-1 tvg-num="73" tvg-logo="624",ORF 2-V
rtp://@239.2.16.72:8208
#EXTINF:-1 tvg-num="92" tvg-logo="724",Melodie TV
rtp://@239.2.16.37:8208
#EXTINF:-1 tvg-num="94" tvg-logo="738",Bibel TV
rtp://@239.2.16.81:8208
#EXTINF:-1 tvg-num="95" tvg-logo="725",K-TV
rtp://@239.2.16.82:8208
#EXTINF:-1 tvg-num="105" tvg-logo="726",RTS Sat
rtp://@239.2.16.63:8208
#EXTINF:-1 tvg-num="120" tvg-logo="719",Okto
rtp://@239.2.16.34:8208
#EXTINF:-1 tvg-num="121" tvg-logo="85",Schau TV
rtp://@239.2.16.83:8208
#EXTINF:-1 tvg-num="122" tvg-logo="86",RT24
rtp://@239.2.16.84:8208
#EXTINF:-1 tvg-num="123" tvg-logo="87",P3 TV
rtp://@239.2.16.85:8208
#EXTINF:-1 tvg-num="124" tvg-logo="88",WNTV
rtp://@239.2.16.86:8208
#EXTINF:-1 tvg-num="125" tvg-logo="89",LT1
rtp://@239.2.16.87:8208
#EXTINF:-1 tvg-num="127" tvg-logo="91",KT1
rtp://@239.2.16.89:8208
#EXTINF:-1 tvg-num="128" tvg-logo="92",N1
rtp://@239.2.16.90:8208
#EXTINF:-1 tvg-num="129" tvg-logo="142",Kärnten TV
rtp://@239.2.16.112:8208
#EXTINF:-1 tvg-num="130" tvg-logo="143",Tirol TV
rtp://@239.2.16.109:8208
#EXTINF:-1 tvg-num="132" tvg-logo="141",HT1
rtp://@239.2.16.114:8208
#EXTINF:-1 tvg-num="133" tvg-logo="211",Mühlviertel TV
rtp://@239.2.16.113:8208

Jetzt muss nur mehr „Settings“ -> „TV“ der „Enabled“ Button gecheckt werden und die Wiedergabe der TV-Kanäle sollte funktionieren. Mit dieser Methode ist stellt die Android Box einen IPTV Client dar, der die Streaming Links direkt abspielt. Da kein Server im Hintergrund läuft, ist es auch nicht möglich Timeshift oder Aufnahmen von Sendungen zu realisieren.

TV – Variante mit Server, Timeshift, EPG und Aufnahme

Um diese Funktionen zu erhalten, muss ins heimische Netzwerk ein IPTV Server integriert werden. In meinem Fall habe ich einen Raspberry Pi2 für diesen Zweck konfiguriert.
DSC_2660Folgende Komponenten benötigen wir dazu:

  • Raspberry Pi2 (an das heimische Netzwerk angeschlossen)
  • Micro SD Karte mit 8GB
  • eine externe Festplatte oder USB-Stick als Speicher für die Aufnahmen
  • das Softwareimage XBIAN und einen Imageextractor
  • (für den Mac gibt´s diese Version: ApplePi-Baker)

Ist alles heruntergeladen, so beginnt man mit dem Extrahieren des Images auf die Speicherkarte. Dazu startet man die Software win32diskimager.exe und wählt den Pfad zur Image-Datei. (die nennt sich in diesem Fall: XBian_Latest_rpi2.img). Dann ist die Speicherkarte einzulegen und der zugeordnete Laufwerksbuchstabe auszuwählen. Danach kann der Schreibvorgang mit „Write“ gestartet werden. ACHTUNG: Das gewählte Laufwerk wird mit dem Image ausgestattet. Hier unbedingt sichergehen, dass nicht ein falsches Laufwerk ausgewählt wird. Nach ein paar Minuten ist die SD-Karte fertig beschrieben und kann in den Raspberry PI eingesteckt werden.

Jetzt kann man den Raspberry PI an einen Monitor, Keyboard, LAN und per Micro-USB an eine 5V/2A Versorgung anschließen. Er wird jetzt booten. Es startet das Script: raspi-config, das bequem mit dem Keyboard bedient werden kann. Hier wird als erstes der tvheadend – Server installiert:

xbianconfig1Zunächst wählt man „Packages“ aus und bestätigt.

xbianconfig2dann scrollt man bis zur Kategorie „video“ und bestätigt wiederum.

xbianconfig3hier ist nun tvheadend auf „Yes“ zu setzen und wieder zu bestätigen. Jetzt beginnt der Download des Paketes und die anschließende Installation. Ist der Prozess beendet, so ist das raspi-config script zu beenden und in die bash zu gehen. Der default Login lautet: xbian und das Passwort: raspberry

Zunächst sind noch alle Updates und Upgrades durchzuführen:

sudo apt-get update
sudo apt-get upgrade

Als nächstes macht es noch Sinn, die IP Adresse des Raspberry PI zu kennen, die er vom DHCP Server des Routers zugewiesen bekommen hat. Die müssen wir ja wissen, wenn wir auf den TV-Server Zugriff haben wollen. Dazu gibt man einfach folgendes ein:

ifconfig

Als Antwort erhält man dann folgende Infos zum Ethernet – Anschluss. In diesem Fall eth0:

ifconfigWie man sieht, ist in diesem Beispiel die Adresse 10.0.2.15 zugewiesen worden. Mit dieser Information können wir den Raspberry Pi nun neu starten und an einem Client-Computer mit dem Setup von TVHeadend fortfahren.

sudo reboot

Nach dem Neustart sollte der Raspberry tvheadend-Server jetzt auf einem Client-PC erreichbar sein. Dazu öffnet man einen Webbrowser und gibt in der Adresszeile folgende Adresse ein: https://10.0.2.15:9981

Jetzt muss folgendes zu sehen sein:

headen1Wir suchen und klicken auf den TAB „Konfiguration“. Hier geben wir ein paar allgemeine Einstellungen ein: den Servernamen (bei mir hier einfach Tvheadend); den Ansichtsmodus stellt man auf „Experte“. Die restlichen Einstellungen belässt man auf default. Unter Spracheinstellungen ist „German“ zu wählen. (oder was auch immer gewünscht wird). Die Webbenutzeroberfläche ist im default Modus auch ganz schön. Wer auch noch Senderlogos haben will, der stellt unter „Picon“ wie folgt ein:

headen2Nach all den Einstellungen nicht vergessen auf „Speichern“ zu klicken. Jetzt kommt die eigentliche Arbeit: Das Editieren der Senderliste. Hierzu erstellt man als erstes ein „Netzwerk“. Unter den Tabs: Konfiguration -> DVB-Inputs -> Netzwerke legen wir ein neues „Netzwerk“ (eigentlich TV-Netzwerk) an.

headen3Mit „Hinzufügen“ öffnet sich ein Fenster in dem man „IPTV Network“ auswählt. Bestätigt man das so öffnet sich ein weiteres Fenster. Hier nimmt man ein paar wenige Einstellungen vor. Sinnvoller Weise benennen wir das Netzwerk A1TV.

headen4

Mit „Speichern“ werden die Einstellungen abgeschlossen. Jetzt klickt man auf den TAB „Muxes“. Hier müssen alle Sender angelegt werden. Diese Arbeit muss man sich einmal antun. (Es gibt dann aber die Möglichkeit, über die Konsole die config-Dateien vom Server zu sichern – dazu später aber mehr)

headen5In dem Bild ist die fertige Mux-Tabelle zu sehen. Mit „Hinzufügen“ wird ein neuer „MUX“ (Signalquelle) hinzugefügt. Hier wählt man aus den verfügbaren Netzwerken A1TV (das, das wir vorher angelegt haben) aus.headen6Im sich jetzt öffnenden Fenster ist unter URL die Streaming – Adresse vom jeweiligen Sender einzugeben (hier z. Bsp.: rtp://239.2.16.21:8202 für 3sat). In Mux-Name ist der Sendername einzugeben.

headen7Danach auf „Speichern“ drücken und mit „Hinzufügen“ den nächsten Sender konfigurieren. Hat man die mühevolle Arbeit dann getan und alle Sender eingegeben, so müssen die Muxes einem Service/Kanal zugeordnet werden. Das ist die eigentliche Senderliste, die der Server dann den Clients zur Verfügung stellt. (Ein MUX muss jetzt nicht unbedingt eine IP-Streaming Adresse sein, sondern kann auch aus einem Sat-, oder DVB-T Empfänger kommen. Da hier in einer Signalfrequenz mehrere TV oder Radioprogramme per Multiplexverfahren (eben MUX) übertragen werden. Darum ist die Bezeichnung MUX für IP-Adressen hier vielleicht etwas verwirrend). Das Zuordnen der Services geschieht im TAB „Services„. Hier einfach auf „Services zuordnen“ -> „alle Services zuordnen“ klicken und warten bis der Prozess abgeschlossen ist. Nun kann ein erster Test erfolgen.

headen8Links neben den Kanalnamen ist ein kleiner „Play-Button“ zu sehen. Ist das VLC-Player-Plugin im Browser installiert, so wird beim Anklicken des Buttons ein Wiedergabefenster geöffnet, das den aktuellen Stream anzeigt.

 

EPG und Senderlogos

Weiter geht´s beim Konfigurieren nun mit dem elektronischen Programm Guide (EPG). Hier muss ein wenig getrickst werden. Aus diversen Foren und Anleitungen im Web habe ich eine für mich funktionierende Konfiguration zusammengestellt. Wir beginnen im Tvheadend-Server unter Konfiguration -> Kanal/EPG -> EPG-Grabber Module mit den Einstellungen.

epg1Hier ist der interne Grabber „XMLTV: Sweden (TVZon)“ zu aktivieren. Danach wieder auf Speichern drücken.

Danach müssen wir wieder auf den Raspberry PI in die Konsole. Man macht das entweder vom Client-PC aus über ein Terminal (z. Bsp. Putty) oder direkt am Raspberry PI, wenn dieser noch an Keyboard und Monitor angeschlossen ist. Die folgenden Anleitungen stammen von https://github.com/Bronkoknorb/a1tv-helpers

Ist die Konsole, am besten als root-admin geöffnet, so installiert man zuerst ruby und die dazugehörigen libraries.

sudo apt-get install ruby ruby-dev
sudo gem install rest-client

Als nächstes benötigt man xmltv:

sudo apt-get install xmltv-util
sudo su hts
tv_grab_se_tvzon --configure
 
Nach der letzten Eingabe fragt das Konfigurationsscript des Grabbers nach folgenden Informationen:
  • Root-URL for grabbing data (hier https://xmltv.xmltv.se/channels-Austria.xml.gz eingeben)
  • Directory to store the cache:  /home/hts/.xmltv/cache
  • Select Channels : Hier all auswählen

Jetzt muss der TVheadend – Service neu gestartet werden:

sudo service tvheadend restart

Jetzt kann wieder auf das Webinterface von TVheadend gewechselt werden. Im EPG-Grabber TAB kann jetzt noch die Zeit zum Synchronisieren der EPG Datenbank ausgewählt werden.

epg2Die Senderlogos werden weitgehend gefunden. Wo das Senderlogo fehlt, kann unter dem TAB Kanal/EPG -> Kanäle in der Spalte Benutzerlogo ein Link mit einem geeigneten Logo eingetragen werden.

epg3Jetzt ist der Server soweit fertig konfiguriert und die Clients können eingerichtet werden. In meinem Fall habe ich auf der MINIX NEO X8 Android Box ein Kodi installiert. In der Liste Addons -> PVR-Addons ist unter vielen auch ein TVHEADEND Addon gelistet. Dieses wird installiert. Alle anderen PVR-Addons müssen deaktiviert werden.

tvh1In den Client Einstellungen ist lediglich noch die IP Adresse des Raspbery PI anzugeben. Die Ports sind default (9981). Wenn beim TVheadend Server kein eigener User angelegt ist, so brauchen wir auch im Client unter user und pass nichts einzutragen.

Jetzt fehlt nur mehr die Aufnahmefunktion am Server. Hierzu begeben wir uns wieder in das Webinterface vom Server. Unter Konfiguration -> Aufnahme sind die abgebildeten Einstellungen zu machen:

recIch habe hier das default profile editiert. Wichtig ist der Aufnahmedateipfad. Steckt am Raspberry PI ein externer USB-Datenträger, so kann dieser für die Aufnahme verwendet werden. (In der Xbian Konsole kann man sich den Datenträger entsprechend vorbereiten und Verzeichnisse erstellen). Die Einstellungen sind weitgehend selbsterklärend….

 

Edit: 09/2019…
Es muss natürlich nicht das XBIAN Image sein. Die aktuelle Version habe ich auf ein Raspbian Image installiert. Das bekommt man von der RaspberryPi Website. Ist das Image auf der SD-Karte, dann sollte man mit „raspi-config“ das Filesystem „expandieren“ und das SSH Service installieren. Danach ein:

sudo apt-get update
sudo apt-get upgrade

durchführen und dann das tvheadend Paket installieren.

sudo apt-get install tvheadend

Während der Installation wird man nach einem einzurichtenden Username und Passwort für den TVheadend-Server gefragt. Hier ist natürlich auch was einzugeben. Ist die Installation fertig dann kann im Webbrowser über:

http://ip-adresse-des-raspi:9981

getestet werden, ob der Server läuft. Wenn jemand nicht weiß welche IP der Raspi vom DHCP bekommen hat, dann einfach in der Konsole mit

ifconfig

nachsehen. Soll der Raspi eine statische IP-Adresse bekommen (ist bei einem Server vielleicht keine schlechte Idee), dann mit einem Editor die folgende Datei editieren:

nano /etc/dhcp.conf    (hier sind einige Static IP templates auskommentiert) diese einfach an die gewünschten Adressen anpassen. Mit dem folgenden Command dann den Service restarten:

sudo /etc/init.d/networking restart

 

 

 

 

 

 

11 Gedanken zu „Fernsehen mit Aufnahme über IPTV mit Raspberry und A1“

  1. habe mich genau an die anleitung „nur fernsehen“ gehalten, hat auch alles geklappt. senderliste wird angezeigt, aber wenn ich einen sender anwähle steht rechts unten „working“ und kodi stürzt ab 🙁

    1. auf welchem os läuft denn Kodi? sonst check mal, ob die Maschine auf der Kodi läuft überhaupt auf die streaming ip zugreifen kann…

  2. falls das tv schauen bei jemand anderem auch nicht klappt – unter den windows sytsemeinstellungen muss „heimnetzwerk/privates netzwerk“ aktiviert werden. mit öffentlich hat es nicht geklappt.

  3. Hallo,
    wollte mich nur mal kurz melden und danke sagen. Auf meinem System (RaspberryPi 2, Kodi auf einer OSMC Distro) hat die „nur Fernsehen“ Anleitung auf Anhieb geklappt. Mit der Programm-Info muss ich mich noch spielen. Aber sonst alles super.

    Spricht eigentlich etwas dagegen, den Server am selben RaspPi laufen zu lassen? Ich hab die lange Anleitung nur quer-gelesen und scheinbar brauch ich „nur“ tvheadend oder? („nur“ weil es nicht ganz so straight forward ist. Siehe http://www.forum-raspberrypi.de/Thread-raspbmc-osmc-und-tvheadend ). Frist das so viel Ressourcen, dass es einen eigenen RaspPi braucht.

    Aber vor allem noch mal: danke, danke, danke. Das ist der große Sprung nach vorne, der mich davor bewahren könnte so ein verdammtes SmartTV kaufen zu müssen, um meine bessere Hälfte glücklich zu machen 🙂

  4. Hallo,
    vielen Dank für die Blumen 🙂
    Betreffend der Coexistenz von tvheadend und Kodi auf einem System, kann ich nur sagen: ich habe es noch nicht versucht. Obwohl Kodi am Rpi3 super läuft, kommt es mir im Vergleich zu anderen Systemen (Minix NEO X8-H auf Android oder dem Udoo Board) etwas träger vor.
    Darum wollte ich nicht versuchen hinter das Frontend auf der selben Maschine auch noch das Serverbackend zu quetschen. Es wird sicher funktionieren, aber wie wird es sich verhalten, wenn der Server z.B. einen Stream aufzeichnet, während ich einen anderen ansehe?.. Ich kann mir vorstellen, dass es da zu Aussetzern im Stream und trägem Bedienverhalten kommen könnte. …

  5. Hallo und DANKE für die Anleitung! Bei mir kommt es unter Raspberry Pi 1 zu folgender Fehlermeldung wenn ich „sudo gem install rest-client“ aufrufe (ruby-all-dev auch schon installiert)

    Fetching: unf_ext-0.0.7.4.gem (100%)
    Building native extensions. This could take a while…
    ERROR: Error installing rest-client:
    ERROR: Failed to build gem native extension.

    current directory: /var/lib/gems/2.1.0/gems/unf_ext-0.0.7.4/ext/unf_ext
    /usr/bin/ruby2.1 -r ./siteconf20170522-5290-191z3ys.rb extconf.rb
    checking for main() in -lstdc++… *** extconf.rb failed ***
    Could not create Makefile due to some reason, probably lack of necessary
    libraries and/or headers. Check the mkmf.log file for more details. You may
    need configuration options.

    Provided configuration options:
    –with-opt-dir
    –without-opt-dir
    –with-opt-include
    –without-opt-include=${opt-dir}/include
    –with-opt-lib
    –without-opt-lib=${opt-dir}/lib
    –with-make-prog
    –without-make-prog
    –srcdir=.
    –curdir
    –ruby=/usr/bin/ruby2.1
    –with-static-libstdc++
    –without-static-libstdc++
    –with-stdc++lib
    –without-stdc++lib
    /usr/lib/ruby/2.1.0/mkmf.rb:456:in `try_do‘: The compiler failed to generate an executable file. (RuntimeError)
    You have to install development tools first.
    from /usr/lib/ruby/2.1.0/mkmf.rb:541:in `try_link0′
    from /usr/lib/ruby/2.1.0/mkmf.rb:556:in `try_link‘
    from /usr/lib/ruby/2.1.0/mkmf.rb:742:in `try_func‘
    from /usr/lib/ruby/2.1.0/mkmf.rb:973:in `block in have_library‘
    from /usr/lib/ruby/2.1.0/mkmf.rb:918:in `block in checking_for‘
    from /usr/lib/ruby/2.1.0/mkmf.rb:351:in `block (2 levels) in postpone‘
    from /usr/lib/ruby/2.1.0/mkmf.rb:321:in `open‘
    from /usr/lib/ruby/2.1.0/mkmf.rb:351:in `block in postpone‘
    from /usr/lib/ruby/2.1.0/mkmf.rb:321:in `open‘
    from /usr/lib/ruby/2.1.0/mkmf.rb:347:in `postpone‘
    from /usr/lib/ruby/2.1.0/mkmf.rb:917:in `checking_for‘
    from /usr/lib/ruby/2.1.0/mkmf.rb:968:in `have_library‘
    from extconf.rb:6:in `‘

    To see why this extension failed to compile, please check the mkmf.log which can be found here:

    /var/lib/gems/2.1.0/extensions/arm-linux/2.1.0/unf_ext-0.0.7.4/mkmf.log

    extconf failed, exit code 1

    Gem files will remain installed in /var/lib/gems/2.1.0/gems/unf_ext-0.0.7.4 for inspection.
    Results logged to /var/lib/gems/2.1.0/extensions/arm-linux/2.1.0/unf_ext-0.0.7.4/gem_make.out

    1. sieh mal nach welche Verison von ruby installiert ist:

      xbian@TV-Server ~ $ ruby -v
      ruby 2.1.5p273 (2014-11-13) [arm-linux-gnueabihf]
      xbian@TV-Server ~ $

      1. Genau dieselbe Version (scheint aber von der Distri ein neues .IMG zu geben, zumindest scheint mir 19. Mai 2017 recht neu;-)

  6. Hallo,
    klappt das mit den m3u. Listen auch für A1TV View Control (7 Tage zurück fernsehen) ?
    Bzw. gibt es die Funktionen der MEdiabox auch per Webportal?
    kann man per m3u auch die aufnahmen ansehen?
    Hintergrund: Ich würde gerne die Mediabox von meinem PC aus steuern.
    Gruß, Christian

Schreibe einen Kommentar zu bihlo Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.