Qu’est-ce que F4V ?
F4V est le conteneur vidéo Flash d’Adobe pour les contenus H.264 et AAC, fondé sur le format de fichier multimédia de base ISO (ISO/IEC 14496-12), de la même famille à structure en boîtes que MP4. Flash Player pouvait lire les fichiers F4V à partir de la version 9 Update 3 (9.0.115.0).
Fonctionnement de F4V
F4V stocke les pistes dans une hiérarchie de boîtes typées, ce qui rapproche son organisation de MP4 plutôt que du format FLV antérieur : une boîte de type de fichier (ftyp), une boîte de film (moov) contenant les tables d’échantillons et une boîte de données multimédias (mdat). Flash Player lisait les boîtes moov et mdat dans n’importe quel ordre, mais la spécification recommande de placer moov en premier pour un démarrage plus rapide et un streaming progressif. Adobe a ajouté ses propres couches à la structure ISO : des boîtes de balises pour l’auteur, le titre, la description et les droits d’auteur, une boîte de métadonnées XMP et, à partir de Flash Player version 10.1, des boîtes pour les points de repère, le chiffrement et le streaming HTTP. Le conteneur et la compression qu’il renferme posent des questions de compatibilité distinctes ; une migration commence donc par l’examen des pistes de chaque fichier.
Points clés
- Analysez les pistes avant de choisir une conversion. La spécification d’Adobe autorise d’autres contenus que H.264 et AAC dans un fichier F4V : l’audio MP3, la vidéo On2 VP6, les images fixes GIF, PNG et JPEG, les pistes de texte et les pistes de données ActionScript Message Format figurent tous parmi les types de médias pris en charge. Un plan qui considère chaque
.f4vcomme du H.264 accompagné d’AAC traitera mal ces fichiers. - La marque est un indice, pas une preuve. La spécification donne
f4v(avec une espace finale) comme marque principale dans la boîte de type de fichier, et le multiplexeur F4V de FFmpeg 8.0 écrit cette marque. La même spécification indique que Flash Player n’imposait aucune restriction à la boîte de type de fichier et tentait de lire tout ce qu’il pouvait décoder ; un fichier diffusé en tant que F4V ne contient donc pas nécessairement cette marque. FFmpeg ne dépend pas non plus de la marque : il lit.f4vavec le même démultiplexeur que pour MP4 et MOV. - Pour les pistes H.264, AAC et MP3, un changement de conteneur vers MP4 peut éviter le réencodage : le multiplexeur MP4 de FFmpeg 8.0 dispose de balises de codec pour les trois. Il n’en a aucune pour VP6 ; une piste VP6 doit donc être réencodée pour une sortie MP4. Une balise n’est pas la seule condition : ce même multiplexeur rejette le MP3 échantillonné en dessous de 16 kHz, sauf si son réglage
strictest abaissé sous le niveau normal ; vérifiez donc aussi les fréquences d’échantillonnage MP3. Les pistes d’images fixes, de texte et de données AMF n’ont pas été évaluées pour cette entrée ; testez-les donc séparément. Cette description concerne le code source du multiplexeur d’un outil, tel qu’examiné dans la version 8.0, et non ce que permet la norme MP4 ; une copie réussie ne prouve pas qu’un lecteur donné décode le résultat. Après un changement de conteneur, vérifiez la durée, la synchronisation audio et vidéo, la navigation dans la lecture et les balises que vous devez conserver. - Les fichiers protégés et les contenus en streaming HTTP sont des cas distincts. Les fichiers protégés utilisent des entrées d’échantillons chiffrés (
encv,enca) avec des boîtes DRM d’Adobe, et la boîte de mécanisme définie par la spécification identifie le système DRM qui gère les clés ; les échantillons ne peuvent donc pas être décodés sans ces clés. Le streaming HTTP d’Adobe construit une présentation à partir d’un manifeste F4M et de fichiers de segments (F4F). La spécification définit un segment comme un fichier F4V complet contenant des fragments à un niveau de qualité donné, et une présentation peut être divisée en plusieurs segments. Un fragment seul n’est pas un fichier F4V complet, car les boîtesftypetmoovn’y sont pas autorisées. Un fichier.f4fpeut donc ne contenir qu’une partie d’une présentation, et la capacité d’un outil donné à lire les segments F4F n’a pas été testée pour cette entrée.
Quand F4V est utile
Les développeurs rencontrent F4V lorsqu’ils migrent des médias depuis des systèmes de diffusion de l’époque de Flash. Adobe a mis fin à la prise en charge de Flash Player le 31 décembre 2020 et a bloqué l’exécution des contenus Flash dans le lecteur à compter du 12 janvier 2021 ; ces collections doivent donc migrer vers des lecteurs qui ne dépendent pas de Flash. La question de savoir si un changement de conteneur vers MP4 suffit ou si un réencodage est nécessaire dépend des pistes contenues dans chaque fichier, et non du nom .f4v.
Comment Transloadit vous aide avec F4V
Le tableau des formats audio/vidéo de Transloadit, qui couvre les Robots fondés sur FFmpeg tels que /video/encode, répertorie f4v (F4V Adobe Flash Video) comme un format que ces Robots peuvent écrire. La ligne indique « Non » pour la lecture, car FFmpeg n’a pas de démultiplexeur nommé f4v : sa documentation des formats déclare l’extension f4v avec le démultiplexeur combiné MOV, MP4 et 3GP.
Le tableau indique ce que chaque pile FFmpeg peut lire et écrire, sans fournir de résultat testé pour chaque codec contenu dans un fichier F4V téléversé. Le comportement du multiplexeur décrit dans les faits essentiels a été vérifié dans le code source de FFmpeg 8.0, et non sur une pile Transloadit. Traitez un ancien fichier représentatif avec votre Assembly avant de vous y fier.
Explorer les possibilités de Transloadit en matière de formats de fichiers et de compression
Références
- Spécification du format de fichier Adobe Flash Video, version 10.1 (F4V et FLV). Parties utilisées ici : introduction ; sections 1.7, 1.8, 2.1, 2.8.8, 3.1 et 3.2 ; annexes C et D
- Adobe : informations générales sur la fin de vie de Flash Player
- Documentation des formats de FFmpeg : démultiplexeur mov/mp4/3gp (extensions déclarées) et multiplexeur f4v
- FFmpeg 8.0 movenc.c, lignes 8762–8850 : tables des balises de codec pour les multiplexeurs MP4 et F4V
- FFmpeg 8.0 movenc.c, lignes 8205–8215 : vérification de la fréquence d’échantillonnage MP3 dans le multiplexeur MP4
- FFmpeg 8.0 movenc.c, lignes 5934–5973 : marque de type de fichier écrite par le multiplexeur F4V