Récepteur de fichiers MPEG-4

Le récepteur de fichiers MPEG-4 crée des fichiers MP4. Pour plus d’informations sur le format de fichier MP4, reportez-vous aux documents de normes suivants :

  • ISO/IEC 14496-12 : Technologies de l’information -- Codage des objets audiovisuels -- Partie 12 : Format ISO de base pour les fichiers médias
  • ISO/IEC 14496-14 : Technologies de l’information -- Codage des objets audiovisuels -- Partie 14 : Format de fichier MP4

Remarque

(Ces ressources peuvent ne pas être disponibles dans certaines langues et certains pays.)

 

Le récepteur de fichiers MPEG-4 n’encapsule pas la fonctionnalité d’encodage.

Pour créer le récepteur de fichiers MPEG-4, appelez la fonction MFCreateMPEG4MediaSink. Le récepteur de fichiers MPEG-4 expose les interfaces suivantes via QueryInterface :

Exemple de zone de description

MP4 est un format de conteneur extensible. La spécification MP4 ne définit pas de structure fixe pour décrire les types de médias d’un conteneur MP4. Au lieu de cela, elle définit une hiérarchie d’objets qui permet aux structures personnalisées d’être définies pour chaque format. La description du format est stockée dans l’exemple de zone de description (« stsd ») pour chaque flux. L’exemple de zone de description contient une liste d’exemples d’entrées. Pour chaque exemple d’entrée, un code de 4 octets, similaire à un code FOURCC, définit la structure du format.

Le récepteur de fichiers MPEG-4 peut générer l’exemple de zone de description pour les formats suivants :

  • Vidéo H.264/AVC
  • Audio AAC
  • Audio MP3

Pour les autres formats, l’exemple de zone de description doit être fourni dans le type de média correspondant à chaque flux. Pour spécifier l’exemple de zone de description, définissez les attributs suivants sur le type de média :

Attribut Description
MF_MT_MPEG4_SAMPLE_DESCRIPTION Contient l’exemple de zone de description en tant qu’objet blob binaire.
MF_MT_MPEG4_CURRENT_SAMPLE_ENTRY Spécifie quel exemple d’entrées de l’exemple de zone de description est actuellement actif. (Facultatif.)
Actuellement, la valeur doit être égale à zéro.

 

Dans certains cas, il n’est pas possible de générer un exemple de zone de description tant que toutes les données n’ont pas été encodées. Par exemple, des informations telles que le débit moyen peuvent ne pas être connues à l’avance. Le cas échéant, vous pouvez mettre à jour le type de média à l’aide de l’interface IMFMediaTypeHandler dans le récepteur de fichiers MPEG-4. Vous devez effectuer cette opération avant la finalisation du récepteur multimédia.

En règle générale, le type de média est créé par un encodeur en amont. L’encodeur peut générer un nouveau type de média pendant la diffusion en continu, par le biais d’une modification de format dynamique. Pour plus d’informations, consultez la section Modifications de format dynamique.

Vidéo H.264/AVC

Le récepteur de fichiers MPEG-4 prend en charge la version du flux AVC dont le flux vidéo est élémentaire, avec des unités NAL de jeux de paramètres de séquence (SPS) et de jeux de paramètres d’images (PPS) contenues dans l’exemple de zone de description, comme défini dans la norme ISO/IEC 14496, partie 15, section 5.1. Le récepteur de fichiers ne prend pas en charge l’autre méthode de stockage des unités NAL SPS/PPS en tant que flux élémentaire de jeu de paramètres distinct.

Le récepteur de fichiers MPEG-4 peut générer l’exemple de zone de description, mais il doit être fourni avec les unités NAL SPS et PPS. Spécifiez ces informations dans le type de média en définissant l’attribut MF_MT_MPEG_SEQUENCE_HEADER. La valeur de l’attribut est l’en-tête de séquence H.264. L’en-tête de séquence doit se composer des unités NAL SPS et PPS délimitées par des codes de début de 3 octets ou 4 octets.

Si vous le souhaitez, lorsque vous configurez le récepteur de fichiers, vous pouvez omettre l’attribut MF_MT_MPEG_SEQUENCE_HEADER du type de média initial. Dans ce cas, vous devez mettre à jour le type de média ultérieurement pour inclure l’en-tête de séquence.

Le récepteur de fichiers MPEG-4 présente les exigences suivantes pour les flux binaires AVC :

  • Le flux binaire doit être conforme à la spécification de format H.264 Annexe B. En particulier, les unités NAL doivent être délimitées par des codes de début de 3 octets ou 4 octets.
  • Les exemples multimédias doivent contenir toutes les unités NAL de tranche et de données qui correspondent à une seule heure de présentation.
  • Lorsque vous écrivez des images de type B dans un fichier MP4, vous devez définir à la fois l’horodatage de présentation et l’horodatage de décodage. Si le flux présente une image de type B et que l’horodatage de décodage n’est pas défini, l’enregistreur MP4 voit l’intervalle de temps reculer et supprime l’image.

Audio AAC

Pour les fichiers audio AAC, le récepteur de fichiers MPEG-4 peut générer l’exemple de zone de description pour les sous-types suivants :

  • MFAudioFormat_AAC
  • MEDIASUBTYPE_RAW_AAC1

Pour plus d’informations sur ces sous-types, consultez l’article Types de médias AAC.

Pour le sous-type MFAudioFormat_AAC, le type de média contient éventuellement l’attribut MF_MT_USER_DATA. S’il est présent, cet attribut est la partie de la structure HEAACWAVEINFO qui apparaît après la structure WAVEFORMATEX (autrement dit, après le membre wfx). Ces données sont suivies des données AudioSpecificConfig(), définies par la norme ISO/IEC 14496-3. Si l’attribut MF_MT_USER_DATA n’est pas présent, le flux est supposé être de profil AAC Low Complexity (LC), et le récepteur de fichiers MPEG-4 génère un exemple de zone de description approprié.

Pour le sous-type MEDIASUBTYPE_RAW_AAC1, le récepteur multimédia doit contenir l’attribut MF_MT_USER_DATA, lequel doit contenir les données AudioSpecificConfig().

Le récepteur de fichiers MPEG-4 crée la variante MPEG-4 de l’exemple de zone de description AAC, à l’aide d’un exemple d’entrée « mp4a » avec objectTypeIndication = 0x40. Il n’utilise pas les types d’objets MPEG-2.

Audio MP3

Pour l’audio MP3, le récepteur de fichiers MPEG-4 peut générer l’exemple de zone de description à partir d’un type de média audio standard. (Consultez l’article Types de médias audio.)

Le récepteur de fichiers MPEG-4 crée la variante MPEG-4 de l’exemple de zone de description MP3, à l’aide d’un exemple d’entrée « mp4a » avec objectTypeIndication = 0x6b pour le fichier audio MPEG-1.

Limites

  • La taille maximale du fichier créé est de 4 Go. Dans Windows 8, les fichiers dont la taille est supérieure à 4 Go sont pris en charge.
  • Le récepteur de fichiers MPEG-4 ne prend pas en charge les listes de modifications (zones « edts » et « elst »).

Mises à jour de Windows 8 vers la source et le récepteur MPEG-4

  • Prise en charge de la lecture et de l’écriture de rotation ajoutée dans la source et le récepteur MPEG-4 de Windows 8. Cette fonctionnalité n’est pas prise en charge dans la source et le récepteur MPEG-4 de Windows 7.

    La source MPEG-4 lit l’angle de rotation d’une piste vidéo active en tant que somme de l’angle de rotation de « mvhd » et de « tkhd ».

    Le récepteur Microsoft MPEG-4 écrit l’angle de rotation dans « tkhd », mais écrit une matrice de 0 degré (identité) dans « mvhd ». Notez que le récepteur Microsoft MPEG-4 ne prend en charge qu’une seule piste vidéo.

    IPropertyStore lit uniquement l’angle de rotation de la première piste vidéo en tant que somme de l’angle de rotation de « mvhd » et de « tkhd ».

    IPropertyStore écrit l’angle de rotation uniquement pour la première piste vidéo dans « tkhd » après l’ajustement de l’angle de rotation en fonction de l’angle de rotation dans « mvhd », s’il existe.

  • Les fragments vidéo (« moof ») sont pris en charge dans la source et le récepteur MPEG-4 de Windows 8, contrairement à « mfra ».

  • Le format H.263 est pris en charge dans la source MPEG-4 de Windows 8.

    La source MPEG-4 mappe désormais deux FOURCC de « h263 » et « s263 » au format de fichier MPEG-4 au type de média MFVideoFormat_H263.

  • Ajout de la prise en charge de FOURCC pour MJPEG dans la source MPEG-4 de Windows 8.

    La source MPEG-4 mappe FOURCC de « dmb1 » au type de média MFVideoFormat_MJPG.

  • Prise en charge des métadonnées furigana ajoutée dans la source MPEG-4 de Windows 8.

    La source MPEG-4 lit les métadonnées furigana de « soal », « soar », « soaa », « sonm » et « soco ». IPropertyStore lit les métadonnées furigana via l’ensemble des valeurs PKEY correspondantes.

    Le tableau suivant présente le mappage entre le nom canonique de l’interpréteur de commandes, la clé de propriété et l’ID de zone/balise au format de fichier MPEG-4.

    Champ Clé de propriété ID de balise/zone
    System.Music.AlbumTitleSortOverride PKEY_Music_AlbumTitleSortOverride soal
    System.Music.ArtistSortOverride PKEY_Music_ArtistSortOverride soar
    System.Music.AlbumArtistSortOverride PKEY_Music_AlbumArtistSortOverride soaa
    System.TitleSortOverride PKEY _TitleSortOverride sonm
    System.Music.ComposerSortOverride PKEY_Music_ComposerSortOverride soco

     

  • Prise en charge de l’atome stéréo 3D ajoutée dans la source MPEG-4 de Windows 8.

  • Prise en charge d’AC3 et de DD+ ajoutée dans la source et le récepteur MPEG-4 de Windows 8.

  • Les fichiers d’une taille supérieure à 4 Go sont pris en charge dans le récepteur MPEG-4 de Windows 8 pour MP4 non fragmenté.

  • Le nettoyage a été optimisé dans la source MPEG-4 de Windows 8.

    Pour réduire la latence, les informations relatives aux deux images clés les plus proches d’une position de recherche particulière sont exposées via IMFSeekInfo::GetNearestKeyFrames. Étant donné que l’image clé n’a pas d’images dépendantes, elle présente l’image après avoir décodé une seule image. Utilisez IMFGetService::GetService pour obtenir cette interface via la source multimédia, le pipeline ou l’application.

    Définissez le débit sur zéro dans la source MPEG-4. Lorsque le pipeline est en mode de nettoyage, le débit est nul.

  • SPS et PPS peuvent être stockés dans des exemples de données dans le récepteur MPEG-4.

    L’attribut MF_MPEG4SINK_SPSPPS_PASSTHROUGH dans le récepteur MPEG-4 est défini pour permettre aux SPS et PPS d’être enregistrés avec des exemples d’entrée (données vidéo H.264). Les clips MP4 produits peuvent être lus par la source MPEG-4 de Windows 7 et d’autres.

  • SPS et PPS peuvent être extraits d’exemples d’entrée dans le récepteur MPEG-4.

    Lorsque SPS et PPS ne sont pas définis via MF_MT_MPEG_SEQUENCE_HEADER sur le type de média d’entrée du récepteur MPEG-4, le récepteur MPEG-4 tente d’extraire SPS et PPS des exemples d’entrée. Le récepteur MPEG-4 ignore tous les exemples d’entrée jusqu’à ce qu’il trouve les premiers SPS et PPS, car les exemples d’entrée sans SPS et PPS ne peuvent pas être décodés.

  • Les informations 3D de l’enregistrement de configuration AVC sont prises en charge pour le format MP4 non fragmenté.

  • La longueur de l’unité NAL est exposée pour les exemples compressés H.264 afin d’optimiser le décodage DXVA VLD H.264.

    La source MPEG-4 définit MF_NALU_LENGTH_SET sur le type de média de sortie de MFVideoFormat_H264 ou de MFVideoFormat_h264. Elle définit l’objet blob de MF_NALU_LENGTH_INFORMATION sur chaque exemple de sortie, avec une longueur d’unité NAL de quatre octets pour différentes unités NAL dans un exemple compressé.

  • Prise en charge ajoutée pour l’audio MPEG2 ADTS dans la source MP4.

Configuration requise

Condition requise Value
Client minimal pris en charge
Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge
Windows Server 2008 R2 [applications de bureau uniquement]

Voir aussi

Sources multimédias et récepteurs

Récepteurs multimédias

Prise en charge de MPEG-4 dans Media Foundation

Formats multimédias pris en charge dans Media Foundation