| E-Mail: | |
|---|---|
| Homepage-URL: |
Dieser Artikel versteht sich nicht als eine vollständige Abhandlung zum Thema, sondern vielmehr als persönlicher Erfahrungsbericht, der Anderen den Einstieg in die Materie erleichtern soll. Für Ergänzungen und Tipps bin ich jederzeit dankbar!
Wer auf seiner Homepage Audio oder Video anbieten will, steht vor einer
grundsätzlichen Entscheidung:
Einerseits kann man Dateien zum Download anbieten. Hierfür hat sich das
MP3-Format etabliert.
Die zweite Möglichkeit nennt sich "Streaming Media":
Dabei wird die Datei während des Downloads bereits angezeigt. Der User muß
also nicht erst riesige Datenmengen herunterladen, sondern bekommt fast sofort zu sehen
(bzw. hören), worum es geht. Hierfür bietet sich Realmedia an.
Der für das Abspielen benötigte
Realplayer ist in der Basic-Version kostenlos zu haben und weit verbreitet.
Zum Erstellen der Realmediadateien gibt es den einfach zu bedienenden und in der Basic-Version
ebenfalls kostenlosen
Realproducer.
Einige Audio- und Videoeditoren bieten außerdem Realmedia Exportfilter.
Liest man sich die Dokumentation zu Realmedia durch, gewinnt man schnell den Eindruck, dass man außerdem noch den Realserver benötigen würde. Tatsächlich hat es gewisse Vorteile, Realmedia über einen Realserver zu streamen:
Seit der Version G2 können die Realmedia-Dateien beim Erstellen für mehrere Bandbreiten kodiert werden. Server und Realplayer kommunizieren über das "Realtime Streaming Protocol" (RTSP), wobei die Bandbreite dynamisch angepasst werden kann, d.h. jeder User bekommt die für seine Internetverbindung optimale Übertragungsrate. Wird die Verbindungsqualität schlechter oder besser, kann die Bandbreite während des Abspielens geändert werden, ohne dass Aussetzer auftreten.
Eine Einzellizenz für diese Software schlägt leider mit mehreren tausend DM zu Buche. Einige Provider bieten Ihren Kunden zwar kostengünstig die Nutzung eines Realservers an, jedoch sollte man genau nachfragen, ob das RTS-Protokoll auch unterstützt wird. Zur Not geht es jedoch auch ohne, wie die folgenden Abschnitte zeigen sollen...
Die Rede ist hier übrigens nicht von "Livestreaming", wobei z.B. die Ausgabe einer Kamera direkt über das Internet "gesendet" wird. Dies würde zwingend einen Realserver erfordern sowie hohen technischen Aufwand.
Hat man keinen Realserver zur Verfügung, und reicht es einem aus, seine Inhalte nur für eine feste Bandbreite anzubieten, ist das Einbinden recht einfach:
Dabei spielt es keine Rolle, ob es sich um Audio oder Videodaten (oder beides) handelt.
Metadatei "beispiel.ram":
http://www.providerxy.com/beispiel.rm
Der Vollständigkeit halber: Benutzt man einen Realserver, der das RTSP unterstützt, könnte die Metadatei z.B. so aussehen:
rtsp://realserver.providerxy.com/beispiel.rm
Eine zweite Möglichkeit soll nicht verschwiegen werden:
Statt einen Link auf die Metadatei zu setzen, kann man auch das <embed> Tag benutzen,
um den Player direkt in der Webseite anzuzeigen. Dabei ist es möglich, das Aussehen
des Players seinen eigenen Bedürfnissen anzupassen, z.B. bei Videodaten nur
das Bildfenster ohne Buttons, lästige Werbung, etc. anzuzeigen. Dafür
muß die Metadatei die Endung ".rpm" bekommen.
Da ich dies jedoch noch nicht in allen Browsern zum Laufen gekriegt habe, werde ich hier (noch) nicht näher darauf eingehen. (IE 4.5 für MAC macht - mal wieder - Probleme.)
SMIL (Synchronized Multimedia Integration Language, sprich wie engl. "smile"), ein XML-Derivat, ist mittlerweile offizieller Standard des W3C. Die Sprache ist vor allem dafür ausgelegt, Abläufe von Multimediashows zu organisieren.
Das <switch> Tag birgt jedoch die Möglichkeit, auf einfache Weise Realmedia
für verschiedene Bandbreiten anzubieten, und zwar ohne den Einsatz eines Realservers.
Man benötigt für jede Bandbreite eine einzelne, nur für diese eine Bandbreite kodierte Realmediadatei. Wie viele verschiedene man anbieten will, kann jeder selbst entscheiden, je nachdem, was für Internetanbindungen das erwartete Publikum vorwiegend benutzt, oder wieviel Webspace zur Verfügung steht.
Eine SMIL-Datei hat die Dateiendung .smil oder .smi, beginnt mit <smil> und endet mit
</smil>. Vorgeschrieben ist außerdem das <body> Tag, innerhalb dessen die
eigentlichen Anweisungen notiert werden, und in diesem Fall das <par> Tag,
in das normalerweise Tracks eingeschlossen werden, die gleichzeitig (parallel) abgespielt werden.
Der Realplayer kommt jedoch auch ohne das <par> Tag zurecht.
Datei "beispiel.smil":
<smil>
<body>
<par>
<switch>
<audio src="http://www.providerxy.com/datei1.rm" system-bitrate="250000"/>
<audio src="http://www.providerxy.com/datei2.rm" system-bitrate="100000"/>
<audio src="http://www.providerxy.com/datei3.rm" system-bitrate="40000"/>
<audio src="http://www.providerxy.com/datei4.rm" system-bitrate="1000"/>
</switch>
</par>
</body>
</smil>
Zwischen <switch> und </switch> werden nun die verschiedenen Dateien angegeben, unter
denen der Realplayer auswählen soll, das Unterscheidungskriterium ist hier das Attribut
"system-bitrate". Handelt es sich um Videodaten, benutzt man statt des <audio>
einfach das <video> Tag.
Genauer: Der Realplayer vergleicht die innerhalb des <switch> Tags angegebenen Bandbreiten
mit der vom User in den Realplayer-Einstellungen angegebenen und versucht, die erstbeste
Datei zu streamen, deren angegebene Bandbreite kleiner ist, als die vom User eingestellte.
Das ist auch der Grund dafür, daß man die Dateien immer nach fallender Bandbreite
sortieren sollte.
Hat der User also "56k Modem" als Internetverbindung angegeben, wird der Realplayer versuchen, die Datei "http://www.providerxy.com/datei3.rm" zu streamen.
Damit der Realplayer auch weiß, daß er die Datei streamen soll, muß die
SMIL-Datei wiederum über eine Metadatei mit der Endung ".ram" aufgerufen werden, welche
den URL der SMIL-Datei enthält, etwa "http://www.providerxy.com/beispiel.smil"
Mit Hilfe von SMIL ist es auch kein Problem, verschiedene Tracks nacheinander abzuspielen. Dazu
schliesst man die <audio/>, bzw. <video/> Tags in das <seq></seq> Tag ein.
Eine Schachtelung von <switch> Tag und <seq> Tag ist auch denkbar.
SMIL-Dateien können auch dynamisch generiert werden. Ein CGI-Skript muss dafür den
Content-type Header "application/smil" zurückliefern. Damit eröffnen sich
vielfältige Möglichkeiten, von dynamischen Playlists, die sich der User selbst
zusammenstellen kann, bis hin zu Internetradioprogrammen.
Das dynamische Erzeugen der Metadateien funktioniert nach meiner Erfahrung nicht, da erst der Aufruf einer statischen Datei mit der Endung ".ram" zum Starten des externen Realplayers führt.
Der Realplayer ist in der Lage, MP3-Dateien wiederzugeben. Auf Encoderseite ist man also nicht auf Real-Produkte und -Formate angewiesen.
Im SELFHTML-Forumsarchiv findet man einige Messages von Leuten, die sich mit mehr oder weniger großem Erfolg an MP3-Streaming und Playlists versucht haben. Wenn man bereit ist, sich in Sachen Wiedergabe-Software auf den Realplayer zu beschränken, scheint mir die Einbindung von Realmedia- und/oder MP3-Dateien über Metadateien (*.ram) die beste Alternative zu sein. Wenn man nämlich über Metadateien verlinkt, kann man sicher sein, daß als externer Player - unabhängig von der Plattform - der Realplayer gestartet wird, der MP3s streamen und auch mit SMIL umgehen kann.
Zum Ausprobieren:
Über die folgenden Links können Sie verschiedene Audiodateien aufrufen,
einmal über einen Realserver, dann über eine Bandbreitenunterscheidung mit SMIL, und
schliesslich eine MP3-Datei, die über eine Metadatei (*.ram) eingebunden ist, so daß
sie mit dem Realplayer abgespielt wird.
Realaudio (RTSP)
Realaudio (HTTP / SMIL)
MP3 Stream (Einbindung über Metadatei)
Metadatei "aday_rtsp.ram":
rtsp://merlin.prohost.de/x-spect/aday.rm
Metadatei "aday_http.ram":
http://www.17seconds.de/beispiel/aday.smil
Datei "aday.smil":
<smil>
<body>
<par>
<switch>
<audio src="http://www.17seconds.de/beispiel/aday_64k.rm" system-bitrate="66000"/>
<audio src="http://www.17seconds.de/beispiel/aday_44k.rm" system-bitrate="46000"/>
<audio src="http://www.17seconds.de/beispiel/aday_32k.rm" system-bitrate="34000"/>
<audio src="http://www.17seconds.de/beispiel/aday_20k.rm" system-bitrate="1000"/>
</switch>
</par>
</body>
</smil>
Metadatei "aday_mp3.ram":
http://www.17seconds.de/beispiel/aday_32k.mp3
Offizielle SMIL-Spezifikation.
RealPlayer Downloadseite.
RealProducer Downloadseite.
RealSystem Production & Authoring Guides, für diejenigen, die mehr wissen wollen.
Happy streaming... ;-)