¿Qué es el formato de archivo SWF?
Los archivos con la extensión .swf contienen animaciones -que pueden ser interactivas- almacenadas en un formato multimedia binario creado originalmente por FutureWave Software en 1996. El nombre significa Small Web Format, lo que refleja su objetivo original de ofrecer animaciones compactas y eficientes en términos de ancho de banda a través de Internet.
El formato fue adquirido por Macromedia y posteriormente por Adobe, y se utiliza para crear y almacenar:
- contenido multimedia que incluye audio y video,
- gráficos vectoriales y mapas de bits,
- código de bytes (bytecode) de ActionScript y applets interactivos.
Las aplicaciones utilizadas históricamente para crear archivos .swf incluyen Adobe Flash y Adobe Animate, que lo sucedió; también estaban disponibles herramientas de código abierto como SWFTools. En 2008, Adobe abrió parcialmente la especificación del formato, permitiendo que motores de búsqueda como Google y Yahoo indexaran el contenido dentro de las animaciones. El formato se desarrolló durante muchos años: las primeras versiones permitían animar solo gráficos vectoriales, y los lanzamientos posteriores ampliaron sus posibilidades al streaming de audio y video y a la animación 3D básica.
Adobe Flash Player -el complemento de navegador necesario para reproducir archivos .swf- llegó al final de su vida útil el 31 de diciembre de 2020. Los archivos aún se pueden reproducir fuera de un navegador utilizando el emulador independiente Ruffle o a través del reproductor de preservación de Flash de Internet Archive. Los proyectos de origen se guardaban normalmente como archivos .FLA y se compilaban a .swf para su distribución; los formatos relacionados incluyen .FLV para transmisiones de video Flash y .SWC para bibliotecas de componentes Flash reutilizables.
Seguridad y protección
RIESGO: MEDIUMSWF fue un vector de malware notorio: Flash Player tuvo un largo historial de vulnerabilidades críticas de ejecución remota de código (CVE), que es una de las razones principales por las que fue eliminado. El complemento heredado ha desaparecido, por lo que los exploits de SWF en navegadores ya no son una amenaza activa. Riesgos residuales: (1) un SWF contiene ActionScript que puede realizar llamadas de red o abrir URLs, por lo que solo debe ejecutar archivos no confiables en el entorno aislado de Ruffle (preferido) en lugar del proyector de depuración fuera de línea; (2) archivos «proyectores» .exe maliciosos que fingen ser una animación inofensiva; (3) nunca reinstale el Flash Player descatalogado desde sitios de «códecs» de terceros: esos instaladores son en sí mismos un señuelo común de malware.
Detalles del formato
en pocas palabrasProgramas que abren archivos SWF
Detalles técnicos
especificación profunda| Magic bytes | FWS (46 57 53) = sin comprimir; CWS (43 57 53) = comprimido con zlib; ZWS (5A 57 53) = comprimido con LZMA - todos en el desplazamiento de byte 0 |
| Campos de versión y longitud | El byte 3 codifica el número de versión de SWF (1-46); los bytes 4-7 almacenan la longitud total del archivo sin comprimir como un uint32 little-endian |
| Tipo MIME | application/x-shockwave-flash |
| Compresión | Ninguna (SWF 1-5); zlib aplicada después del encabezado de 8 bytes (SWF 6+, firma CWS); LZMA aplicada después del encabezado de 8 bytes (SWF 13+, firma ZWS) - los primeros 8 bytes nunca se comprimen |
| Unidad de coordenadas | Twip (1/20 de un píxel); todos los valores espaciales se almacenan como enteros twip utilizando campos de bits SWF de longitud variable |
| Estructura basada en etiquetas | Contenido codificado como registros etiquetados: encabezado corto de 2 bytes (tipo de registro de 10 bits + longitud de 6 bits) o encabezado largo de 6 bytes para cargas útiles ≥ 63 bytes |
| Gráficos vectoriales | Formas definidas mediante registros SHAPE con bordes de curva de Bézier cuadrática; los tipos de relleno incluyen color sólido, degradado lineal/radial y mapa de bits |
| Motor de scripting | ActionScript 1 y 2 se ejecutan en AVM1 (VM interpretada basada en pila); ActionScript 3 (SWF 9+) se ejecuta en AVM2 (basada en registros, con JIT en algunos entornos de ejecución) |
| Códecs de video | Sorenson Spark (SWF 6+), Screen Video (SWF 7+), On2 VP6 y VP6 con canal alfa (SWF 8+) |
| Códecs de audio | PCM sin comprimir, ADPCM, MP3, Nellymoser (SWF 6+), Speex (SWF 10+) |
| Incrustación de fuentes | Contornos TrueType convertidos a registros de forma SWF; las etiquetas DefineFont2 y DefineFont3 incluyen tablas completas de caracteres Unicode |
| Transformaciones 3D | La etiqueta PlaceObject3 (SWF 11+) añade una matriz de perspectiva 4×4 que permite la rotación 3D y la proyección de objetos de la lista de visualización |
| Incrustación de datos binarios | La etiqueta DefineBinaryData (SWF 9+) permite almacenar cargas útiles binarias arbitrarias dentro del contenedor .swf |
| Modelo de línea de tiempo | Lista de visualización basada en fotogramas; cada fotograma es una diferencia (diff) de las etiquetas PlaceObject y RemoveObject aplicadas al grafo de escena, no una instantánea completa de fotograma clave |
| Lanzado | 1996 (FutureSplash Animator); Adobe published the SWF File Format Specification, now withdrawn after Flash EOL |
| Estándar abierto | Sí · libre de regalías |
| Especificación | web.archive.org |
Conversiones de SWF
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos SWF.