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

  1. .asf, .wma e .wmv correspondem a um mesmo contêiner. A Microsoft usa .wma e .wmv para arquivos ASF cujo conteúdo é codificado com codecs Windows Media Audio ou Video, e a Biblioteca do Congresso registra .asf para 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 hexadecimal 30 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 .wma e .wmv.
  2. 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 .wmv ou .wma é uma convenção, não uma garantia. Inspecione cada fluxo antes de escolher entre remultiplexação e transcodificação.
  3. 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 warning do FFmpeg, portanto um nível de log menos detalhado, como error, os oculta. O desmultiplexador define o metadado encryption apenas para o objeto estendido; para o primeiro, ele armazena como metadados os valores não vazios de ASF_Protection_Type, ASF_Key_ID e ASF_License_URL. Verifique a presença de qualquer um dos avisos, não apenas da entrada encryption, e rejeite esses uploads logo no início em vez de esperar uma transcodificação.
  4. 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

Transforme conhecimento sobre mídia em um pipeline funcional

Conecte uploads, processamento, IA, armazenamento e entrega por meio de uma única API declarativa, com o stack de codificação, o ajuste de escala e as constantes mudanças de formatos gerenciados para você.

Experimente a Transloadit gratuitamente