HTTP Live Streaming
HTTP Live-Streaming ist eine von Apple entwickelte Technologie zum Streamen von Videoinhalten per HTTP.
Videosignale werden in Blöcke von 9-10 Sekunden Länge unterteilt. Diese Blöcke müssen in unterschiedlichen Qualitäten erzeugt und mit Hilfe einer Playlist bekanntgemacht werden. Beim Abspielen einer Playlist erhält der Player Informationen über die zur Verfügung stehenden Blöcke und deren Bild- und Tonqualität. Abhängig von der verfügbaren Netzqualität wählt der Player dann den passenden Block, die passende Streamqualität aus. Sollte sich während des Abspielens die zur Verfügung Netzqualität ändern, beispielsweise weil man sich mit seinem Mobilgerät im Auto befindet, kann der Player selbständig Blöcke höherer oder niederer Qualität auswählen, um das Abspielen nicht unterbrechen zu müssen.
Daraus folgt allerdings, dass auf dem VDR Streams von verschiedener Qualität gleichzeitig erzeugt werden müssten, wenn man Live-TV schauen möchte. Bei der Ausstattung der meisten VDRs dürfte das nicht möglich sein, da das Kodieren der Videosignale in ein HTTP Live-Streaming kompatibles Format sehr rechenintensiv sein kann (abhängig von der gewünschten Qualität).
Daher bietet dir iVDRclient beim Erzeugen von Streams die Möglichkeit zur Auswahl der gewünschten Bild- und Tonqualität. Zu Hause im WLAN kann man mit hoher Qualität auf dem Mobilgerät fernsehen, unterwegs kann schon allein eine niedrige Upload-Rate des DSL-Anschlusses den Spaß etwas trüben.
Entscheidend für die mögliche Qualität ist natürlich auch die Ausstattung des VDRs. Ein älterer Prozessor kann schon mit der Erzeugung eines Streams in niedriger Qualität Probleme haben, ein moderner und schneller Prozessor kann sicher mehrere Stream in hoher Qualität gleichzeitig erzeugen.
Ausprobieren macht in diesem Fall schlau.
VLC
Auf dem VDR muss vlc in einer aktuellen Version (mind. 2.1.4) installiert sein.
Mit Hilfe von vlc werden die Streams erzeugt. iVDRclient startet vlc auf dem VDR. Eingangsseitig verbindet sich vlc an das streamdev-Plugin, ausgangsseitig werden HTTP Live-Streaming Segmente in das konfigurierte Verzeichnis gespeichert.
iVDRclient muss daher auch als Client für das streamdev-Plugin betrachtet werden, mit allen Vorteilen und Einschränkungen. Beispielsweise wird Streaming von ZDF nicht funktionieren, wenn ein anderer User schon ARD schaut und nur eine DVB-S Karte im VDR zur Verfügung steht.
Zurzeit erzeugt vlc die Segmente noch nicht 100% Apple Standard konform, so dass beispielsweise beim Anschauen des Streams zu Beginn für ca. 10 Sekunden immer nur Ton zu hören und ein Standbild zu sehen sind.
Live-TV funktioniert in dieser Konstellation schon sehr gut, wenn auch nicht perfekt. Mit neuen Versionen von vlc wird es sicher weitere Verbesserungen geben.
Aufnahmen streamen funktioniert auf identische Weise, es kann jedoch Probleme geben, wenn man beim Streamen zu anderen Zeiten springen möchte. Wer auf diesen Komfort nicht verzichten möchte, sollte aus der Aufnahme zuerst vollständig einen Stream erzeugen, d.h. Streaming starten und abwarten. Streams, die aus Aufnahmen erzeugt wurden, bleiben auf dem VDR gespeichert, bis der Nutzer sie manuell über iVDRclient löscht. Man kann also morgens den Stream erzeugen und abends schauen (wenn man gut plant...)
Benutzerverzeichnisse und WebServer
In den meisten Fällen wird das Web Server Verzeichnis zum Speichern des Stream das Verzeichnis
/home/$USER/public_html
sein. Dieses Verzeichnis ist bei den meisten Distributionen per default nicht über den Webserver erreichbar.
Apache2
Führe folgende Befehle auf deinem VDR aus, um das oben genannte Verzeichnis freizugeben, falls du Apache2 benutzt.
Der erste Befehl lädt das notwendige Apache-Modul:
sudo a2enmod userdir
Der zweite Befehlt startet Apache2 neu (abhängig von Installation und Distribution kann dieser Befehl abweichen):
sudo /etc/init.d/apache2 reload
lighttp
Führe folgende Befehle auf deinem VDR aus, um das oben genannte Verzeichnis freizugeben, falls du lighttp benutzt:
Der erste Befehl lädt das notwendige ligthttp-Modul:
sudo lighty-enable-mod userdir
Der zweite Befehlt startet lighttp neu (abhängig von Installation und Distribution kann dieser Befehl abweichen):
sudo /etc/init.d/lighttpd reload
tntnet
Füge folgenden Abschnitt in die Datei tntnet.xml ein:
<mapurl>
<target>static@tntnet</target>
<url>^/ivdrclient/(.*)$</url>
<pathinfo>/tmp/ivdrclient/$1</pathinfo>
</mapurl>
Dieser Eintrag lenkt URLs nach "/tmp/ivdrclient" um. Für dieses Beispiel muss im entsprechenden Profil in der App der Pfad "/tmp" im Feld "Web Server Dir." eingetragen werden.