¿Qué es un archivo SWF?

Un archivo SWF es el formato de entrega de Adobe Flash: un archivo binario que combina gráficos vectoriales, texto, video, sonido y bytecode de ActionScript para su reproducción en Flash Player. Adobe dejó de ofrecer soporte para Flash Player el 31 de diciembre de 2020, por lo que ahora el contenido necesita un emulador u otro software especializado.

Cómo funcionan los archivos SWF

SWF es un formato binario basado en etiquetas diseñado para una entrega eficiente a Flash Player, no para intercambiar gráficos entre editores. Sus etiquetas contienen gráficos, mapas de bits, sonido y video, junto con bytecode que una máquina virtual interpreta como ActionScript. La reproducción simple se rige únicamente por una línea de tiempo; el contenido interactivo también ejecuta ActionScript, que puede hacer referencia a recursos externos al archivo. Los archivos hasta SWF 8 usan ActionScript 1.0 o ActionScript 2.0, mientras que los de SWF 9 y versiones posteriores pueden usar ActionScript 3.0 en una segunda máquina virtual (AVM2), por lo que dos archivos con la misma extensión pueden necesitar compatibilidad con distintos entornos de ejecución. Adobe dejó de ofrecer soporte para Flash Player el 31 de diciembre de 2020 y bloqueó la ejecución de contenido Flash en él a partir del 12 de enero de 2021; Chrome 88 y Firefox 85 eliminaron la compatibilidad con Flash ese mismo enero. El acceso depende ahora de la emulación, de herramientas de extracción específicas del formato o de la conversión.

Datos clave

  1. Los primeros tres bytes identifican el empaquetado: FWS indica que no hay compresión, CWS significa que todo lo que sigue a los primeros 8 bytes está comprimido con zlib (SWF 6 y versiones posteriores), y ZWS indica compresión LZMA (SWF 13 y versiones posteriores). El cuarto byte es la versión de SWF. Una herramienta que solo reconoce los dos primeros rechaza los archivos ZWS; el demultiplexor SWF de FFmpeg solo busca FWS y CWS al identificar el formato.
  2. En SWF 9 y versiones posteriores, el indicador ActionScript3 de la etiqueta FileAttributes (etiqueta 69) registra si el archivo usa ActionScript 3.0 o ActionScript 1.0/2.0, y ambos se ejecutan en máquinas virtuales distintas. Los archivos más antiguos usan ActionScript 1.0/2.0, y los anteriores a SWF 8 pueden carecer por completo de esa etiqueta. Ruffle, un emulador de Flash Player de código abierto, registra por separado su compatibilidad con cada uno e indica que aún no está terminado, así que prueba los archivos concretos que te interesan en lugar de suponer que toda una colección se comporta de manera uniforme.
  3. Un demultiplexor multimedia no es un reproductor Flash. El demultiplexor SWF de FFmpeg permite acceder a los flujos de video, los sonidos, los mapas de bits sin pérdida y las imágenes DefineBitsJPEG2 integrados, y omite todas las demás etiquetas, por lo que los gráficos vectoriales, la animación de la línea de tiempo, el comportamiento de ActionScript y los mapas de bits de las otras etiquetas JPEG no aparecen en su salida; esta no es un inventario del contenido multimedia del archivo. Convertir ese contenido en video o imágenes fijas implica renderizarlo en un reproductor o emulador y capturar el resultado; Ruffle incluye una herramienta de exportación que renderiza fotogramas en PNG.
  4. El plugin original no es una alternativa. Adobe no publica parches de seguridad para Flash Player tras la fecha de fin de vida útil, bloqueó la ejecución de contenido Flash en Flash Player a partir del 12 de enero de 2021, retiró sus páginas de descarga y advierte que las copias no autorizadas son una fuente habitual de malware.

Cuándo son importantes los archivos SWF

Trata SWF principalmente como un formato de entrada para migración o preservación, porque los navegadores modernos ya no ofrecen la reproducción habitual de Flash. Convertir una animación puede conservar su aspecto visual, pero perder los scripts, la interacción o el comportamiento temporal.

Cómo ayuda Transloadit con los archivos SWF

La tabla de formatos de audio/video de Transloadit indica que swf admite lectura y escritura en los stacks de FFmpeg que utilizan Robots como /video/encode. Una fila independiente para avm2, «SWF (ShockWave Flash) (AVM2)», indica que solo admite escritura.

El demultiplexor SWF de FFmpeg lee el audio, el video y algunos datos de mapas de bits integrados en un archivo y omite otras etiquetas, por lo que la animación vectorial y el comportamiento controlado por ActionScript no se convierten.

Explora los formatos de archivo y las capacidades de compresión de Transloadit

Fuentes

Convierte tus conocimientos sobre multimedia en un pipeline funcional

Conecta las subidas, el procesamiento, la IA, el almacenamiento y la entrega mediante una sola API declarativa, mientras nos encargamos por ti del stack de encoding, el escalado y los cambios constantes de formatos.

Prueba Transloadit gratis