¿Qué es F4V?
F4V es el contenedor de video Flash de Adobe para contenido H.264 y AAC, basado en el formato de archivo multimedia base ISO (ISO/IEC 14496-12), la misma familia estructurada en cajas que MP4. Flash Player podía reproducir archivos F4V desde la versión 9, actualización 3 (9.0.115.0) en adelante.
Cómo funciona F4V
F4V almacena las pistas en una jerarquía de cajas tipadas, lo que hace que su organización se parezca más a MP4 que al formato anterior FLV: una caja de tipo de archivo (ftyp), una caja de película (moov) que contiene las tablas de muestras y una caja de datos multimedia (mdat). Flash Player reproducía los archivos con moov y mdat en cualquier orden, pero la especificación recomienda colocar moov primero para acelerar el inicio y permitir el streaming progresivo. Adobe añadió sus propias capas sobre la estructura ISO: cajas de etiquetas para autor, título, descripción y derechos de autor, una caja de metadatos XMP y, desde la versión 10.1 de Flash Player, cajas para puntos de referencia, cifrado y streaming por HTTP. El contenedor y la compresión que contiene plantean cuestiones de compatibilidad distintas, por lo que la migración comienza por inspeccionar las pistas de cada archivo.
Datos clave
- Analiza las pistas antes de elegir una conversión. La especificación de Adobe permite más que H.264 y AAC en un archivo F4V: el audio MP3, el video On2 VP6, los fotogramas de imágenes fijas GIF, PNG y JPEG, las pistas de texto y las pistas de datos ActionScript Message Format figuran como tipos de contenido multimedia compatibles. Un plan que trate cada
.f4vcomo H.264 más AAC procesará incorrectamente esos archivos. - La marca es un indicio, no una prueba. La especificación indica
f4v(con un espacio al final) como marca principal en la caja de tipo de archivo, y el multiplexor F4V de FFmpeg 8.0 escribe esa marca. La misma especificación dice que Flash Player no imponía restricciones a la caja de tipo de archivo e intentaba reproducir todo lo que pudiera decodificar, por lo que no se garantiza que un archivo servido como F4V contenga esa marca. FFmpeg tampoco depende de ella: lee.f4vcon el mismo demultiplexor que utiliza para MP4 y MOV. - Para las pistas H.264, AAC y MP3, un reempaquetado en MP4 puede evitar un nuevo encoding: el multiplexor MP4 de FFmpeg 8.0 tiene etiquetas de códec para los tres. No tiene ninguna para VP6, por lo que una pista VP6 debe someterse a un nuevo encoding para generar una salida MP4. La etiqueta no es la única condición: el mismo multiplexor rechaza MP3 con una frecuencia de muestreo inferior a 16 kHz, a menos que su ajuste
strictse reduzca por debajo del nivel normal, así que comprueba también las frecuencias de muestreo de MP3. Para esta entrada no se determinó cómo se manejan las pistas de imágenes fijas, texto y datos AMF, por lo que debes probarlas por separado. Esto describe el código fuente del multiplexor de una herramienta, revisado en la versión 8.0, no lo que permite el estándar MP4, y una copia exitosa no demuestra que un reproductor determinado pueda decodificar el resultado. Después de un reempaquetado, comprueba la duración, la sincronización de audio y video, el desplazamiento por la línea de tiempo y las etiquetas que necesites conservar. - Los archivos protegidos y el contenido de streaming por HTTP son casos distintos. Los archivos protegidos utilizan entradas de muestras cifradas (
encv,enca) con cajas DRM de Adobe, y la caja de esquema de la especificación identifica el sistema DRM que administra las claves, por lo que las muestras no se pueden decodificar sin esas claves. El streaming por HTTP de Adobe construye una presentación a partir de un manifiesto F4M y archivos de segmentos (F4F). La especificación define un segmento como un archivo F4V completo que contiene fragmentos con un mismo nivel de calidad, y una presentación puede dividirse en varios segmentos. Un fragmento por sí solo no es un archivo F4V completo, porque no se permiten en él las cajasftypymoov. Por lo tanto, un archivo.f4fpuede contener solo parte de una presentación, y para esta entrada no se probó si una herramienta determinada lee segmentos F4F.
Cuándo es importante F4V
Los desarrolladores se encuentran con F4V al migrar contenido multimedia desde sistemas de entrega de la era de Flash. Adobe dejó de ofrecer soporte para Flash Player el 31 de diciembre de 2020 y bloqueó la ejecución de contenido Flash en el reproductor a partir del 12 de enero de 2021, por lo que estas colecciones multimedia tienen que migrar a reproductores que no dependan de Flash. Que baste con un reempaquetado en MP4 o se requiera un nuevo encoding depende de las pistas de cada archivo, no del nombre .f4v.
Cómo te ayuda Transloadit con F4V
La tabla de formatos de audio y video de Transloadit, que abarca Robots basados en FFmpeg como /video/encode, incluye f4v (F4V Adobe Flash Video) como un formato que esos Robots pueden escribir. La fila muestra «No» en «Lectura» porque FFmpeg no tiene un demultiplexor llamado f4v: su documentación de formatos registra la extensión f4v con el demultiplexor combinado de MOV, MP4 y 3GP.
La tabla indica qué puede leer y escribir cada stack de FFmpeg, no un resultado probado para cada códec dentro de un archivo F4V subido. El comportamiento del multiplexor descrito en los datos clave se verificó en el código fuente de FFmpeg 8.0, no en un stack de Transloadit. Procesa un archivo heredado representativo con tu Assembly antes de depender de ese comportamiento.
Explora los formatos de archivo y las capacidades de compresión de Transloadit
Fuentes
- Especificación del formato de archivo Adobe Flash Video, versión 10.1 (F4V y FLV). Partes utilizadas aquí: introducción; secciones 1.7, 1.8, 2.1, 2.8.8, 3.1 y 3.2; anexos C y D
- Adobe: información general sobre el fin de la vida útil de Flash Player
- Documentación de formatos de FFmpeg: demultiplexor mov/mp4/3gp (extensiones registradas) y multiplexor f4v
- FFmpeg 8.0 movenc.c, líneas 8762–8850: tablas de etiquetas de códec para los multiplexores MP4 y F4V
- FFmpeg 8.0 movenc.c, líneas 8205–8215: comprobación de la frecuencia de muestreo de MP3 en el multiplexor MP4
- FFmpeg 8.0 movenc.c, líneas 5934–5973: marca de tipo de archivo escrita por el multiplexor F4V