¿Qué es un archivo ASF?
Advanced Systems Format es un contenedor multimedia de Microsoft para audio, video y metadatos sincronizados. Se diseñó especialmente para streaming y está asociado con contenido de Windows Media.
Cómo funcionan los archivos ASF
Un archivo ASF es una serie de objetos, cada uno de los cuales comienza con un GUID que lo identifica y un tamaño. Hay tres tipos en el nivel superior: un objeto de encabezado obligatorio al comienzo del archivo, un objeto de datos obligatorio que lo sigue y objetos de índice opcionales al final. El encabezado describe el archivo y cada flujo, y también puede enumerar los códecs utilizados, metadatos descriptivos como el título y el autor, e información de protección del contenido. El objeto de datos contiene el contenido multimedia en forma de paquetes, cada uno con un tiempo de presentación, y un paquete puede contener datos de uno o varios flujos. Los flujos pueden estar en cualquier formato comprimido o sin comprimir, y un archivo puede contener varios, como múltiples flujos de audio o video con varias tasas de bits. Microsoft diseñó el formato para su reproducción desde servidores multimedia y servidores HTTP, así como desde almacenamiento local.
Datos clave
.asf,.wmay.wmvcorresponden a un mismo contenedor. Microsoft usa.wmay.wmvpara archivos ASF cuyo contenido está codificado con códecs Windows Media Audio o Video, y la Biblioteca del Congreso registra.asfpara archivos sin flujos de bits de Windows Media. FFmpeg identifica el formato comparando el comienzo del archivo con el GUID del objeto de encabezado, no por el nombre. Su constante para ese GUID (consultada en la versión 8.0) es el valor hexadecimal30 26 B2 75 8E 66 CF 11 A6 D9 00 AA 00 62 CE 6C, los mismos bytes que la Biblioteca del Congreso enumera como firma de.asf. Microsoft documenta que el objeto de encabezado es obligatorio al comienzo de cada archivo ASF, por lo que la misma comprobación se aplica a los archivos.wmay.wmv.- El contenedor no determina el códec. La descripción general de Microsoft indica que los flujos ASF pueden estar en cualquier formato comprimido o sin comprimir, por lo que dos archivos ASF válidos pueden necesitar decodificadores completamente distintos, y un nombre
.wmvo.wmaes una convención, no una garantía. Inspecciona cada flujo antes de elegir entre volver a multiplexar y transcodificar. - ASF puede contener DRM. Un objeto de cifrado de contenido o un objeto ampliado de cifrado de contenido en el encabezado indica contenido protegido mediante la gestión de derechos de Windows Media, que puede requerir una licencia con una clave antes de la reproducción. Cuando no se proporciona una clave de descifrado, el demultiplexor ASF de FFmpeg (verificado en la versión 8.0) detecta ambos objetos y se limita a advertir: «DRM protected stream detected, decoding will likely fail!» para el primero y «Ext DRM protected stream detected, decoding will likely fail!» para el segundo. Ambas advertencias se registran en el nivel
warningde FFmpeg, por lo que un nivel de registro menos detallado, comoerror, las oculta. El demultiplexor establece el metadatoencryptionsolo para el objeto ampliado; para el primero, almacena como metadatos los valores no vacíos deASF_Protection_Type,ASF_Key_IDyASF_License_URL. Comprueba si aparece cualquiera de las dos advertencias, en lugar de revisar únicamente la entradaencryption, y rechaza esas subidas desde el principio en vez de esperar una transcodificación. - Un archivo ASF que se puede abrir no está necesariamente completo ni indexado. El objeto de índice, que permite el acceso aleatorio a los datos basado en el tiempo, es opcional y se sitúa al final, y Microsoft señala que un archivo descargado parcialmente aún puede leerse siempre que contenga el objeto de encabezado y al menos un objeto de datos. Comprueba la duración y el comportamiento al desplazarte por la línea de tiempo en descargas truncadas y grabaciones interrumpidas.
Cuándo son relevantes los archivos ASF
Ofrece compatibilidad con ASF al recibir archivos y colecciones de Windows Media heredados, que suelen llegar como .wmv, .wma o .asf. Antes de convertirlos, comprueba dos cosas que el contenedor por sí solo no indica: qué códecs usan los flujos y si el archivo está protegido con DRM, porque el contenido protegido puede requerir una licencia antes de reproducirse y FFmpeg advierte que su decodificación probablemente falle. Para la entrega web, prevé usar otro contenedor: la guía de MDN sobre contenedores multimedia usados en la web no incluye una entrada para ASF y señala que MP4 y WebM son compatibles con todos los navegadores. MDN aclara que esta compatibilidad corresponde únicamente al contenedor, no a ningún códec específico, por lo que los códecs que encuentres determinan si los flujos pueden copiarse al nuevo contenedor o deben transcodificarse.
Cómo ayuda Transloadit con los archivos ASF
La tabla de formatos de audio y video de Transloadit, aplicable a Robots basados en FFmpeg como /video/encode y /audio/encode, incluye asf como un formato que esos Robots pueden leer y escribir en cada stack de FFmpeg indicado.
La tabla indica la compatibilidad con el contenedor en cada stack, no un resultado probado para cada códec dentro de un archivo ASF subido, y no dice nada sobre los archivos protegidos con DRM, que el propio FFmpeg advierte que probablemente fallen. Prueba archivos heredados representativos antes de depender de esa compatibilidad.
Explora los formatos de archivo y las capacidades de compresión de Transloadit
Fuentes
- Microsoft Learn: descripción general del formato ASF (Windows Media Format SDK)
- Microsoft Learn: estructura de archivos ASF (Media Foundation)
- Descripción de formato fdd000067 de la Biblioteca del Congreso: ASF (Advanced Systems Format)
- FFmpeg 8.0 asfdec_f.c, líneas 196–203: identificación de ASF mediante el GUID del objeto de encabezado
- FFmpeg 8.0 asf_tags.c, líneas 23–25: bytes del GUID del objeto de encabezado
- FFmpeg 8.0 asfdec_f.c, líneas 765–796: advertencias de detección de DRM en el demultiplexor ASF
- Documentación de formatos de FFmpeg: demultiplexor asf (sección 3.4) y multiplexores asf y asf_stream (sección 4.17)
- Documentación de la herramienta FFmpeg: copia de flujos y opción genérica -loglevel
- MDN: formatos de contenedores multimedia (índice de contenedores usados en la web)