1. FEATURE
Selfmade IPTV
■ This is how our test
centre looked like for
this report.
Fernsehen
aus dem
Netzwerk
• ideal für Bastler, um Audio und Video zuhause zu
streamen
• eine kleine Platine dient als Basis für das eigene
Heim IPTV Netzwerk
• MPEG2 und VC Lizenzen müssen getrennt gekauft
werden
• zum Streaming wird TSReader Pro eingesetzt
• kann auch mit VLC eingesetzt werden
Teil 4
146 TELE-audiovision International — The World‘s Largest Digital TV Trade Magazine — 1
1-12/2013 — www.TELE-audiovision.com
www.TELE-audiovision.com — 1
1-12/2013 — TELE-audiovision International — 全球发行量最大的数字电视杂志
147
2. FEATURE
Selfmade IPTV
Vitor Martins Augusto
Nachdem wir uns in den ersten
drei Teilen zum Thema IPTV eher
der Theorie gewidmet haben möchten wir nun im vierten Teil eine konkrete IPTV-Lösung implementieren.
Benötigt wird gar nicht mal so viel:
als Server dient ein PC mit einem
Empfänger für digitales Fernsehen
(DVB, ATSC oder ISDB) und TSReader Pro. Als IPTV-Receiver benutzen wir den Raspberry Pi.
Das häufigste Problem bei der Implementierung von IPTV im Heim ist die
Frage, wie man denn das IPTV am Fernseher empfangen und darstellen soll.
Natürlich könnte man an jedem Fernseher einfach einen kompletten PC hinstellen, doch dies würde nicht unbedingt gut
aussehen und außerdem kostet auch ein
günstiger PC doch einiges an Geld, von
den Stromkosten mal abgesehen. Wir
haben uns deshalb umgesehen, welches
Gerät wir denn als IPTV Receiver benutzen könnten. Unsere Kriterien: günstig,
klein, verfügbar und vielseitig sollte das
Gerät sein. Nachdem wir verschiedene Kandidaten geprüft haben (von der
Spielekonsole bis zum modifizierten AppleTV war alles dabei), entschieden wir
uns für den Raspberry Pi.
Der Raspberry Pi ist ein winziger Computer, dessen Platine die Fläche einer
Kreditkarte belegt (85.6mm x 56mm x
21mm). Trotz der kleinen Größe handelt
2
es sich um einen vollwertigen Computer
mit einem ARM-Prozessor. Die Eckdaten
sind:
SoC („System on Chip“): Broadcom
BCM2835 mit einem ARM1176JZFS
Kern, der mit 700MHz getaktet wird und
eine Videocore 4 GPU Grafikeinheit enthält, die in der Lage ist, H.264 mit bis zu
40MBits/s in Hardware zu dekodieren.
Weiterhin werden OpenGL ES2.0 und
OpenVG Bibliotheken unterstützt.
Model B verfügt über 512MB RAM, aktuell werden die Platinen sogar zum gleichen Preis mit 1GB RAM ausgeliefert.
Anschlüsse:
- SD-Karte: von dieser wird das Betriebssystem geladen
1. The Raspberry Pi is a small computer
with the footprint of a credit card. Still, it
features all conceivable connections:
- HDMI
- Composite Video
- Analog Stereo Audio
- 2x USB
- 1x Micro-USB for power supply
- RJ-45 Network
- SD card reader
On the PCB there are furthermore
connectors for digital and analog inputs/
outputs
2. The Raspberry Pi will convert any TV or
monitor into a full blown media center when
using XBMC. Because the Raspberry Pi is
so small, it will snug away behind the TV.
If you then use a wireless keyboard with
integrated trackball or touch pad, you won’t
even see any loose cables.
1
148 TELE-audiovision International — The World‘s Largest Digital TV Trade Magazine — 1
1-12/2013 — www.TELE-audiovision.com
3. 3
7
4
3. The webpage “openelec.thestateofme.com” features all
published versions of OpenELEC for Raspberry Pi, including
Windows-friendly *.img version, which can be easily flashed using
Image Writer, whose Windows version is called Win32 Disk Imager.
4. Just download the latest rXXXXX.img.zip File and extract it with
your favourite compressing tool.
5. Use Win32 Disk Imager to write the image file onto the SD card.
We recommend the use of 8GB SD cards with 6x speed or better.
The card is written with 10MB/s which is not that bad. Flashing
should take less than a minute.
6. When the flashing is finished, a message box appears. Don’t
remove the card yet, because we need to write the license keys for
the MPEG2 decoder.
7. On the root of the freshly written SD card you will find a file
called “config.txt”. Open it with a text editor (we prefer to use the
free Notepad++) and scroll down to the license keys section. Copy
& paste the license file you
from
6 received After the Raspberry
Pi store.
completing the
purchase our keys arrived
about 2 hours later, but the site
mentions that it could take up to
72 hours.
5
- 2x USB: zum Anschluss
von Tastatur, Maus, USBSpeicher, usw.
- LAN: RJ-45 mit
100MBit/s
- Audio: analoger StereoAusgang
- RCA Video: analoger
Composite Video-Ausgang
- HDMI: für digitale Audio
und Video Ausgabe
- Micro-USB: für Stromversorgung
Das interessante an diesem Gerät ist sein Preis: offiziell kostet der Raspberry
Pi Model B lediglich US$ 35,
zu welchen sich Steuern und
Versandkosten addieren. In
Europa kann man den Raspberry Pi für ungefähr 35
Euro kaufen. Dieser niedrige
Preis ist deshalb möglich, weil
dieser
Miniatur-Computer
von der Raspberry Pi Stiftung
entwickelt wurde, die es sich
zum Ziel gesetzt hat, einen
absolut günstigen Computer
für alle Kinder zur Verfügung
zu stellen, um das Programmieren auch im Kindesalter
zu motivieren, wie es früher bei den 8-Bit Computern
wie dem Spektrum und dem
Commodore 64 der Fall war.
Für alle anderen ist es aber
toll, dass diese Platine uneingeschränkt zu erwerben
ist und somit Applikationen
möglich sind, die vorher aus
Kostengründen eigentlich unvorstellbar wären.
Der Raspberry Pi wird in
Zusammenarbeit von Farnell und RS Electronics hergestellt und ist bei diesen
weltweit zu beziehen. Damit
man die Platine benutzen
kann benötigt man weiterhin
ein Micro-USB Netzteil, das
auch bei modernen Smartphones üblich ist. Außerdem
braucht man eine SD-Karte,
wir empfehlen eine mit 8GB.
Ein passendes Gehäuse kann
seit kurzem ebenfalls für ca.
6 Euro bestellt werden und
macht auf jeden Fall Sinn,
um die Platine vor einem
Kurzschluss oder statischer
Entladung zu schützen. Wir
haben die Platine allerdings
wochenlang ohne Gehäuse
benutzt und diese auch angefasst, ohne dass etwas passiert wäre.
Weil die Platine so klein
ist, lässt sie sich prima hinter dem Fernseher platzieren
150 TELE-audiovision International — The World‘s Largest Digital TV Trade Magazine — 1
1-12/2013 — www.TELE-audiovision.com
und als Tastatur und Maus
eignet sich am besten eine
kabellose Version, die beide
Funktionen auf kleiner Fläche
integriert. Im Handel finden
sich viele oft als „Multimedia“
oder „TV“ Tastatur bezeichnete Modelle, deren Maus als
Trackball oder Touchpad implementiert ist.
Ganz wichtig: um den Preis
von Raspberry Pi klein zu
halten, fehlen dem Gerät die
Lizenzen, um MPEG2 abzuspielen, obwohl die Hardware
dazu durchaus in der Lage
ist. Dies ist aber für die Darstellung von IPTV notwendig,
da die meisten Kanäle, die in
SD ausgestrahlt werden, in
MPEG2 kodiert sind. Im Webshop der Raspberry Pi Stiftung kann man für 3,00 Euro
die MPEG2 Lizenz kaufen.
Man erhält per e-Mail einen
Schlüssel, der diese Funktion aktiviert. Dieser Schüssel
4. 8
muss auf der SD-Karte in der
„config.txt“-Datei an entsprechender Stelle eingetragen werden. Fortan werden
auch MPEG2 kodierte Inhalte
mittels hardware-gestützter
Dekodierung dargestellt. Auf
gleiche Weise kann auch eine
VC-1 Lizenz für 1.50 Euro gekauft werden, um entsprechende Inhalte darstellen zu
können.
Raspberry Pi funktioniert
hauptsächlich mit einer angepassten Linux-Distribution,
doch mittlerweile bekommt
man auch schon fertige
Firmware-Dateien („Image“
genannt) mit XBMC. Der seltsame Name dieser Multimedia-Software entstand aus
der Abkürzung für „Xbox Media Center“: diese Software
wurde ursprünglich für die
erste Version der Xbox entwickelt. Mittlerweile wurde
diese Software auf alle denkbaren Systemen portiert, darunter auch Windows, Linux,
MacOS sowie Android und
iOS. Keine Frage: bei XBMC
handelt es sich um eines der
besten Multimedia-Programme. Es werden praktisch alle
Formate abgespielt (Audio,
Video und Bilder), es gibt unzählige Plugins und die Bedienung ist kinderleicht. Wer
XBMC noch nicht kennt sollte
dieses Programm unbedingt
auf Windows, MacOS oder Linux ausprobieren.
Wie im Linux-Umfeld üblich, gibt es gleich mehrere
verschiedene Distributionen
von XBMC für den Raspberry Pi: OpenELEC, Raspbmc,
XBian, usw. Wir haben mit
OpenELEC die besten Resultate erzielt.
Um den Raspberry Pi mit
XBMC zu benutzen, müssen
folgende Schritte durchgeführt werden:
1) Die Datei mit dem
XBMC-Image muss von der
OpenELEC Webseite geladen
werden (siehe Linktabelle).
2) Entpacken Sie das Archiv
zum Beispiel mit WinRAR.
3) Die *.img Datei wird
anschließend mit Win32DiskImager auf die SD-Karte
geflasht. Stellen Sie sicher,
dass Win32DiskImager auch
wirklich das korrekte Lauf-
9
10
werk für die SD-Karte entdeckt hat, damit Sie nicht
aus Versehen das falsche
Laufwerk formatieren.
4) Nun muss die „config.
txt“ Datei editiert werden:
an der entsprechenden Stelle
muss der Lizenz-Schlüssel für
MPEG2 eingegeben werden.
Nun kann man den Raspberry Pi starten und nach
wenigen Sekunden erscheint
die XBMC Oberfläche, die
hervorragend
selbsterklärend ist. Wichtiger Hinweis:
es ist normal, dass beim
152 TELE-audiovision International — The World‘s Largest Digital TV Trade Magazine — 1
1-12/2013 — www.TELE-audiovision.com
11
12
ersten Start, nachdem die
SD-Karte beschrieben wurde, das Betriebssystem automatisch neu startet. Erst
beim zweiten Start wird dann
XBMC geladen. Der erste
Durchlauf dient zur Konfiguration des Betriebssystems.
Warten Sie daher etwa, anstatt es wie wir zu machen:
wir dachten am Anfang, etwas sei fehlgelaufen und haben prompt die SD-Karte neu
programmiert…
Mit TSReader Pro ist es
möglich, den empfangenen
Transport Stream direkt über
UDP in das Netzwerk einzuspeisen. Entweder kann der
Transport Stream komplett
1:1 in das Netzwerk geleitet
werden oder man benutzt die
integrierte Demuxer-Funktion. Mit dieser kann jeder einzelne im Transport Stream
enthaltene Kanal separat
in das Netzwerk gestreamt
werden.
Da
gewöhnliche
Multimedia-Geräte normalerweise über keinen Demuxer
verfügen, können Sie einen
Transport Stream nicht darstellen oder es wird nur ein
Kanal des Transport Streams
angezeigt ohne Möglichkeit,
einen anderen Kanal auszuwählen. Genau dies passiert
auch mit XBMC, wenn man
versucht, den kompletten
Transport Stream zu empfangen: es wird einfach nur ein
Kanal dargestellt, ohne dass
man die Möglichkeit hat, auf
einen anderen umzuschalten.
Deshalb benutzen wir die
Demuxer-Funktion von TSReader Pro und streamen die
gewünschten Kanäle per Multicast in das Netzwerk, wobei
wir aber für jeden Kanal eine
individuelle
Port-Nummer
verwenden.
Damit XBMC diese Streams
auf
verschiedenen
Ports
empfangen kann, müssen wir
eine Playliste im *.m3u Format erstellen. Dies ist praktisch, denn so erscheint in
XBMC eine Liste mit den vollständigen Kanalnamen und
das Zappen gestaltet sich
äußerst komfortabel.
Der Clou ist aber, dass
man mehrere Instanzen von
TSReader Pro starten kann,
jeweils mit einem andern Tu-
13
15
14
8. Start TSReader Pro and tune
to the desired transponder as
usual.
9. Open the “Forward” menu
and select “Forward to UDP…”.
On the list in the upper part
of the window select each
channel you want to stream
and configure the respective IP
address and port number. You
can use the same IP address for
all channels, but then you need
to use individual port numbers.
Remember that the multicast
addresses start at 224.1.1.1 and
go up to 239.255.255.255.
10. Using a text editor like
Notepad++, you need to
configure the play list for XBMC,
introducing each streamed
channel with the respective IP
and port.
11. In our first experiment, we
streamed four channels and
configured the IPTV.m3u file
accordingly. Naturally you can
name the file as you desire,
as long as you keep the *.m3u
extension.
12. Not too soon, we wanted
to try to increase our IPTV
bouquet and added a second
TSReader session, this time
using a DVB-T tuner.
13. With this TSReader
session we were receiving the
Portuguese digital terrestrial
television, which contains only
4 channels.
14. Each channel was assigned
an IP address and an individual
port number.
15. Streaming has started.
TSReader tracks on how much
data has been sent and how
many errors occurred.
www.TELE-audiovision.com — 1
1-12/2013 — TELE-audiovision International — 全球发行量最大的数字电视杂志
153
5. 16
6
16. Boot screen of the OpenELEC
distribution of XBMC for the
Raspberry Pi
17. Main menu of XBMC. You can
access all functions from here,
using the keyboard, the mouse
or any other device you connect,
including a wide range of remote
controllers.
18. The video menu. You can add
new folders containing video using
the “Add Videos…” entry. These
can be folders on the Raspberry
Pi or shared folders within the
network.
19. Playing a TV channel received
over the network – IPTV at its best
20. XBMC includes a wide range of
configurations for audio and video,
17
21
18
22
19
23
20
24
154 TELE-audiovision International — The World‘s Largest Digital TV Trade Magazine — 1
1-12/2013 — www.TELE-audiovision.com
including the display of subtitles
21. Zapping can be done using the
|<< and >>| buttons or by going
back to the playlist.
22. Playing a streamed channel
from HOTBIRD 13.0E.
23. This is a different playlist,
showing the channels we are
streaming from our DVB-S/S2 card.
You can have as many playlists as
you wish.
24. Zapping between the different
channels within the playlist is easy,
but naturally you have to expect 2-3
seconds to see the next picture.
The reason is the buffering that
is required, to ensure that sudden
delays within the network traffic
don’t stop the reproduction.
6. 25
6
26
27
28
ner (egal ob auf einem oder
mehreren PCs – schließlich
benutzen wir ja Multicast), so
dass man sich ein ansehnliches Bouquet erstellen kann.
Wir haben zum Beispiel einige
Kanäle eines Transponders
von HOTBIRD (13.0E) mit
dem portugiesischen digitalen terrestrischen Fernsehen
kombiniert. Fortan stehen im
ganzen Haus über das Netzwerk diese 8 Kanäle bereit
und können mit dem Raspberry Pi, aber auch anderen
Geräten (PC, Tablet, Konsole, usw.) empfangen werden,
wenn diese mit UDP-Streams
umgehen können. Besonders
einfach ist es natürlich, wenn
auf dem jeweiligen Gerät
XBMC installiert ist.
Das Format der *.m3u
Playliste ist recht einfach und
sieht so aus:
#EXTM3U
#EXTINF:0,RTP-1
#E X T V L C O P T:n e t w o r kcaching=1000
udp://@224.2.2.2:1001
#EXTINF:0,RTP-2
#E X T V L C O P T:n e t w o r kcaching=1000
udp://@224.2.2.2:1002
#EXTINF:0,SIC
#E X T V L C O P T:n e t w o r kcaching=1000
udp://@224.2.2.2:1003
30
#EXTINF:0,TVI
#E X T V L C O P T:n e t w o r kcaching=1000
udp://@224.2.2.2:1004
Die erste Zeile identifiziert
die Datei als EXTM3U-Playliste und muss genau so vorhanden sein. Nun folgen für
jeden Kanal 3 Zeilen: #EXTINF bietet „Extended Info“,
also weitere Informationen,
damit XBMC statt dem Dateinamen und der IP-Adresse
den Namen des Kanals anzeigt. Hier kann nach dem
„0,“ ein beliebiger Text, in
unserem Fall eben der Name
des Kanals, eingegeben werden. Die nächste Zeile dient
dazu XBMC anzuweisen, einen Puffer anzulegen, damit das Bild bei kurzzeitigen
Netzwerk-Kollisionen
nicht
stottert. Bei einem großen
Wert dauert das Zappen
deutlich länger. Wir verwendeten Werte zwischen 100
und 1000. Nun folgt eine Zeile, in welcher das Protokoll
(udp://@) und die entsprechende IP-Adresse mit PortNummer angegeben wird.
Diese müssen natürlich zu
den IP-Adressen und PortNummern passen, die in TSReader angegeben wurden.
Diese drei Zeilen wiederholen sich für jeden einzel-
nen Kanal. Um diese Datei
zu erstellen und zu editieren,
kann jeder beliebige Texteditor benutzt werden, denn es
handelt sich im Grunde um
eine normale *.txt-Datei, bei
welcher die Datei-Endung auf
*.m3u geändert wurde. Wir
weisen hier auf Notepad++
hin - ein toller Open Source
Editor mit vielen Funktionen
und Plugins, der auch mit
entsprechendem Plugin als
Hex-Editor dient.
Die fertige *.m3u-Datei kopiert man nun zum Beispiel
auf einen USB-Speicher und
steckt ihn an den Rasperry
Pi. Dies kann bei laufendem
Gerät erfolgen, XBMC erkennt den Speicher automatisch. Geht man nun auf Video, kann man die Playliste
anklicken und den gewünschten Kanal wählen. Außerdem
kann man leicht zum nächsten oder vorherigen Kanal
zappen. Nur ein direktes numerisches Anwählen ist nicht
vorgesehen. Weiterhin kann
man wählen, ob man Kanäle aus verschiedenen Transpondern, die von verschiedenen TSReader-Instanzen
gestreamt werden, in eine
einzige *.m3u-Playliste integrieren möchte, oder ob man
nicht doch lieber verschiede-
32
ne Playlisten anlegt. Die hier
beschriebene Konfiguration
lässt sich übrigens auch mit
VLC als Server verwirklichen,
wodurch man nochmal etwas Geld spart, da es sich
bei VLC um ein Open Source
Projekt handelt. Hier muss
man aber deutlich mehr Zeit
als mit TSReader Pro investieren, da die Konfiguration
des VLC-Servers nicht so
einfach ist. Wir konnten zum
Beispiel problemlos über VLC
einen DVB-T Transponder
streamen, bei DVB-S klappte
es aber nicht, da die aktuelle
Version scheinbar einen Problem mit DVB-S Tunern hat.
Installiert man eine ältere
VLC Version, dann klappt der
DVB-S Empfang zwar, dafür
funktioniert das Streamen
aber nicht mehr.
Unser Fazit: IPTV in der
Praxis ist gar nicht mal so
kompliziert. Wir erzielten absolut brauchbare Resultate
und mit einem 1000MBit/s
Netzwerk braucht man sich
nicht vor einer Überbelastung des Netzwerkes fürchten. Durch das Multicasting
kann man beliebig viele
IPTV-Receiver
anschließen
und mit XBMC kann man
gleichzeitig auch auf ideale
Weise auf Musik und Filme
zugreifen, die entweder lokal
auf dem USB-Speicher oder
im Netzwerk vorhanden sind.
Inzwischen hat die Raspberry Fan-Gemeinde auch
schon diverse USB-Tuner
zum Laufen gebracht und natürlich werden wir demnächst
ebenfalls versuchen, auf Ba-
sis des Rasperry Pi unseren
eigenen „Linux-Receiver“ zu
basteln. Auf jeden Fall ist
der Raspberry Pi ein interessantes Gerät zum Basteln
und wer sich mit Audio und
Video beschäftigt bekommt
so eine brauchbare Plattform
für kleines Geld.
www.raspberrypi.org
Webseite der Raspberry Pi Stiftung. Hier findet man die wichtigsten Betriebssystem-Images zum Download, einen Wiki, ein
Forum und Anleitungen. Außerdem werden hier fast täglich
neue interessante Projekte vorgestellt.
www.raspbmc.com
Eine von vielen XBMC-Distributionen für den Raspberry Pi. Diese ist besonders einsteiger-freundlich.
wiki.openelec.tv/index.php?title=Installing_
OpenELEC_on_Raspberry_Pi
Wiki-Seite der OpenELEC XBMC Distribution für den Raspberry
Pi. Diese scheint uns besonders ausgereift und bietet den größten Funktionsumfang.
sources.openelec.tv/tmp/image
Auf dieser offiziellen Seite kann das OpenELEC XBMC Image
für verschiedene Plattformen, auch dem Raspberry Pi, geladen werden. Allerdings lässt sich dieses Image nur über Linux
installieren.
openelec.thestateofme.com
Auf dieser Seite werden die OpenELEC XBMC Images für Raspberry Pi auch im windows-kompatiblen Format zur Verfügung
gestellt. Diese können mit Image Writer auf die SD-Karte geflasht werden. Wählen Sie am Ende der Liste die neueste ZIPDatei (rXXXXX.img.zip).
https://launchpad.net/win32-image-writer/+download
Webseite des Image Writer für Windows. Dieses Tool schreibt
die Firmware-Images auf die SD-Speicherkarten.
www.tsreader.com/tsreader
Webseite von TSReader. Für die Streaming-Funktion wird die
Professional Version benötigt, die kostenpflichtig ist.
www.videolan.org/vlc
Wer lieber Gratis-Lösungen benutzt, sollte VideoLANs VLC probieren. Mit dieser Software ist es auch möglich, einen Transport-Stream zu demuxen und die enthaltenen Kanäle einzeln
über separate IP-Adressen und/oder Ports zu streamen. Allerdings ist die Konfiguration doch weitaus komplizierter.
29
31
156 TELE-audiovision International — The World‘s Largest Digital TV Trade Magazine — 1
1-12/2013 — www.TELE-audiovision.com
33
25. Here you can see both playlists: one for the Portuguese TDT
transponder and one for the HOTBIRD 13.0E satellite transponder
26. If you prefer, you can merge the channels of different playlists
into a single playlist. Here we see all streamed channels in one
single playlist, despite the fact that these channels come originally
from different tuners.
27. Naturally, XBMC has many more capabilities. Why not watch
a movie? Almost all formats are recognized and supported,
including subtitles and multiple audio channels.
28. Time for a break: watching the classic Metropolis. Did you
know that this masterpiece can be downloaded for free, because
the copyright expired long time ago?
29. Here a different movie, encoded and encapsulated differently
(*.mp4): a recreation of the Space Odyssey, but using Lego
actors…
30. XBMC can be adjusted to your preferences and needs. Just go
to the settings menu.
31. Here you can setup every detail, including the weather settings.
32. We specified the location of our test centre.
33. There are many options to setup audio and video. The
Raspberry Pi features a full HDMI connector and is capable of
resolutions up to full HD at 1920x1080
www.TELE-audiovision.com — 1
1-12/2013 — TELE-audiovision International — 全球发行量最大的数字电视杂志
157