Formats de fichier MPEG MPEG-4 Partie 12 MPEG-4 Partie 14 MPEG-4 Partie 15
Historique Besoin de stockage MPEG-4 = beaucoup de flux élémentaires Besoins différent de MPEG-2 Appel à proposition MPEG Réponse sélectionnée : Apple et format de fichier Quicktime.mov Base du format de fichier MP4 Appel à proposition Motion JPEG-2000 Réponse sélectionnée : Apple et format de fichier Quicktime.mov Base du format MJP2 Création d un format de fichiers de base commun : ISO
Structure des spécifications Partie 12 Format de base des fichiers ISO commune à MP4, 3GP, MJP2, MP21, AVC Partie 14 Extensions spécifiques pour MPEG-4 Partie 15 Extensions spécifiques à AVC
Principes des formats de fichier MPEG (1/3) Format binaire, compact Format hiérarchique, structuré Format extensible, backward- et forwardcompatible Stockage de contenu temporel Échanges de contenu facilité Peut être autosuffisant Le fichier contient toutes les données à échanger De taille faible Le fichier ne contient que les données, pas de données superflues
Principes des formats de fichier MPEG (2/3) Édition efficace Possibilité de stocker chaque flux séparément Possibilité d éditer plusieurs flux en même temps Minimise les accès disques Streaming facilité Possibilité de stockage des directives de streaming pour un protocole particulier avec les données à streamer Possibilité de stocker des paquets pré-préparés Lecture de fichiers locaux efficace Possibilité d entrelacer les divers flux pour minimiser les accès disques Recherche efficace dans le fichier (avance rapide, retour rapide ) Téléchargement et lecture simultanée possibles
Principes des formats de fichier MPEG (3/3) Structure orientée-objet La structure de l objet est déterminée par son type Structure de base: Atome ou Boîte Identifiant de type de boîte sur 4 octets Longueur de la boîte sur 4 octets Donnée spécifique au type de boite Aucune donnée n est stockée hors d une boîte Format backward- et forward-compatible Un lecteur de contenu conforme à une ancienne version peut lire des contenus nouvelle version En détectant les boîtes inconnues (grâce au type) En sautant ces boîtes (grâce à la longueur) Un lecteur de contenu nouvelle version peut lire des contenus d anciennes version Possibilité de répartir les données sur plusieurs fichiers
Structure d un fichier Séparation données/métadonnées Données: AU=sample (e.g. vidéo, audio, BIFS ) Métadonnées: Type de flux (Code sur 4 octets) Timestamps (CTS, DTS) des samples Position et Longueur des samples dans le fichier ou dans des fichiers externes Indicateurs d accès rapide (e.g. images I) Avantages Opérations d édition facilitées édition de pointeurs vs édition de données Recherche rapide dans des fichiers longs Restrictions Toutes les métadonnées d une présentation doivent être stocker dans le même fichier
Hiérarchie de boîtes typique Fichier ISO Boîtes importantes ftyp moov mdat mvhd trak tkhd mdia tref mdhd minf hdlr vmhd dinf stbl dref stsd stts ctts stsc stsz
Quelques boîtes Boîte ftyp (File Type): 1 par fichier Le type de fichier La version du fichier La compatibilité avec d autres fichiers ISO Boîte mdat (Media Data): Contient les données média N par fichiers, non contiguë Boîte moov (Movie): Unique conteneur de méta donnée pour la présentation Boîte mvhd (Movie Header): Informations génériques sur la présentation Boîte trak (Track): Conteneur de méta donnée pour un flux élémentaire Boîte hdlr (Handler) Indique le type de données dans le flux Boîtes dinf/dref (Data Information/Data Reference) Indique la localisation des données d un flux (fichier courant ou url) Boîte stbl (Sample Table) Contient les méta données spécifiques aux samples, sample par sample Boîte stsd (Sample Description) Contient la configuration du décodeur nécessaire pour le flux Boîte stts (Sample To Time) Contient le DTS de chaque sample Utilise un codage compact par différence Boîte stsz (Sample To Size) Contient la taille de chaque sample
Structure d un fichier Movie (meta-data) Video track moov trak Audio track trak Media Data mdat sample sample frame sample sample frame
Scénarios particuliers Téléchargements progressif Écriture de la boîte moov avant les boîtes mdat Réception de toutes les métadonnées avant les données Entrelacement des flux dans mdat Permet de lire la présentation au fur et à mesure du téléchargement Streaming Utilisation d une Hint track Track particulière liée à une track média Indique les directives de streaming de ce média Spécifique à un protocole particulier
Streaming et hint track Movie (meta-data) Video track moov trak Hint track trak Sample Data mdat sample hint header pointer sample frame sample hint header pointer sample frame
Scénarios particuliers Création de fichier à la volée Capture audio/vidéo terminaux mobiles avec peu Besoin d écrire le moov par morceaux Utilisation de «Movie Fragments» moov puis moof ou mfra trun au lieu de trak
Spécificités MP4 Stockage de l IOD dans une boîte de haut-niveau: iods Stockage des ESD dans la boîte stsd Définition de nouveaux types de tracks BIFS OD ClockReference MPEG-J IPMP
Extensions Stockage de données protégées Description de la protection avec ou sans descripteur IPMP Stockage de données non-temporelles Ex: XML Stockage de flux AVC
Structure typique d un fichier MP21 MP21 File ftyp meta mdat hdlr iloc iinf ipro xml or bxml sinf
Exemple de fichier mp21 DID meta xml DID iinf item item name id iloc item offset id length hdlr mp21 Media Data Item 1 Item 2 Item 3 Item 4 mdat frame frame frame frame
Fichier bicéphale MP4/MP21 File ftyp moov mdat meta mvhd trak hdlr iloc iinf ipro xml or bxml tkhd mdia tref sinf mdhd minf hdlr vmhd dinf stbl dref stsd stts ctts stsc stsz
Logiciels Logiciel de référence ISO Outils Open Source, licence GPL MP4Box http://gpac.sourceforge.net MP21Box http://perso.enst.fr/~concolat/mpeg-21/mp21box.htm