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

  1. Die ersten drei Bytes kennzeichnen die Verpackung: FWS steht für unkomprimierte Daten, CWS bedeutet, dass alles nach den ersten 8 Bytes mit zlib komprimiert ist (ab SWF 6), und ZWS bedeutet LZMA-Kompression (ab SWF 13). Das vierte Byte gibt die SWF-Version an. Ein Werkzeug, das nur die ersten beiden Varianten erkennt, lehnt Dateien mit ZWS ab; der SWF-Demuxer von FFmpeg prüft nur auf FWS und CWS.
  2. 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.0 verwendet; beide laufen auf unterschiedlichen virtuellen Maschinen. Ältere Dateien verwenden ActionScript 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.
  3. Ein Medien-Demuxer ist kein Flash-Player. Der SWF-Demuxer von FFmpeg gibt eingebettete Videostreams, Töne, verlustfreie Bitmaps und Bilder im Format DefineBitsJPEG2 aus 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.
  4. 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

Machen Sie aus Medienwissen eine funktionierende Pipeline

Verbinden Sie Uploads, Verarbeitung, KI, Storage und Auslieferung über eine deklarative API – um Encoding-Stack, Skalierung und ständig wechselnde Formate müssen Sie sich nicht selbst kümmern.

Transloadit kostenlos ausprobieren