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.
-
<smil>
-
<head>
-
<meta base="rtmp://192.168.2.108/vod/" />
-
</head>
-
<body>
-
<switch>
-
<video src="mp4:sample1_150kbps.f4v" system-bitrate="150000"/>
-
<video src="mp4:sample1_700kbps.f4v" system-bitrate="700000"/>
-
<video src="mp4:sample1_1500kbps.f4v" system-bitrate="1500000"/>
-
</switch>
-
</body>
-
</smil>
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).
-
import fl.video.*;
-
VideoPlayer.iNCManagerClass = NCManagerDynamicStream;
-
myFLVPlayback.source = "dynstream.smil";
SMIL-Datei in Flex laden
Verwendet man Flex, sieht die Kombination von FLV Playback Komponente und externer SMIL-Datei z.B. so aus:
-
<?xml version="1.0" encoding="utf-8"?>
-
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="onCreationComplete()" layout="absolute">
-
<mx:Script>
-
<![CDATA[
-
import mx.core.UIComponent;
-
import fl.video.*;
-
-
private var vid:FLVPlayback;
-
-
private function onCreationComplete():void {
-
-
VideoPlayer.iNCManagerClass = NCManagerDynamicStream;
-
-
vid = new FLVPlayback();
-
var ui:UIComponent = new UIComponent();
-
this.addChild( ui );
-
ui.addChild( vid );
-
-
vid.width = 640;
-
vid.height = 480;
-
vid.skin = "SkinUnderPlaySeekMute.swf";
-
-
vid.source = "dynstream.smil";
-
}
-
]]>
-
</mx:Script>
-
-
-
</mx:Application>
6 Kommentare zum Beitrag "Dynamic Streaming: FLV Playback Kompontente mit SMIL-Datei"
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;
Schreibe einen Kommentar