FLV2SWF
Beschreibung:
Was macht das Programm?
FLV2SWF ist ein Programm zum Umwandeln von Flash Video Dateien (.flv) in Flash Dateien (.swf). Es kann von der Kommandozeile oder als CGI-BIN-Programm aufgerufen werden.
Was sind die Vorteile?
| - | einfacher Aufruf per loadMovie aus einer Flash Datei (.swf) |
| - | rekursive Batchverarbeitung von Ordnern |
| - | Schnittstelle zu .NET, ASP und Java |
| - | ZLib-Kompression |
| - | Beste Audioqualität dank 1:1 Soundübernahme von RAW, Mp3 und Nellymoser |
| - | Skalierung (Prozentual oder Pixelgenau) |
| - | Breite, Höhe, Länge, Skalierung, Framerate, Framelänge und ein optionaler Text werden mitgespeichert |
| - | Rückgaben vom Programm sind Flash konform (&error=can't open file) |
| - | geringe Serverbelastung beim Konvertieren ins Flash Video Format (.flv) |
| - | deutlich weniger Traffic durch Cachen der Flash Dateien (.swf) beim Client |
| - | günstige Alternative zu den Capacity Packs des Macromedia Flash Communication Server MX |
| - | Konvertierung von Flash-Video Dateien (.flv) mit nur Audio (nicht möglich in der IDE) |
| - | Übernahme von NetStream.send Aufrufe |
| - | Callback für Starten (onStart) und Erreichen des Filmendes (onEnd) |
Was sind die Vorteile gegenüber dem Streaming vom Macromedia Flash Communication Server MX?
| - | Cachen der Streams beim Client möglich, dadurch verringert sich der Traffic |
| - | verbesserte Kontrolle über das Streamingverhalten |
| - | Weiterverwendung der Streams offline |
| - | geringe Serverbelastung, da die konvertierten Flash Dateien (.swf) nur vom Client geladen werden müssen, es muss kein neuer Streamingprozess auf dem Server gestartet werden |
Welche Betriebssysteme werden unterstützt?
Es läuft bisher unter jeder Windows-Version ab Windows 98 und Unix/Linux.
Was wird benötigt?
CGI Zugriff und der Macromedia Flash Communication Server MX.
Was sind Flash Video Dateien (.flv)?
Flash Video Dateien (.flv) werden vom Macromedia Flash Communication Server MX bei der Speicherung von Audio- und Video Daten (mittels Mikrofon und Webcam) erzeugt.
Wo ist der Einsatz sinnvoll?
Flash Video Dateien (.flv) konnten bisher nur mit dem Macromedia Flash Communication Server MX gestreamt werden. Jede Wiedergabe eines Streams belegt eine Verbindung. Mit Hilfe von FLV2SWF steigt die Ausgabe von Audio- und Video Streams ins Unendliche, ohne den weiteren Kauf von Capacity Packs für den Macromedia Flash Communication Server MX. Weitere Informationen zu den Preisen und Editionen des Macromedia Flash Communication Server MX erhalten Sie hier.
Beispiel für eine Einsatzmöglichkeit: Ein Server wurde mit der Personal Edition des Flash Communication Server MX (50 Verbindungen) zu einem Preis von $499 eingerichtet. Auf dem Server soll ein Video-Ecard-System für einen Kunden zum Einsatz kommen, bei denen die Besucher Audio- und Video Botschaften aufzeichnen und an beliebig viele Freunde versenden können. Wenn 25 Besucher zur selben Zeit eine Botschaft aufzeichnen, sind in diesem Moment auch 25 Verbindungen belegt.
Dann können in diesem Moment auch nur 25 Audio- und Video Botschaften von den Besuchern angeschaut werden. Die Grenze der Personal Edition ist schnell erreicht, da jeder Stream eine Verbindung belegt. Durch Konvertieren der Flash Video Datei (.flv) nach der Aufnahme in eine Flash Datei (.swf), können beliebig viele Botschaften von den Besuchern angeschaut werden!
Was wird damit möglich?
| - | Musikapplikationen, bei denen Gesangsschnipsel per Mikrofon aufgezeichnet und zu einem Song komponiert werden können (MusicMaker) |
| - | Multimedia-Ecard, durch das Aufzeichnen von Mikrofon- und Webcam Daten kann ein Video mit verschiedenen Überblend-Effekten erstellt und verschickt werden |
| - | Kommunikationsportale, mit Hilfe von Mikrofon und Webcam können Kontaktanzeigen/Steckbriefe geschaltet und angezeigt werden (Datecam) |
| - | Personalisierte Spielfiguren, das Gesicht des Besuchers wird mit einem Einzelbild erfasst und danach auf die Spielfigur übertragen (Office Chaos) |
| - | Audio/Video Blogger, Radio-Sender... |
Was sind die Einschränkungen der Testversion?
Bei jeder Konvertierung wird eine Demo-Grafik über das Video in der Flash-Datei (.swf) gelegt. Außerdem wird nur die erste Minute umgewandelt.
Downloads:
| - | CGI-Version für Windows (flv2swf_win32.zip - 2.34 - 15.10.2003) |
| - | Kommandozeilen-Version für Windows (flv2swf_win32_nocgi.zip - 2.34 - 15.10.2003) |
| - | CGI-Version für Unix/Linux (flv2swf_unix.zip - 2.34 - 15.10.2003) |
| - | Kommandozeilen-Version für Unix/Linux (flv2swf_unix_nocgi.zip - 2.34 - 15.10.2003) |
| - | Flash-Beispiel für Macromedia Flash Communication Server MX (flv2swf_recording.zip) |
Bestellung:
Der Bestellungsprozess wird über unseren Partner ShareIt.com abgewickelt. Sollten Sie Fragen zum Bestellprozess haben, so können Sie hier mehr Informationen erhalten.
Single Domain Lizenz (für die Nutzung auf einer Domain, keine Providerlizenz *)
Preis (zzgl. Mehrwertsteuer): 199,99 Euro - Jetzt bestellen
Multi Domain Lizenz (für die unbeschränkte Nutzung inkl. Providerlizenz)
Bitte wenden Sie sich bei Interesse an: Carlo Blatz
* Diese Lizenz gestattet es nicht FLV2SWF als Service anzubieten oder weiterzuvermieten.
Dokumentation:
Allgemeines
FLV2SWF sollte in das CGI-BIN Verzeichnis des Webservers abgelegt werden. Optional kann es auch per Konsole bedient werden. Absoluter Aufruf per Browser:
http://localhost/cgi-bin/flv2swf.exe?i=input.flv
Aufruf per Konsole:
flv2swf.exe -i input.flv -o output.swf
Ausgabe (1:1) der Flash Video Datei (.flv) on the Fly
Der Parameter i gibt die umzuwandelnde Video-Eingabedatei (.flv) an. Die Ausgabe wird an den Browser zurückgeschickt, es wird keine Flash-Datei (.swf) geschrieben:
flv2swf.exe?i=input.flv
Relative und absolute Pfade können ebenfalls genutzt werden:
flv2swf.exe?i=../input.flvflv2swf.exe?i=C:/Programme/input.flv
Videoausgabe in Flash:
Ist die Eingabedatei (.flv) nicht vorhanden, wird eine Meldung mit &error=can't open file zurückgegeben:
mc.loadMovie ("flv2swf.exe?i=input.flv");
Konvertierung (1:1) der Flash Video Datei (.flv)
Der optionale Parameter o bestimmt die zu schreibende Flash-Ausgabedatei (.swf). Zusätzlich zur Genierung der Datei wird die Ausgabe an den Browser zurückgeschickt:
flv2swf.exe?i=input.flv&o=output.swf
Konvertieren ohne Ausgabe in Flash
Um die Videoausgabe in Flash nach dem Konvertieren zu vermeiden, muss der Parameter return an den Aufruf gehängt werden:
mc.loadMovie ("http://localhost/cgi-bin/flv2swf.exe?i=input.flv&o=output.swf&return=0");
Konvertierung (Batch) von Ordnern
Alle Dateien, die im Verzeichnis stehen, das per i angegeben wurde und mit der Dateiendung .flv enden, werden in die entsprechende Flash Datei (.swf) umgewandelt und in das Verzeichnis geschrieben, daß durch den o Parameter angegeben wurde:
flv2swf.exe?i=inputDir/&o=outputDir/
Wichtig ist die Angabe von "\" oder "/" nach dem Ordnernamen denn nur dann werden diese als Pfade erkannt. Ist der Ordner nicht vorhanden, wird dieser erstellt. Nach erfolgreicher Konvertierung gibt es eine Ausgabe &total=29 mit der Gesamtanzahl der konvertierten Dateien.
Konvertierung der Flash Video Dateien (.flv) im gleichen Ordner:
flv2swf.exe?i=./&o=./
Rekursive Konvertierung (Batch) von Ordnern
Alle Dateien in den Unterordnern, die im Verzeichnis stehen, das per i angegeben wurde und mit der Dateiendung .flv enden, werden in die entsprechende Flash Datei (.swf) umgewandelt und in das Verzeichnis geschrieben, daß durch den o Parameter angegeben wurde, wenn der Parameter r mitgesendet wird:
flv2swf.exe?i=inputDir/&o=outputDir/&r=1
Prozentuale Skalierung des Video
Der optionale Parameter s gibt den Skalierungsfaktor in Prozent an, z.B. 50 für die Halbierung der Breite und Höhe des Films:
flv2swf.exe?i=input.flv&s=50
Pixelgenaue Skalierung des Video
Die Breite und Höhe der Videoausgabe können mit den optionalen Parametern w und h eingestellt werden:
flv2swf.exe?i=input.flv&w=100&h=200
Speicherung von Textinformationen
Mit dem optionalen Parameter t wird ein beliebiger Text in der Variable t der Flash-Datei (.swf) gespeichert:
flv2swf.exe?i=input.flv&o=output.swf&t=text
Einschränkung der Schreibrechte
Mit Hilfe der Datei flv2swf_paths.txt im CGI-BIN Verzeichnis können die Schreibrechte auf dem Server eingeschränkt werden. Sollte diese Datei nicht vorhanden sein, besitzt das Programm Schreibrechte für Flash Dateien (.swf) auf dem ganzen Server. Dies stellt eventuell ein Sicherheitsrisiko dar.
Existiert diese Datei und ist jedoch komplett leer, dann werden dem Programm keinerlei Schreibrechte auf dem Server eingeräumt. Die Ausgabe von Flash Video Dateien (.flv) funktioniert dennoch on the Fly, um Verbindungen beim Macromedia Flash Communication Server MX einzusparen.
Ist die Datei vorhanden, dann darf die Ausgabedatei (.swf) inklusiv Pfad, nur mit Zeichenketten beginnen, die in der Datei stehen. Dabei können mehrere Pfade vorgegeben werden, jeweils eine pro Zeile. Aus Sicherheitsgründen ist es empfehlenswert, absolute Pfade zu verwenden. Beispielaufbau der flv2swf_paths.txt:
E:\Webserver\swfaudiosE:\Webserver\swfvideos
Aus Sicherheitsgründen ist es nicht möglich andere Flash Dateien (.swf) zu überschreiben. Wird dies trotzdem versucht, erhalten Sie die Fehlermeldung &error=file exist zurück.
Gespeicherte Video Daten
Die folgenden Variablen werden bei der Generierung der Flash Datei (.swf) mitgespeichert:
wid | Breite des Films |
hei | Höhe des Films |
len | Anzahl der Frames |
fps | Framerate (bei -1 ist kein Video eingebunden) |
sec | Länge in Millisekunden |
snd | Soundformat (bei 0 ist kein Sound eingebunden) |
s | Skalierungsfaktor |
t | Textinformation |
Fehlermeldungen
Die folgenden Fehlermeldungen (&error) können beim Konvertieren zurückgegeben werden:
no input file specified | Keine Flash Video Datei (.flv) angegeben. | |
no output file specified | Es wurde keine Flash Datei (.swf) angegeben. | |
output name must end with .swf | Falsche Dateiendung für die Ausgabedatei. | |
output name to short | Die Länge des Ausgabe-Dateinamens muß mindestens 4 Zeichen betragen. | |
can't open file | Eine Eingabedatei konnte nicht geöffnet werden, z.B. weil kein Lesezugriff besteht. | |
invalid file size | Beim Öffnen einer Datei wurde eine ungültige Dateilänge erkannt. | |
file exists | Die Ausgabedatei existiert bereits und würde überschrieben werden, wenn die Flash Datei (.swf) unter dem angegebenen Ausgabe-Dateinamen gespeichert werden würde. | |
path not found in flv2swf_paths.txt | Es gibt eine flv2swf_paths.txt Datei, aber der Pfad der Ausgabedatei ist nicht in dieser Datei vermerkt. |
Funktionsaufrufe von NetStream.send
Die aufgezeichneten Funktionsaufrufe eines Streams werden mit in die Flash-Datei (.swf) konvertiert und beim Abspielen exakt zeitlich wieder aufgerufen. Die Methode wird im Gültigkeitsbereich (this) der Flash-Datei (.swf) aufgerufen.
Bei der Parameterübergabe ist nur ein String-Parameter erlaubt. Sollen mehrere Parameter mitübergeben werden, muss dies im Format "a;b;c" geschehen, die Parameter können später per String.split (",") getrennt ausgelesen werden.
Callbacks
Zu Beginn des Films (.swf) wird die Funktion this.onStart(); und am Ende die Funktion this.onEnd(); aufgerufen. Die Funktion onEnd ist bereits vordefiniert:
this.onEnd = function () {
this.gotoAndPlay (2);
}
Die Funktionen onStart und onEnd können nach dem Laden des ersten Frames von einem umgebenden Film überschrieben werden, z.B. um das Video zu stoppen.
Streaming-Sound unterbinden
Um das Streamingverhalten des Sounds innerhalb eines Flash Datei (.swf) zu vermeiden, muss beim Konvertieren der Parameter nosound mitgegeben werden. Dies ist z.B. bei einer Snapshot-Anwendung sinnvoll:
flv2swf.exe?i=input.flv&nosound=1
FAQ:
Das Programm läuft unter Windows XP und der letzten stabilen Apache Version 2.0.43 nicht einwandfrei?
Das Problem ist bei der Apache Group bereits bekannt (Hinweise), der Fehler kann mit Installation des Service Packs 1 für Windows XP behoben werden.
Wieso funktioniert die Audio-Konvertierung nicht mit dem Soundformat 8 kHz?
Das 8 kHz Soundformat wird mit einem speziellen Codec von Nellymoser komprimiert, den Macromedia in den Flash Player integriert haben. Es war uns bisher nicht möglich, weitere Informationen zum SDK zu erhalten.
Welche Rechte müssen gesetzt werden?
Mit jedem gängigen FTP-Programm können die Rechte für das Tool gesetzt werden, meistens sind diese unter dem Menüpunkt CHMOD zu finden. Setzen Sie die Rechte auf 755.
Beim Aufrufen von flv2swf.exe im Browser wird immer ein Internal Server Error (500) angezeigt. Woran liegt das?
Wenn CGI aktiviert ist, sind wahrscheinlich die Rechte nicht korrekt vergeben oder der Pfad zum CGI-Verzeichnis stimmt nicht. Das Tool muss immer mit dem Parameter i (für die Eingabedatei) aufgerufen werden.
Wo muss die Lizenzdatei abgelegt werden?
Damit die Demoversion freigeschaltet werden kann, muss die Lizenzdatei ebenfalls in das CGI-BIN Verzeichnis gelegt werden. Nach dem nächsten Starten des Programms sollte kein Logo mehr bei der der Ausgabe der Flash Dateien (.swf) erscheinen.
Beim Laden eines Videos per loadMovie werden mehr Variablen im Film angezeigt als in der Dokumentation angegeben?
Das hängt mit der Übergabe der URL-Variablen zusammen.
Wie kann ich die Lautstärke der Flash Datei (.swf) beim Abspielen verändern?
Die Lautstärke kann über das Sound-Objekt gesteuert werden, dazu muss die Filmsequenz (diese beinhaltet die Flash Datei) mit übergeben werden:
sndCtrl = new Sound (mc);
sndCtrl.setVolume (50);
Probleme mit Pfaden?
Der Backslash muss bei Pfaden immer doppelt gekennzeichnet werden:
mc.loadMovie ("E:\\Webserver\\swfvideos\\output.swf");
Wie sieht die Schnittstelle zu .NET, ASP und Java aus?
Verwenden von FLV2SWF in .NET (C#) oder ASP:
System.Diagnostics.Process.Start ("flv2swf.exe -i input.flv -o output.swf");
Aufruf innerhalb von Java:
Runtime.getRuntime().exec ("flv2swf.exe -i input.flv -o output.swf").waitFor();
Wie kann ich das Video laden und am Ende stoppen?
Beispielcode:
this.createEmptyMovieClip ("holder", 1);
this.holder.loadMovie ("video.swf");
this.onEnterFrame = function () {
if (this.holder._framesloaded > 1) {
this.holder.onEnd = function () {
this.stop();
};
delete this.onEnterFrame;
}
};
Impressum:
| Powerflasher GmbH |
| Belvedereallee 5 |
| D - 52070 Aachen |
| Fon: | +49 (0) 241 91880 - 230 |
| Fax: | +49 (0) 241 91880 - 230 |
| http://www.powerflasher.com |