Streaming
Wir unterscheiden (vorläufig) drei verschiedene Anforderungen an das Streaming-Profil des Servers: 1) Live-Streaming der Fernsehkanäle, 2) Aufzeichnungen, 3) Live-Streaming der Fernsehkanäle + Aufzeichnungen.
Je nachdem, ob 1), 2) oder 3) gewünscht sind, gibt es unterschiedliche Ansätze, um den Anforderungen gerecht zu werden:
Inhaltsverzeichnis |
Streaming von Fernsehkanälen
Zum Streaming von Fernsehkanälen mit dem VDR wird das Streamdev-plugin (Server) in der Praxis mit folgenden Client-Playern genutzt:
'Software'
- MPlayer (Linux, Windows) [1]
- Xine-Player (Linux) [2]
- VLC (Linux, Windows) [3] (nicht empfehlenswert, siehe [4])
- Winamp (Windows) [5]
- VDRMediaClient (Windows)
- Media Player Classic (Windows) [6]
Das Streamdev-plugin kann entweder direkt über den Client-Player angesprochen werden oder aber indirekt über praktische Tools wie z.B. den Vdradmin oder den Streamingcontrol (nur für Windows).
Mit dem MPlayer kann ein Stream z.B. mit folgendem Befehl gestartet werden:
Linux: user@client> mplayer http://192.168.0.200:3000/PES/3 Windows: C:\Programme\mplayer\mplayer http://192.168.0.200:3000/PES/3 wobei: * 192.168.0.200 = IP des VDR-Servers * 3000 = Port über den das Streamdev per default streamt (s. OSD|Einstellungen) * PES = Packetized Elementary Stream (PES) - neben MPEG-2 Transport Stream (TS), MPEG-2 Program Stream (PS) und Elementary Stream (ES) * 3 = Kanal-Nummer (entsprechend der Reihenfolge der Kanäle in channels.conf) Eventuell muss unter Linux noch die Option -vo /dev/... zur Angabe des Geräts für Video-Output ergänzt werden (vgl. mplayer --help).
Um einen Stream aus dem VDRAdmin direkt zu starten kann der Mplayerstarter verwendet werden
Nützliche Tools, um sich die etwas kryptische Eingabe dieser Daten im Alltag zu ersparen, sind die bereits genannten Vdradmin und Streamingcontrol, wobei der erstere plattformunabhängig über den Browser funktioniert bzw. funktionieren sollte (es aber oft nicht tut) und der letztere lediglich unter Windows (idealerweise mit dem mitgelieferten MPlayer im Verzeichnis ...\vdrtools, der aber laut Handbuch im Zipfile kein DivX streamen kann).
Anscheinend funktioniert das Streaming bislang unter Windows nur ansatzweise (obschon von Mal zu Mal besser) und scheint extrem davon abzuhängen, wie Plugin, Player und Tools aufeinander abgestimmt sind (vgl. [7]). Unter Linux geht es einwandfrei!
Streaming von Radiokanälen
Für das Streaming zu iTunes sollte man den ES-Streamtyp verwenden. Leider werden Sendernamen mit umlauten bislang nicht korrekt dargestellt.
#!/usr/bin/perl -w use strict; # ------------------------------------------------ # initial vars: configure here ! # ------------------------------------------------ my $channels="/etc/vdr/channels.conf"; my $baseurl="192.168.1.100"; my $port="3000"; my $musicbaseurl="/daten/musik/radiochannels"; # DIRECTORY MUST ALREADY EXIST! # ------------------------------------------------ # no need to configure below (hope so...) # ------------------------------------------------ my $stationnr=0; my $shellcommand=''; my $shelloutput=''; my @radiostation=(); my @output_row=(); $shellcommand ='cat '.$channels.' | '; $shellcommand .= 'egrep \'^[^:]*\:[^:]*\:[^:]*\:[^:]*\:[^:]*\:0.*\' |'; $shellcommand .= 'sed \'s/^\([^\;]*\)[^:]*\:\([^:]*\:[^:]*\)\:\([^:]*\)\:\([^:]*\:[^:]*\:[^:]*\:[^:]*\:[^:]*\:\)\([^:]*\)\:\([^:]*\)\:\([^:]*\)\:\(.*\)$/ http:\/\/'.$ baseurl.':'.$port.'\/ES\/\3-\6-\7-\5 #\1/g\' '; $shelloutput=`$shellcommand`; printf $shellcommand; if ($shelloutput) { @output_row=split ( /\n/, $shelloutput); foreach (@output_row) { $stationnr++; @radiostation=split ( /#/, $_); open(DATEI, ">".$musicbaseurl."/".$stationnr.".url") || die "Datei nicht gefunden"; print DATEI ','.$radiostation[1].','.$radiostation[0]; close(DATEI); } }
Streamen zu iTunes über mt-daapd-Server
MT-Daapd, der Linux-iTunes-Server akzeptiert auch URLs von MPEG-Streams als Tracks. Hierzu wird für jeden Sender eine eigene Datei mit der Endung ".url" benutzt, in der sich v.a. die URL des Streams befindet (
Erstellen einer iTunes Playlist mit den VDR-Radiokanälen
Streaming von Aufzeichnungen
Anscheinend kann man über das streamdev-plugin keine Aufzeichnungen streamen, aber der Aufruf dürfte wegen des Pfades ohnehin ziemlich umständlich sein. Die einfachsten Lösungen beruhen daher auf Freigaben. Wenn man den Film als Ganzes ansehen möchte, legt man zuvor im entsprechenden Verzeichnis des VDR-Servers mit folgendem Befehl ganz einfach eine Gesamtdatei an:
cat 001.vdr 002.vdr 003.vdr > all.vdr
Ein klein wenig Geduld ist (je nach Rechner) allerdings erforderlich, denn es geht in der Regel um mehrere Gigabytes, die da zusammenkopiert werden müssen.
Unter Linux
Einfacher als der umständliche Aufruf des langen Pfades einer Aufzeichnung dürfte es sein, auf dem Linux-Client einen VDR als Client aufzusetzen und über diesen die Aufgabe zu erledigen (vgl. Streamdev-plugin). Ein schön illustriertes Beispiel hierfür gibt peter_weber69 auf seiner VDR-Homepage (vgl. auch weiter unten). Als Grundlage kann Kanotix - VDR Live CD verwendet werden. Selbstverständlich würde es auch eine NFS-Freigabe tun - nur hat obige Lösung den Vorteil, dass (fast?) die komplette Funktionalität des VDRs zu Verfügung steht.
Unter Windows
Der einfachste Weg unter Windows geht über eine Samba-Freigabe. Sodann bietet es sich an, die Extension .vdr dem MPlayer zuzuordnen - und schon genügt ein Doppelklick auf die Datei, um die Wiedergabe per MPlayer zu starten.
Selbe Vorgehensweise für den VDRMediaClient (Windows).
Streaming von Fernsehen und Aufzeichnungen
Zur klassischen VDR-to-VDR-Lösung mit dem Streamdev-plugin gibt es eine interessante Alternative, bei der das Xine-plugin zum Einsatz kommt.
Konzeption
Diese Server-Client-Lösung basiert auf folgender Konzeption:
VDR-Server
- VDR
- xine-plugin
- xine-lib
Client
- Xine-Player (= xine-lib + xine-ui)
Vor- und Nachteile
+ auf dem Client braucht kein VDR zu laufen; es genügt lediglich ein speziell gepatchter Xine-Player
+ auf dem Client steht die volle Funktionalität des VDRs zu Verfügung (inkl. OSD)
- die Installation der Xine-Komponenten (xine-lib und xine-ui) ist wegen diverser Abhängigkeiten alles andere als trivial
Installationsanleitung
Eine detaillierte Anleitung, wie diese Streaming-Lösung erfolgreich installiert werden kann, findet sich hier bzw. unter den Links.