Qu'est-ce que le format de fichier SWF ?
Les fichiers avec l'extension .swf contiennent des animations - qui peuvent être interactives - stockées dans un format multimédia binaire créé à l'origine par FutureWave Software en 1996. Le nom signifie Small Web Format, reflétant son objectif initial de fournir des animations compactes et économes en bande passante sur Internet.
Le format a été acquis par Macromedia puis par Adobe, et est utilisé pour créer et stocker :
- du contenu multimédia incluant l'audio et la vidéo,
- des graphiques vectoriels et des bitmaps,
- du bytecode ActionScript et des applets interactives.
Les applications historiquement utilisées pour créer des fichiers .swf incluent Adobe Flash et Adobe Animate, qui lui a succédé ; des outils open-source tels que SWFTools étaient également disponibles. En 2008, Adobe a partiellement ouvert les spécifications du format, permettant aux moteurs de recherche comme Google et Yahoo d'indexer le contenu des animations. Le format a évolué sur de nombreuses années : les premières versions permettaient d'animer uniquement des graphiques vectoriels, et les versions ultérieures ont étendu ses possibilités au streaming audio et vidéo ainsi qu'à l'animation 3D de base.
Adobe Flash Player - le plugin de navigateur requis pour lire les fichiers .swf - a atteint sa fin de vie le 31 décembre 2020. Les fichiers peuvent toujours être lus en dehors d'un navigateur à l'aide de l'émulateur autonome Ruffle ou via le lecteur de préservation Flash de l'Internet Archive. Les projets sources étaient généralement enregistrés sous forme de fichiers .FLA et compilés en .swf pour la distribution ; les formats associés incluent .FLV pour les flux vidéo Flash et .SWC pour les bibliothèques de composants Flash réutilisables.
Sécurité et sûreté
RISQUE : MEDIUMLe SWF était un vecteur notoire de logiciels malveillants - Flash Player a eu un long historique de vulnérabilités CVE critiques d'exécution de code à distance, ce qui est l'une des raisons majeures de sa suppression. L'ancien plug-in a disparu, donc les exploits SWF par téléchargement furtif dans les navigateurs ne sont plus une menace active. Risques résiduels : (1) un SWF contient de l'ActionScript qui peut effectuer des appels réseau ou ouvrir des URL, donc n'exécutez les fichiers non fiables que dans le bac à sable de Ruffle (préférable) plutôt que dans le projecteur de débogage hors ligne ; (2) des fichiers « projecteurs » .exe malveillants se faisant passer pour une animation inoffensive ; (3) ne réinstallez jamais le Flash Player abandonné à partir de sites de « codecs » tiers - ces installateurs sont eux-mêmes des leurres courants pour logiciels malveillants.
Détails du format
en brefProgrammes qui ouvrent les fichiers SWF
Détails techniques
spécifications approfondies| Octets magiques | FWS (46 57 53) = non compressé ; CWS (43 57 53) = compressé avec zlib ; ZWS (5A 57 53) = compressé avec LZMA - tous à l'offset 0 |
| Champs de version et de longueur | L'octet 3 code le numéro de version SWF (1-46) ; les octets 4-7 stockent la longueur totale du fichier non compressé en tant qu'entier uint32 little-endian |
| Type MIME | application/x-shockwave-flash |
| Compression | Aucune (SWF 1-5) ; zlib appliqué après l'en-tête de 8 octets (SWF 6+, signature CWS) ; LZMA appliqué après l'en-tête de 8 octets (SWF 13+, signature ZWS) - les 8 premiers octets ne sont jamais compressés |
| Unité de coordonnées | Twip (1/20 de pixel) ; toutes les valeurs spatiales sont stockées sous forme d'entiers twip utilisant des champs de bits SWF à longueur variable |
| Structure basée sur des balises | Contenu encodé sous forme d'enregistrements balisés : en-tête court de 2 octets (type d'enregistrement 10 bits + longueur 6 bits) ou en-tête long de 6 octets pour les charges utiles ≥ 63 octets |
| Graphiques vectoriels | Formes définies via des enregistrements SHAPE avec des bords de courbe de Bézier quadratiques ; les types de remplissage incluent la couleur unie, le dégradé linéaire/radial et le bitmap |
| Moteur de script | ActionScript 1 & 2 s'exécutent sur AVM1 (VM interprétée basée sur la pile) ; ActionScript 3 (SWF 9+) s'exécute sur AVM2 (basée sur les registres, avec JIT dans certains environnements d'exécution) |
| Codecs vidéo | Sorenson Spark (SWF 6+), Screen Video (SWF 7+), On2 VP6 et VP6 avec canal alpha (SWF 8+) |
| Codecs audio | PCM non compressé, ADPCM, MP3, Nellymoser (SWF 6+), Speex (SWF 10+) |
| Incorporation de polices | Contours TrueType convertis en enregistrements de forme SWF ; les balises DefineFont2 et DefineFont3 incluent des tables de caractères Unicode complètes |
| Transformations 3D | La balise PlaceObject3 (SWF 11+) ajoute une matrice de perspective 4×4 permettant la rotation 3D et la projection d'objets de la liste d'affichage |
| Incorporation de données binaires | La balise DefineBinaryData (SWF 9+) permet de stocker des charges utiles binaires brutes arbitraires à l'intérieur du conteneur .swf |
| Modèle de chronologie | Liste d'affichage basée sur des images (frames) ; chaque image est un différentiel des balises PlaceObject et RemoveObject appliquées au graphe de scène - pas un instantané complet d'image clé |
| Publié | 1996 (FutureSplash Animator); Adobe published the SWF File Format Specification, now withdrawn after Flash EOL |
| Standard ouvert | Oui · libre de droits |
| Spécification | web.archive.org |
Conversions SWF
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers SWF.