Vídeo Flash (.flv)
Especificación EstándarFlash Video (FLV) es un formato contenedor desarrollado por Macromedia y Adobe para transmitir audio y vídeo sincronizados por Internet mediante el complemento Adobe Flash Player.
Inspección y metadatos
Los sistemas operativos y analizadores de archivos identifican los archivos de FLV inspeccionando la secuencia de bytes binarios inicial:
Firma de cabecera a nivel de bytes (bytes mágicos)
Los sistemas operativos y analizadores de archivos identifican los archivos de FLV inspeccionando la secuencia de bytes binarios inicial:
FIRMA HEXADECIMAL (DESPLAZAMIENTO 0):
46 4C 56 01REPRESENTACIÓN ASCII: FLV
Estandarización: Especificación del formato de archivo Flash Video de Adobe Systems
Especificaciones técnicas
| Arquitectura del contenedor | Contenedor de streaming basado en etiquetas, con etiquetas de audio, vídeo y datos de scripts intercaladas |
| Compresión | Vídeo Sorenson Spark, VP6 o H.264 con audio MP3 o AAC |
| Orden de bytes (Endianness) | Orden de bits y bytes big-endian |
| Espacios de color | YUV 4:2:0 |
| Canales y estructura | Audio mono y estéreo con flujo de vídeo |
| Dimensiones máximas | Comúnmente hasta 1080p |
| Transparencia | Admite transparencia del canal alfa en flujos de vídeo VP6 |
| Streaming y progresivo | Admite de forma nativa streaming en directo con RTMP (protocolo de mensajería en tiempo real) |
Matriz de comparación técnica: FLV frente a la competencia
| Atributo técnico | FLV (Actual) | MP4 | WEBM | MKV |
|---|---|---|---|---|
| Compatibilidad actual con navegadores | 0 % (eliminado de todos los navegadores modernos) | Compatible con todos los navegadores | Compatible con todos los navegadores modernos | Requiere reproductor multimedia de escritorio |
| Estandarización | Especificación propietaria de Adobe | Estándar abierto internacional ISO/IEC | Estándar abierto W3C / WebM | Estándar abierto Matroska |
| Reproducción en dispositivos móviles | No compatible de forma nativa con iOS ni con las versiones modernas de Android | Compatibilidad nativa con el hardware | Compatibilidad nativa con el hardware | Compatible mediante VLC y otras aplicaciones |
| Transparencia alfa | Compatible mediante el códec On2 VP6 | Limitada (requiere Canvas o WebCodecs) | Admite de forma nativa el canal alfa (VP9) | Admitida en flujos VP9/ProRes |
Modos de corrupción comunes y guía de recuperación hexadecimal
El vídeo FLV descargado muestra la duración total como «desconocida» y no permite desplazarse por la línea de tiempo.
Causa raíz: Falta la etiqueta de script «onMetaData», que contiene las tablas de marcas de tiempo de fotogramas clave y tamaños de archivo.
Recuperación: Añade las tablas de fotogramas clave que faltan con «yamdi» (Yet Another MetaData Injector) o convierte el archivo a MP4 con File2File.app.
Análisis de seguridad y vectores de ataque al analizador
El complemento Flash Player fue uno de los componentes de software más atacados en la historia de la informática, debido a errores de corrupción de memoria en ActionScript y en el analizador de FLV.
Vectores de ataque conocidos
- Uso de memoria después de liberarla (use-after-free) y desbordamiento de memoria dinámica en el motor de análisis FLV de ActionScript 3 (por ejemplo, CVE-2015-5122).
- Los paquetes de metadatos AMF0/AMF3 malformados pueden provocar corrupción de memoria en analizadores vulnerables.
- Desbordamientos de búfer en rutinas de descompresión heredadas de Sorenson Spark.
Mejores prácticas defensivas: No ejecuta el complemento Flash Player. Convierte los archivos FLV archivados directamente a MP4 con FFmpeg en un entorno aislado.
Orígenes históricos e hitos
Ventajas principales
- Fue pionero del vídeo en línea: permitió reproducir vídeos en la web sin necesidad de instalar reproductores de escritorio.
- Admitía transparencias alfa en los flujos de vídeo que usaban el códec On2 VP6.
- La baja sobrecarga de los paquetes lo hacía adecuado para transmitir vídeo en directo con RTMP y poca latencia.
Limitaciones técnicas
- Está completamente obsoleto y los navegadores modernos dejaron de admitirlo tras retirar Flash Player.
- Para reproducirlo en iOS, Android y televisores inteligentes, hay que volver a codificar el vídeo o cambiar el contenedor a MP4.
- Carece de funciones de contenedor modernas, como audio multipista y streaming adaptativo con tasa de bits variable.
Curiosidades técnicas interesantes
- El primer vídeo que se subió a YouTube («Me at the zoo», en abril de 2005) se codificó y distribuyó como archivo FLV.
- La secuencia de bytes identificadora de Flash Video, «46 4C 56 01», representa las letras «FLV» en ASCII, seguidas de la versión 1 del contenedor.
- En 2010, Steve Jobs publicó su famosa carta abierta «Thoughts on Flash», que aceleró la transición de FLV a MP4 con HTML5.
Preguntas técnicas frecuentes
¿Por qué ya no puedo reproducir archivos FLV en mi ordenador?
Adobe y los principales navegadores dejaron de ofrecer soporte oficial para Flash Player en diciembre de 2020 por sus vulnerabilidades de seguridad. Para reproducir archivos FLV hoy, usa VLC o conviértalos a MP4.
¿Puedo convertir FLV a MP4 sin pérdida de calidad?
Los flujos H.264 y AAC compatibles pueden remultiplexarse de FLV a MP4 sin recodificar; el tiempo depende del archivo y el dispositivo.
¿Qué códecs usaban originalmente los vídeos FLV?
Los primeros archivos FLV usaban Sorenson Spark (una variante de H.263) y, más tarde, On2 VP6. En 2007, Adobe añadió compatibilidad con el estándar H.264.