Qu’est-ce qu’un fichier SWF ?
Un fichier SWF est le format de diffusion d’Adobe Flash : un fichier binaire qui combine des graphiques vectoriels, du texte, de la vidéo, du son et du bytecode ActionScript pour une lecture dans Flash Player. Adobe a mis fin à la prise en charge de Flash Player le 31 décembre 2020, si bien que ce contenu nécessite désormais un émulateur ou un autre logiciel spécialisé.
Fonctionnement des fichiers SWF
SWF est un format binaire à balises conçu pour une diffusion efficace vers Flash Player, et non pour échanger des graphiques entre logiciels d’édition. Ses balises contiennent des graphiques, des images matricielles, du son et de la vidéo, ainsi que du bytecode qu’une machine virtuelle interprète comme de l’ActionScript. La lecture simple repose uniquement sur une chronologie ; le contenu interactif exécute aussi du code ActionScript, qui peut faire référence à des ressources extérieures au fichier. Jusqu’à SWF 8 inclus, les fichiers utilisent ActionScript 1.0 ou ActionScript 2.0, tandis que SWF 9 et les versions ultérieures peuvent utiliser ActionScript 3.0 sur une seconde machine virtuelle (AVM2). Deux fichiers portant la même extension peuvent donc nécessiter des environnements d’exécution différents. Adobe a cessé de prendre en charge Flash Player le 31 décembre 2020 et y a bloqué l’exécution du contenu Flash à partir du 12 janvier 2021 ; Chrome 88 et Firefox 85 ont supprimé la prise en charge de Flash au cours de ce même mois de janvier. L’accès repose désormais sur l’émulation, des outils d’extraction propres au format ou la conversion.
Points clés
- Les trois premiers octets identifient le conditionnement :
FWSindique l’absence de compression,CWSsignifie que tout ce qui suit les 8 premiers octets est compressé avec zlib (SWF 6 et versions ultérieures), etZWSindique une compression LZMA (SWF 13 et versions ultérieures). Le quatrième octet indique la version de SWF. Un outil qui ne reconnaît que les deux premiers cas rejette les fichiersZWS; le démultiplexeur SWF de FFmpeg ne recherche queFWSetCWS. - Dans SWF 9 et les versions ultérieures, l’indicateur ActionScript3 de la balise FileAttributes (balise 69) indique si le fichier utilise ActionScript 3.0 ou
ActionScript 1.0/2.0, qui s’exécutent sur des machines virtuelles différentes. Les fichiers plus anciens utilisentActionScript 1.0/2.0, et les fichiers antérieurs à SWF 8 peuvent ne pas contenir cette balise du tout. Ruffle, un émulateur open source de Flash Player, suit séparément leur prise en charge et se décrit comme inachevé. Testez donc les fichiers précis qui vous importent plutôt que de supposer qu’une archive se comporte de manière uniforme. - Un démultiplexeur multimédia n’est pas un lecteur Flash. Le démultiplexeur SWF de FFmpeg expose les flux vidéo, les sons, les images matricielles sans perte et les images
DefineBitsJPEG2intégrés, et ignore toutes les autres balises. Les illustrations vectorielles, l’animation de la chronologie, les comportements ActionScript et les images matricielles des autres balises JPEG sont donc absents de sa sortie ; celle-ci ne constitue pas un inventaire des médias du fichier. Transformer ce contenu en vidéo ou en images fixes nécessite d’en effectuer le rendu dans un lecteur ou un émulateur et de capturer le résultat ; Ruffle fournit un outil d’exportation qui effectue le rendu des images au format PNG. - Le module d’origine n’est pas une solution de repli. Adobe ne publie aucun correctif de sécurité pour Flash Player après sa date de fin de vie, a bloqué l’exécution du contenu Flash dans Flash Player à partir du 12 janvier 2021, a supprimé ses pages de téléchargement et avertit que les copies non autorisées sont une source fréquente de logiciels malveillants.
Quand les fichiers SWF sont utiles
Considérez principalement les fichiers SWF comme des sources à migrer ou à préserver, car les navigateurs modernes ne permettent plus la lecture normale du contenu Flash. La conversion d’une animation peut préserver son aspect visuel, mais perdre les scripts, l’interactivité ou le comportement temporel.
Comment Transloadit vous aide avec les fichiers SWF
Le tableau des formats audio/vidéo de Transloadit indique que swf est disponible en lecture et en écriture sur les piles FFmpeg utilisées par des Robots tels que /video/encode. Une ligne distincte pour avm2, « SWF (ShockWave Flash) (AVM2) », indique une disponibilité en écriture uniquement.
Le démultiplexeur SWF de FFmpeg lit les données audio, vidéo et certaines données d’images matricielles intégrées à un fichier et ignore les autres balises. L’animation vectorielle et les comportements pilotés par ActionScript ne sont donc pas convertis.
Explorer les possibilités de Transloadit en matière de formats de fichiers et de compression
Références
- Adobe : spécification du format de fichier SWF, version 19 (miroir ; le lien d’origine d’Adobe n’aboutit plus)
- Page d’informations générales sur la fin de vie d’Adobe Flash Player
- Bibliothèque du Congrès : famille de formats de fichiers Flash SWF
- Chromium : feuille de route de Flash (prise en charge supprimée dans Chrome 88)
- Notes de version de Firefox 85.0 (prise en charge de Flash supprimée)
- Ruffle : compatibilité ActionScript
- README de Ruffle (état du projet et outil d’exportation PNG)
- FFmpeg n8.0 : libavformat/swfdec.c (démultiplexeur SWF)