O que é um arquivo SWF?
Um arquivo SWF é o formato de distribuição do Adobe Flash: um arquivo binário que combina gráficos vetoriais, texto, vídeo, som e bytecode ActionScript para reprodução no Flash Player. A Adobe encerrou o suporte ao Flash Player em 31 de dezembro de 2020, por isso o conteúdo agora precisa de um emulador ou outro software especializado.
Como funcionam os arquivos SWF
SWF é um formato binário baseado em tags, projetado para distribuição eficiente ao Flash Player, e não para troca de gráficos entre editores. Suas tags contêm gráficos, bitmaps, som e vídeo, além de bytecode que uma máquina virtual interpreta como ActionScript. A reprodução simples é controlada apenas por uma linha do tempo; o conteúdo interativo também executa ActionScript, que pode fazer referência a recursos externos ao arquivo. Arquivos até SWF 8 usam ActionScript 1.0 ou ActionScript 2.0, enquanto SWF 9 e posteriores podem usar ActionScript 3.0 em uma segunda máquina virtual (AVM2), portanto dois arquivos com a mesma extensão podem precisar de suporte de execução diferente. A Adobe encerrou o suporte ao Flash Player em 31 de dezembro de 2020 e bloqueou a execução de conteúdo Flash nele a partir de 12 de janeiro de 2021; o Chrome 88 e o Firefox 85 removeram o suporte a Flash naquele mesmo mês de janeiro. O acesso agora depende de emulação, ferramentas de extração específicas do formato ou conversão.
Informações essenciais
- Os três primeiros bytes identificam o empacotamento:
FWSindica ausência de compressão,CWSsignifica que tudo após os primeiros 8 bytes está comprimido com zlib (SWF 6 e posteriores), eZWSindica compressão LZMA (SWF 13 e posteriores). O quarto byte é a versão do SWF. Uma ferramenta que reconhece apenas os dois primeiros tipos rejeita arquivosZWS; o demultiplexador SWF do FFmpeg detecta apenasFWSeCWS. - No SWF 9 e posteriores, o sinalizador ActionScript3 na tag FileAttributes (tag 69) registra se o arquivo usa ActionScript 3.0 ou
ActionScript 1.0/2.0, que são executados em máquinas virtuais diferentes. Arquivos mais antigos usamActionScript 1.0/2.0, e arquivos anteriores ao SWF 8 podem não ter essa tag. O Ruffle, um emulador de código aberto do Flash Player, acompanha separadamente seu suporte a cada um e se descreve como ainda não concluído, portanto teste os arquivos específicos que importam em vez de presumir que um acervo se comporta de maneira uniforme. - Um demultiplexador de mídia não é um reprodutor de Flash. O demultiplexador SWF do FFmpeg expõe fluxos de vídeo incorporados, sons, bitmaps sem perdas e imagens
DefineBitsJPEG2e ignora todas as outras tags, portanto os gráficos vetoriais, a animação da linha do tempo, o comportamento do ActionScript e os bitmaps nas outras tags JPEG ficam ausentes do resultado; sua saída não é um inventário da mídia do arquivo. Transformar esse conteúdo em vídeo ou imagens estáticas exige renderizá-lo em um reprodutor ou emulador e capturar o resultado; o Ruffle inclui um exportador que renderiza quadros em PNG. - O plugin original não é uma alternativa de contingência. A Adobe não disponibiliza correções de segurança para o Flash Player após a data de fim de vida, bloqueou a execução de conteúdo Flash no Flash Player a partir de 12 de janeiro de 2021, removeu suas páginas de download e alerta que cópias não autorizadas são uma fonte comum de malware.
Quando os arquivos SWF são importantes
Trate o SWF principalmente como uma entrada para migração ou preservação, pois os navegadores modernos não oferecem mais reprodução normal de Flash. Converter uma animação pode preservar os elementos visuais, mas perder scripts, interatividade ou comportamento temporal.
Como a Transloadit ajuda com arquivos SWF
A tabela de formatos de áudio/vídeo da Transloadit lista swf com suporte a leitura e gravação nos stacks do FFmpeg usados por Robots como o /video/encode. Uma linha separada, avm2, “SWF (ShockWave Flash) (AVM2)”, oferece suporte apenas a gravação.
O demultiplexador SWF do FFmpeg lê o áudio, o vídeo e alguns dados de bitmap incorporados em um arquivo e ignora outras tags, portanto a animação vetorial e o comportamento controlado por ActionScript não são convertidos.
Explore os formatos de arquivo e os recursos de compressão da Transloadit
Fontes
- Adobe: especificação do formato de arquivo SWF, versão 19 (espelho; o link original da Adobe não funciona mais)
- Página de informações gerais sobre o fim de vida do Adobe Flash Player
- Biblioteca do Congresso: família de formatos de arquivo Flash SWF
- Chromium: cronograma do Flash (suporte removido no Chrome 88)
- Notas da versão 85.0 do Firefox (suporte a Flash removido)
- Ruffle: compatibilidade com ActionScript
- README do Ruffle (status do projeto e exportador de PNG)
- FFmpeg n8.0: libavformat/swfdec.c (demultiplexador SWF)