Ergänzend zum Artikel Dynamic Streaming mit dem Flash Media Server möchte ich eine sehr einfache Möglichkeit zeigen, wie man ohne große ActionScript-Kenntnisse dynamisches Streaming mit der FLV Playback Komponente 2.5 und einer SMIL-Datei realisieren kann.
Verwendet wird eine XML-Datei nach dem SMIL-Standard (Synchronized Multimedia Integration Language), einer Auszeichnungssprache für zeitsynchronisierte, multimediale Inhalt.
SMIL-Datei erstellen
Die SMIL-Datei kann mit jedem Text-/Codeeditor erstellt werden und wird mit dem (frei wählbaren) Dateinamen dynstream.smil
im gleichen Verzeichnis wie die Flashanwendung abgespeichert.
[xml]
[/xml]
Sie enthält im head
den Pfad zum Flash Media Server (rtmp://192.168.2.108) und der FMS-Anwendung mit dem Video (vod).
Im body
stehen die Pfade zu den Bitraten-Varianten des Videos. Bei system-bitrate
wird die jeweilige Bitrate eingetragen (in Bit, nicht wie in ActionScript in KBit)
SMIL-Datei in Flash laden
In Flash wird wie gewohnt die FLV Playback Komponente eingebunden. Einziger wesentlicher Unterschied: Man gibt statt eines Videofiles als Quelle einfach die SMIL-Datei als Videodatei an! Außerdem muss man das dynamische Streaming noch aktivieren (Zeile 2).
[as]
import fl.video.*;
VideoPlayer.iNCManagerClass = NCManagerDynamicStream;
myFLVPlayback.source = „dynstream.smil“;
[/as]
SMIL-Datei in Flex laden
Verwendet man Flex, sieht die Kombination von FLV Playback Komponente und externer SMIL-Datei z.B. so aus:
[xml]
[/xml]
[ad]
Funktioniert das auch ohne Flash Media Server?
Nein, geht ausschließlich mit einem Streaming Server wie Flash Media Server oder auch dem VCS ( http://www.video-flash.de/index/vcs-adaptive-streaming/ )
Habe eine SMIL-Datei erhalten.
Wie kann ich die aufmachen bzw. lesen
Hallo Arno,
eine SMIL-Datei ist eine einfache XML-Datei, die du mit jedem Texteditor (z.B Notepad) öffnen kannst.
Hallo Flo!
Muss denn die SMIL-Datei zwingend im selben Ordner liegen, oder kann man die auch per Flashvar dynamisch von irgendwo her laden?
Du kannst den Namen/Pfad der SMIL-Datei natürlich auch dynamisch als Flashvar übergeben.
Quasi so:
myFLVPlayback.source = root.loaderInfo.parameters.meineFlashVar;