Was ist eine SWF-Datei?
Eine SWF-Datei ist das Auslieferungsformat von Adobe Flash: eine Binärdatei, die Vektorgrafiken, Text, Video, Ton und ActionScript-Bytecode zur Wiedergabe im Flash Player kombiniert. Adobe beendete die Unterstützung für Flash Player am 31. Dezember 2020, sodass die Inhalte heute einen Emulator oder andere spezialisierte Software benötigen.
So funktionieren SWF-Dateien
SWF ist ein tagbasiertes Binärformat, das für die effiziente Auslieferung an Flash Player entwickelt wurde, nicht für den Austausch von Grafiken zwischen Editoren. Seine Tags enthalten Grafiken, Bitmaps, Ton und Video sowie Bytecode, den eine virtuelle Maschine als ActionScript interpretiert. Einfache Wiedergabe wird allein durch eine Zeitleiste gesteuert; interaktive Inhalte führen zusätzlich ActionScript aus, das auf Ressourcen außerhalb der Datei verweisen kann. Dateien bis SWF 8 verwenden ActionScript 1.0 oder ActionScript 2.0, während SWF 9 und höher ActionScript 3.0 auf einer zweiten virtuellen Maschine (AVM2) verwenden können. Daher können zwei Dateien mit derselben Erweiterung unterschiedliche Laufzeitunterstützung benötigen. Adobe stellte die Unterstützung für Flash Player am 31. Dezember 2020 ein und blockierte darin ab dem 12. Januar 2021 die Ausführung von Flash-Inhalten; Chrome 88 und Firefox 85 entfernten die Flash-Unterstützung im selben Januar. Der Zugriff erfordert heute Emulation, formatspezifische Extraktionswerkzeuge oder Konvertierung.
Wichtige Fakten
- Die ersten drei Bytes kennzeichnen die Verpackung:
FWSsteht für unkomprimierte Daten,CWSbedeutet, dass alles nach den ersten 8 Bytes mit zlib komprimiert ist (ab SWF 6), undZWSbedeutet LZMA-Kompression (ab SWF 13). Das vierte Byte gibt die SWF-Version an. Ein Werkzeug, das nur die ersten beiden Varianten erkennt, lehnt Dateien mitZWSab; der SWF-Demuxer von FFmpeg prüft nur aufFWSundCWS. - Ab SWF 9 hält das Flag ActionScript3 im Tag FileAttributes (Tag 69) fest, ob die Datei ActionScript 3.0 oder
ActionScript 1.0/2.0verwendet; beide laufen auf unterschiedlichen virtuellen Maschinen. Ältere Dateien verwendenActionScript 1.0/2.0, und Dateien vor SWF 8 können dieses Tag vollständig weglassen. Ruffle, ein Open-Source-Emulator für Flash Player, dokumentiert die Unterstützung für beide separat und bezeichnet sich selbst als noch nicht fertig. Testen Sie daher die konkreten Dateien, auf die es ankommt, statt ein einheitliches Verhalten des gesamten Archivs anzunehmen. - Ein Medien-Demuxer ist kein Flash-Player. Der SWF-Demuxer von FFmpeg gibt eingebettete Videostreams, Töne, verlustfreie Bitmaps und Bilder im Format
DefineBitsJPEG2aus und überspringt alle anderen Tags. Daher fehlen Vektorgrafiken, Zeitleistenanimationen, ActionScript-Verhalten und Bitmaps aus den anderen JPEG-Tags in seiner Ausgabe; diese ist kein vollständiges Verzeichnis der Medien in der Datei. Um solche Inhalte in Video oder Standbilder umzuwandeln, müssen sie in einem Player oder Emulator gerendert und das Ergebnis aufgezeichnet werden. Ruffle liefert einen Exporter mit, der Einzelbilder als PNG rendert. - Das ursprüngliche Plugin ist keine Ausweichlösung. Adobe veröffentlicht seit dem Ende des Produktlebenszyklus keine Sicherheitsupdates für Flash Player mehr, blockiert darin seit dem 12. Januar 2021 die Ausführung von Flash-Inhalten, hat seine Downloadseiten entfernt und warnt, dass nicht autorisierte Kopien eine häufige Quelle für Schadsoftware sind.
Wann SWF-Dateien relevant sind
Behandeln Sie SWF vor allem als Eingabeformat für Migration oder Langzeitarchivierung, da moderne Browser keine reguläre Flash-Wiedergabe mehr bieten. Beim Konvertieren von Animationen kann die visuelle Darstellung erhalten bleiben, während Skripte, Interaktion oder zeitliches Verhalten verloren gehen.
So hilft Transloadit bei SWF-Dateien
Transloadits Tabelle der Audio- und Videoformate führt swf als lesbar und schreibbar auf den FFmpeg-Stacks auf, die Robots wie /video/encode zugrunde liegen. Eine separate Zeile für avm2 mit der Bezeichnung „SWF (ShockWave Flash) (AVM2)“ erlaubt nur das Schreiben.
Der SWF-Demuxer von FFmpeg liest Audio-, Video- und einige Bitmap-Daten, die in einer Datei eingebettet sind, und überspringt andere Tags. Daher werden Vektoranimationen und durch ActionScript gesteuertes Verhalten nicht konvertiert.
Entdecken Sie Transloadits Möglichkeiten für Dateiformate & Komprimierung
Quellen
- Adobe: Spezifikation des SWF-Dateiformats, Version 19 (Spiegelkopie; der ursprüngliche Link von Adobe ist nicht mehr erreichbar)
- Adobe Flash Player: allgemeine Informationen zum Ende des Produktlebenszyklus
- Library of Congress: Flash-SWF-Dateiformatfamilie
- Chromium: Flash-Roadmap (Unterstützung in Chrome 88 entfernt)
- Versionshinweise zu Firefox 85.0 (Flash-Unterstützung entfernt)
- Ruffle: ActionScript-Kompatibilität
- README von Ruffle (Projektstatus und PNG-Exporter)
- FFmpeg n8.0: libavformat/swfdec.c (SWF-Demuxer)