Skip to content
Bertrand Caron edited this page Nov 5, 2024 · 48 revisions

FFMPEG video codec version 1 (FFV1) (codec) Statut

Description

FFV1 est un codec vidéo open source sans perte qui a été développé spécifiquement pour la conservation à long terme des archives audiovisuelles. Il a été créé en 2003 par le développeur Michael Niedermayer afin de disposer d'un format de flux vidéo open source pour le logiciel ffmpeg. FFV1 s'appuie sur des technologies éprouvées et déjà anciennes pour éviter les risques liés aux brevets logiciels (CPO-LIB).

Le format FFV1 est très adapté à la préservation à long terme : il est exempt de tout brevet, il dispose d'une compression sans perte donc réversible, et son lien avec ffmpeg, devenu outil de référence sur la vidéo, lui garantit une prise en charge dans tous les contexte où ffmpeg est utilisé.

Qualité et caractéristiques du flux

Le flux vidéo d'un fichier FFV1 peut présenter toutes les tailles, de la SD (720x480 ou 720x576) à la 8K, et ce quel que soit le ratio image. Il permet de gérer toutes les valeurs de sous-échantillonnage de la chrominance, de 4:1:1 à 4:4:4.

FFV1 gère les images en niveaux de gris, YUV et RVB, avec ou sans canal alpha (transparence), sans limitation en matière de profondeur d'échantillonnage (en pratique, on constate des valeurs de 8 à 16 bits par composante).

Il gère enfin les modes progressif et entrelacé.

Sociabilité

FFV1 est également compatible avec de nombreux logiciels et systèmes d'exploitation, ce qui facilite son utilisation et son intégration dans les workflows de conservation et de diffusion des archives audiovisuelles. En résumé, le FFV1 est un codec vidéo sans perte très performant et fiable, qui garantit la conservation à long terme des vidéos tout en permettant une réduction significative de la taille des fichiers. C'est une solution idéale pour les projets d'archivage et de préservation du patrimoine audiovisuel.

Bien qu'il ne s'agisse pas d'un format de diffusion, plusieurs outils grand public sont capables de le lire (VLC, Windows Media Player) ou l'exploiter (VirtualDub, outil de montage simple).

FFV1 est très largement utilisé par les institutions de conservation pour les images animées (New York Public Library, British Film Institute, la Cinémathèque française, etc.) et les prestataires de numérisation vidéo (par ex., MWA Services).

Relations à d'autres formats

Le flux audio accompagnant le flux vidéo FFV1 peut être un flux PCM non compressé ou être encodé en FLAC (Free Lossless Audio Codec).

Versions

La version actuelle est la version 3, la version 2 a été abandonnée avant d'être publiée. Les versions de FFV1 sont les suivantes : 1.0 : Première version stable de FFV1, publiée en 2003.

1.1 : Version améliorée de FFV1, publiée en 2006. Elle a apporté des modifications mineures au format.

2.0 : Version majeure de FFV1, publiée en 2010. Elle a introduit plusieurs améliorations significatives, notamment le découpage en pavés, la prise en charge de la compression intertrame et la possibilité d'inclure des métadonnées associées à la vidéo. Cette version n’est plus utilisée.

3.0 : Version majeure de FFV1, publiée en 2013. Elle a ajouté de nouvelles fonctionnalités, telles que la prise en charge des images en niveaux de gris et des images avec des palettes de couleurs.

Il convient de noter que FFV1 est développé et maintenu par la fondation FFmpeg, et ces versions représentent les points de référence principaux de l'évolution du codec, cependant les différentes versions sont incompatible entre elles.

Contrairement à AVC/H.264 ou ProRes, le format FFV1 ne définit pas de profils de performance.

Conteneur

Le format FFV1 peut être embarqué dans différents formats conteneurs :

  • Matroska (MKV) est généralement utilisé par la communauté de la préservation numérique car libre également, et normalisé à l'IETF dans un processus parallèle ;
  • AVI ;
  • MXF.

Organisme de maintenance et documentation de référence

Depuis 2021, FFV1 fait l'objet d'une RFC (norme d'Internet maintenue par l'IETF) : RFC 8493, de statut informational.

Cette section donne l'identifiant du standard / de la norme décrivant le format ou à défaut son site officiel, ainsi que, le cas échéant, de la documentation additionnelle ou des études exhaustives sur le format dans une perspective de préservation à long terme.

Chaque ressource web doit avoir été collectée par Internet Archive ; la référence doit mentionner à la fois la ressource dans cet entrepôt et l'URL actuelle de la ressource. Ex. :

Dans le cas où l'URL n'a pas été collectée par IA, se rendre sur le site et demander la collecte en entrant l'URL dans la fenêtre de texte en bas à droite, intitulée "Save page now".

Identifiants

Registre Identifiant
Wikidata Q579857
Bibliothèque du Congrès fdd000341
Just Solve the File Format Problem FFV1

Caractéristiques techniques

Robustesse

Depuis sa version 2, FFV1 permet d'associer à chaque pavé (slice) une empreinte CRC-32. Ce mécanisme d'empreinte numérique interne renforce sa résilience (CPC-ROB). Lors de l'encodage avec l'outil ffmpeg, il est nécessaire de spécifier l'option -slicecrc 1 pour activer ce mécanisme dans le fichier produit.

Le nombre de pavés par image est paramétrable, et va de 4 à 1023 (une liste des valeurs autorisées est disponible sur le site reto.ch).

A noter que plus le découpage est important et plus l’encodeur (et le décodeur) utilisera des ressources machine et le temps de codage / décodage sera important.

Compacité

La compression FFV1 permet d'atteindre un ratio de compression de 40 % par rapport au même flux non compressé.

L'algorithme de compression FFV1 est intra-trame, (la compression est interne à chaque image, à l'inverse de la compression inter-trames, qui élimine la redondance sur une succession d'images). Cela rend le format adapté à la post-production. En outre, cela permet d'éviter la propagation des erreurs de compression d'une image à une autre. Il est relativement simple (CPO-SIM), comparé notamment à l'algorithme JPEG 2000 sans perte, donc plus rapide que lui et avec un ratio de compression légèrement supérieur (CPO-COM). Le ratio de compression entre le format de flux vidéo V210 et FFV1 est approximativement de 65% (le débit de FFV1 étant variable, cette valeur peut varier selon le contenu des images).

Chaque image (frame) du flux FFV1 est découpé en pavés (slices) qui peuvent disposer chacune d'une empreinte CRC-32 (CPO-ROB). Ce découpage permet également le multi-threading, donc l'accélération des processus d'encodage et décodage si le matériel le permet.

On décrira ici les caractéristiques techniques ayant un impact sur la durabilité des données, en particulier sur les critères de compacité (CPO-COM, notamment le ou les algorithme(s) de compression disponibles), simplicité (CPO-SIM), mécanismes de protection (CPO-PRO), robustesse (CPO-ROB), transparence (CPO-TRA) et indépendance / autonomie (CPO-AUT).

Résolution SD (720 x 576) Résolution HD (1920 x 1080)
Cadence / Espace colorimétrique Poids estimé pour 1 heure Poids estimé pour 1 heure
FFV1 10 bits 25i 422 42 Go 140.6 Go
FFV1 8 bits 25i 420 28 Go 82.3 Go

Métadonnées internes

Lorsque le format peut embarquer des métadonnées internes, qu'elles soient descriptives, de provenance ou techniques, on signalera dans cette section le type d’information et le formalisme de ces métadonnées.

Outils connus par la BnF

L'outil FFPLAY est capable de lire divers types de fichiers audio et vidéo. Il prend en charge de nombreux codecs et formats de conteneurs, à fortiori les codecs de FFMPEG. FFMPEG permet aussi de convertir tout type de fichier pivot dans le codec FFV1 pour toutes les versions.

L'outil d'analyse et d'extraction de métadonnées techniques pour la BnF est MediaInfo, qui dispose d'une sortie native dans le format de métadonnées de caractérisation préféré par la BnF, MPEG-7.

L'outil ffmpeg permet le décodage et la conversion de ce format vers des formats de diffusion, comme par exemple le MP4 H.264.

Le logiciel MediaConch de MediaArea permet de valider les fichiers FFV1, ce logiciel est proposé en GUI et en CLI. MKV Validator permet de valider des fichiers MKV.

FFV1 est le codec privilégié de l'outil libre ffmpeg.

La société MediaArea, sponsorisée par de nombreuses institutions de conservation internationales, a développé l'outil RAWcooked qui permet de convertir un flux vidéo brut (une séquence d'images en TIFF ou DPX) vers un fichier MKV FFV1 FLAC. (Cette transformation est intégralement réversible.)

On citera dans cette section les outils que la BnF considère comme particulièrement utiles pour réaliser :

  • la caractérisation ;
  • la validation du format ;
  • et, le cas échéant, la production ou la migration.

On mentionnera si l'une des versions de l'outil est préférable à une autre.

Usage ou présence dans les collections de la BnF

Le Codec FFV1 sera utilisé pour la numérisation des bandes EIAJ et 1 Pouce IVC de la BnF. Ces bandes magnétiques datant des années 70 ne pourront être lues qu'une seule fois en raison de la difficulté de lecture de ces supports fragiles.

Cette section décrit le ou les usage(s) majoritaire(s) du format à la BnF, et signale dans quels cas des fichiers de ce format ont intégré les collections de l'établissement.

Clone this wiki locally