O que é um arquivo ASF?
Advanced Systems Format é um contêiner multimídia da Microsoft para áudio, vídeo e metadados sincronizados. Ele foi projetado especialmente para streaming e está associado a conteúdo Windows Media.
Como funcionam os arquivos ASF
Um arquivo ASF é uma série de objetos, cada um começando com um GUID que o identifica e um tamanho. Há três tipos no nível superior: um objeto de cabeçalho obrigatório no início do arquivo, um objeto de dados obrigatório logo depois e objetos de índice opcionais no final. O cabeçalho descreve o arquivo e cada fluxo, e também pode listar os codecs usados, metadados descritivos como título e autor e informações de proteção de conteúdo. O objeto de dados contém a mídia em pacotes, cada um com um tempo de apresentação, e um pacote pode transportar dados de um ou vários fluxos. Os fluxos podem estar em qualquer formato comprimido ou não comprimido, e um arquivo pode conter vários, como múltiplos fluxos de áudio ou vídeo em múltiplas taxas de bits. A Microsoft projetou o formato para reprodução a partir de servidores de mídia e servidores HTTP, assim como a partir do armazenamento local.
Informações essenciais
.asf,.wmae.wmvcorrespondem a um mesmo contêiner. A Microsoft usa.wmae.wmvpara arquivos ASF cujo conteúdo é codificado com codecs Windows Media Audio ou Video, e a Biblioteca do Congresso registra.asfpara arquivos sem fluxos de bits Windows Media. O FFmpeg identifica o formato comparando o início do arquivo com o GUID do objeto de cabeçalho, não pelo nome. Sua constante para esse GUID (verificada na versão 8.0) é o valor hexadecimal30 26 B2 75 8E 66 CF 11 A6 D9 00 AA 00 62 CE 6C, os mesmos bytes que a Biblioteca do Congresso lista como assinatura de.asf. A Microsoft documenta o objeto de cabeçalho como obrigatório no início de todo arquivo ASF, portanto a mesma verificação se aplica a arquivos.wmae.wmv.- O contêiner não determina o codec. A visão geral da Microsoft diz que os fluxos ASF podem estar em qualquer formato comprimido ou não comprimido, portanto dois arquivos ASF válidos podem precisar de decodificadores totalmente diferentes, e um nome
.wmvou.wmaé uma convenção, não uma garantia. Inspecione cada fluxo antes de escolher entre remultiplexação e transcodificação. - O ASF pode conter DRM. Um objeto de criptografia de conteúdo ou um objeto estendido de criptografia de conteúdo no cabeçalho identifica conteúdo protegido pelo gerenciamento de direitos do Windows Media, que pode exigir uma licença contendo uma chave antes da reprodução. Quando nenhuma chave de descriptografia é fornecida, o desmultiplexador ASF do FFmpeg (verificado na versão 8.0) detecta ambos os objetos e apenas emite avisos: “DRM protected stream detected, decoding will likely fail!” para o primeiro e “Ext DRM protected stream detected, decoding will likely fail!” para o segundo. Ambos são registrados no nível
warningdo FFmpeg, portanto um nível de log menos detalhado, comoerror, os oculta. O desmultiplexador define o metadadoencryptionapenas para o objeto estendido; para o primeiro, ele armazena como metadados os valores não vazios deASF_Protection_Type,ASF_Key_IDeASF_License_URL. Verifique a presença de qualquer um dos avisos, não apenas da entradaencryption, e rejeite esses uploads logo no início em vez de esperar uma transcodificação. - Um arquivo ASF que abre não está necessariamente completo ou indexado. O objeto de índice, que fornece acesso aleatório aos dados com base no tempo, é opcional e vem por último, e a Microsoft observa que um arquivo parcialmente baixado ainda pode ser lido desde que tenha o objeto de cabeçalho e pelo menos um objeto de dados. Verifique a duração e o comportamento ao avançar ou retroceder na linha do tempo em downloads truncados e gravações interrompidas.
Quando os arquivos ASF são relevantes
Ofereça suporte a ASF ao ingerir arquivos e acervos legados do Windows Media, que geralmente chegam como .wmv, .wma ou .asf. Antes da conversão, verifique duas coisas que o contêiner sozinho não informa: quais codecs os fluxos usam e se o arquivo é protegido por DRM, pois conteúdo protegido pode exigir uma licença antes da reprodução e o FFmpeg alerta que sua decodificação provavelmente falhará. Para distribuição na web, planeje usar outro contêiner: o guia da MDN sobre contêineres de mídia usados na web não tem uma entrada para ASF e cita MP4 e WebM como compatíveis com todos os navegadores. A MDN observa que esse suporte se refere apenas ao contêiner, não a um codec específico, portanto os codecs encontrados determinam se os fluxos podem ser copiados para o novo contêiner ou precisam ser transcodificados.
Como a Transloadit ajuda com arquivos ASF
A tabela de formatos de áudio/vídeo da Transloadit, que se aplica a Robots baseados no FFmpeg, como /video/encode e /audio/encode, lista asf como um formato que esses Robots podem ler e gravar em cada stack do FFmpeg listado.
A tabela informa o suporte ao contêiner por stack, não um resultado testado para cada codec dentro de um upload ASF, e não diz nada sobre arquivos protegidos por DRM, para os quais o próprio FFmpeg alerta que o processamento provavelmente falhará. Teste arquivos legados representativos antes de depender desse suporte.
Explore os formatos de arquivo e os recursos de compressão da Transloadit
Fontes
- Microsoft Learn: visão geral do formato ASF (Windows Media Format SDK)
- Microsoft Learn: estrutura de arquivos ASF (Media Foundation)
- Descrição de formato fdd000067 da Biblioteca do Congresso: ASF (Advanced Systems Format)
- FFmpeg 8.0 asfdec_f.c, linhas 196–203: detecção de ASF pelo GUID do objeto de cabeçalho
- FFmpeg 8.0 asf_tags.c, linhas 23–25: bytes do GUID do objeto de cabeçalho
- FFmpeg 8.0 asfdec_f.c, linhas 765–796: avisos de detecção de DRM no desmultiplexador ASF
- Documentação de formatos do FFmpeg: desmultiplexador asf (seção 3.4) e multiplexadores asf e asf_stream (seção 4.17)
- Documentação da ferramenta FFmpeg: cópia de fluxos e opção genérica -loglevel
- MDN: formatos de contêineres de mídia (índice de contêineres usados na web)