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 : Technologie de l’information -- Codage d’objets audio-visuels -- Partie 12 : Format de fichier multimédia de base ISO
  • ISO/IEC 14496-14 : Technologie de l’information -- Codage d’objets audio-visuels -- Partie 14 : Format de fichier MP4

Notes

(Ces ressources peuvent ne pas être disponibles dans certaines langues et 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 supports dans un conteneur MP4. Au lieu de cela, il définit une hiérarchie d’objets qui permet de définir des structures personnalisées pour chaque format. La description de format est stockée dans la zone d’exemple de description ('stsd') pour chaque flux. La zone de description de l’exemple contient une liste d’exemples d’entrées. Pour chaque exemple d’entrée, un code de 4 octets, similaire à un FOURCC, définit la structure de 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 pour 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 sous la forme d’un objet blob binaire.
MF_MT_MPEG4_CURRENT_SAMPLE_ENTRY Spécifie l’exemple d’entrées dans la zone de description de l’exemple 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 taux de bits moyen peuvent ne pas être connues à l’avance. Dans ce cas, vous pouvez mettre à jour le type de média à l’aide de l’interface IMFMediaTypeHandler sur le récepteur de fichiers MPEG-4. Cette opération doit être effectuée 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’un changement de format dynamique. Pour plus d’informations, consultez Modifications de format dynamique.

Vidéo H.264/AVC

Le récepteur de fichiers MPEG-4 prend en charge la version du flux AVC qui a un flux vidéo élémentaire, avec un jeu de paramètres de séquence (SPS) et des NAL (PPS) définis dans l’exemple de zone de description, tel que défini dans la partie 15 de la section 5.1 de la partie 15 de la norme ISO/IEC 14496. Le récepteur de fichiers ne prend pas en charge l’autre méthode de stockage des NALUS 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 doit être fourni avec les 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 NALUs SPS et PPS délimités par des codes de démarrage de 3 octets ou de 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 a 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 NALUs doivent être délimités par des codes de début de 3 octets ou de 4 octets.
  • Les exemples multimédias doivent contenir toutes les NAL de segment et de données qui correspondent à une seule heure de présentation.
  • Lorsque vous écrivez des images B dans un fichier MP4, vous devez définir à la fois l’horodatage de la présentation et l’horodatage de décodage. Si le flux a un frame B et que l’horodatage de décodage n’est pas défini, l’enregistreur MP4 voit le délai d’attente reculer et supprimera l’image.

Audio AAC

Pour l’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 Les types de média 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 représente 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(), telles que définies par ISO/IEC 14496-3. Si l’attribut MF_MT_USER_DATA n’est pas présent, le flux est supposé être un 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 et l’attribut doit contenir les données AudioSpecificConfig().

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

MP3 Audio

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. (Voir types de médias audio.)

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

Limites

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

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

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

    La source MPEG-4 lit l’angle de rotation d’une piste vidéo active comme la 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 prend uniquement en charge une seule piste vidéo.

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

    IPropertyStore écrit l’angle de rotation 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 Windows 8 source et récepteur MPEG-4, mais 'mfra' n’est pas.

  • H.263 est pris en charge dans Windows 8 source MPEG-4.

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

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

    La source MPEG-4 mappe foucc de 'dmb1' au type de média de MFVideoFormat_MJPG.

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

    La source MPEG-4 lit les métadonnées Furigana de « soal », « soar », « soaa », « sonm » et « soco ». IPropertyStore lit les métadonnées Furignaca par le biais de l’ensemble de PKEYs correspondants.

    Le tableau suivant montre 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
    Système. Musique. AlbumTitleSortOverride PKEY_Music_AlbumTitleSortOverride soal
    Système. Musique. ArtistSortOverride PKEY_Music_ArtistSortOverride Soar
    Système. Musique. AlbumArtistSortOverride PKEY_Music_AlbumArtistSortOverride soaa
    System.TitleSortOverride PKEY _TitleSortOverride sonm
    Système. Musique. ComposerSortOverride PKEY_Music_ComposerSortOverride Soco

     

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

  • Prise en charge ac3 et DD+ ajoutée dans Windows 8 source et récepteur MPEG-4.

  • Les fichiers de plus de 4 Go sont pris en charge dans Windows 8 récepteur MPEG-4 pour mp4 non fragmentaire.

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

    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 le décodage d’une seule image. Utilisez IMFGetService::GetService pour obtenir cette interface via la source multimédia, le pipeline ou l’application.

    Définissez le taux sur zéro dans la source MPEG-4. Lorsque le pipeline est en mode de nettoyage, le taux est égal à zéro.

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

    MF_MPEG4SINK_SPSPPS_PASSTHROUGH attribut sur le récepteur MPEG-4 est défini pour permettre l’enregistrement des spS et PPS avec des exemples d’entrée (données vidéo H.264). Les clips mp4 produits sont en lecture par Windows 7 MPEG-4 source 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 support d’entrée du récepteur MPEG-4, le récepteur MPEG-4 tente d’extraire SPS et PPS à partir d’exemples d’entrée. Le récepteur MPEG-4 ignore tous les exemples d’entrée jusqu’à ce qu’il trouve le premier SPS et PPS, car tous les exemples d’entrée sans SPS et PPS ne sont pas décodants.

  • Les informations 3D dans l’enregistrement de configuration AVC sont prises en charge pour les mp4 non fragmentaires.

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

    Jeux de sources MPEG-4 MF_NALU_LENGTH_SET sur le type de support de sortie de MFVideoFormat_H264 ou de MFVideoFormat_h264. Il définit l’objet blob de MF_NALU_LENGTH_INFORMATION sur chaque exemple de sortie, avec une longueur NALU de quatre octets pour différents NALU dans un exemple compressé.

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

Spécifications

Condition requise Valeur
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 et récepteurs multimédias

Récepteurs multimédias

Prise en charge de MPEG-4 dans Media Foundation

Formats multimédias pris en charge dans Media Foundation