Freigeben über


MPEG-4-Dateiquelle

Die MPEG-4-Dateiquelle analysiert MP4- und 3GPP-Dateien. Weitere Informationen zum MP4-Dateiformat finden Sie in den folgenden Standarddokumenten:

  • ISO/IEC 14496-12: Informationstechnologie -- Codieren von audiovisuellen Objekten -- Teil 12: ISO Base Media File Format
  • ISO/IEC 14496-14: Informationstechnologie -- Codieren von audiovisuellen Objekten -- Teil 14: MP4-Dateiformat

Anmerkung

(Diese Ressourcen sind in einigen Sprachen und Ländern möglicherweise nicht verfügbar.)

 

Die MPEG-4-Dateiquelle decodiert die Audio-/Videodaten in der Datei nicht.

Dieses Thema enthält die folgenden Abschnitte:

Dateierweiterungen und MIME-Typen

Die MPEG-4-Dateiquelle ist die Standardmedienquelle für die folgenden Dateinamenerweiterungen.

Dateiendung Beschreibung
3g2 3GPP2
.3gp 3GPP
3gp2 3GPP2
.3gpp 3GPP
.m4a MPEG-4-Audio
.m4v MPEG-4-Video
.Mov Apple QuickTime-Film
.mp4 MPEG-4-Audio oder -Video
MP4v MPEG-4-Video

 

Es ist auch die Standardmedienquelle für die folgenden MIME-Typen.

MIME-Typ Beschreibung
audio/3gpp 3GPP-Audio
audio/3gpp2 3GPP2-Audio
audio/mp4 MPEG-4-Audio
Video/3gpp 3GPP-Video
Video/3gpp2 3GPP2-Video
Video/mp4 MPEG-4-Video

 

Medientypen

MP4 ist ein erweiterbares Containerformat. Die MP4-Spezifikation definiert keine feste Struktur zum Beschreiben von Medientypen in einem MP4-Container. Stattdessen wird eine Objekthierarchie definiert, mit der benutzerdefinierte Strukturen für jedes Format definiert werden können. Die Formatbeschreibung wird im Beispielbeschreibungsfeld ('stsd') für diesen Datenstrom gespeichert. Das Beispielbeschreibungsfeld enthält eine Liste mit Beispieleinträgen. Für jeden Beispieleintrag definiert ein 4-Byte-Code, ähnlich einem FOURCC, die Formatstruktur.

Diese Erweiterbarkeit bedeutet, dass die MPEG-4-Dateiquelle nicht jede mögliche Formatbeschreibung erkennen kann. Stattdessen wird beim Erstellen von Medientypen für die Datenströme ein zweistufiger Ansatz verwendet. Mindestens jeder Medientyp enthält die folgenden Attribute.

Attribut Beschreibung
MF_MT_MAJOR_TYPE Gleich MFMediaType_Audio oder MFMediaType_Video.
MF_MT_SUBTYPE Gibt den Datenstromuntertyp an.
MF_MT_MPEG4_SAMPLE_DESCRIPTION Enthält das vollständige Beispielbeschreibungsfeld als binäres Blob.
MF_MT_MPEG4_CURRENT_SAMPLE_ENTRY Gibt den aktuellen Eintrag im Beispielbeschreibungsfeld an.

 

Die MPEG-4-Dateiquelle erkennt einige Beispieleintragstypen. Für diese Einträge kann die Formatstruktur analysiert und ein vollständiger Medientyp mit zusätzlichen Attributen erstellt werden, die die Formatdetails beschreiben. Siehe Medientypattribute.

Die MPEG-4-Dateiquelle kann die folgenden Beispieleinträge analysieren.

Beispieleintragscode Haupttyp Subtyp Beschreibung Notizen
"alaw" Audio WAVE_FORMAT_ALAW A-Law Coding
'jpeg' Video MFVideoFormat_MJPG Photo-JPEG Stream Das QuickTime-Containerformat unterstützt auch Motion JPEG-Streams mit "mjpa"- oder "mjpb"-Einträgen, die MPEG-4-Dateiquelle stellt jedoch keinen vollständigen Medientyp für diese Typen bereit.
'avc1' Video MFVideoFormat_H264 H.264-Video
'mp4a' Audio MFAudioFormat_AAC
MFAudioFormat_MP3
AAC oder MP3 Der Eintrag "mp4a" kann andere MPEG-Audioformate beschreiben, aber die MPEG-4-Dateiquelle analysiert die Formatstruktur nicht.
'mp4v' Video MFVideoFormat_M4S2
MFVideoFormat_MP4V
MPEG-4 Teil 2 MFVideoFormat_M4S2 wird für MPEG-4 Teil 2 Simple Profile verwendet.
MFVideoFormat_MP4V wird für alle anderen MPEG-4 Teil 2-Profile verwendet, einschließlich Advanced Simple Profile.
"raw" Audio MFAudioFormat_PCM 8-Bit PCM-Audio
"Sowt" Audio MFAudioFormat_PCM 16-Bit-Little-End-PCM-Audio
"Twos" Audio MFAudioFormat_PCM 16-Bit-Big-End-PCM-Audio Die MPEG-4-Dateiquelle konvertiert die Audiodaten in das little-endian-Format.
"ulaw" Audio WAVE_FORMAT_MULAW μ-Rechtscodierung
'vc-1' Video MFVideoFormat_WVC1 VC-1-Video
'NONE' Audio MFAudioFormat_PCM 8-Bit- oder 16-Bit-Big-End-PCM-Audio Die MPEG-4-Dateiquelle konvertiert die Audiodaten in das little-endian-Format.
0x00000000 Audio MFAudioFormat_PCM 8-Bit- oder 16-Bit-Big-End-PCM-Audio Die MPEG-4-Dateiquelle konvertiert die Audiodaten in das little-endian-Format.
0x6d730002 Audio WAVE_FORMAT_ADPCM Adaptive Differentialpulscode-Modulation (ADPCM)
0x6d730011 Audio WAVE_FORMAT_IMA_ADPCM ADPCM

 

Für alle anderen Codes, die in der vorherigen Tabelle nicht angezeigt werden, legt die MPEG-4-Dateiquelle den Untertyp wie folgt fest:

  1. Untertyp = MFMPEG4Format_Base
  2. Untertyp. Data1 = Beispieleintragscode

Für Codes, die nicht in der Tabelle angezeigt werden, muss ein Decoder das attribut MF_MT_MPEG4_SAMPLE_DESCRIPTION verwenden, um das Beispielbeschreibungsfeld zu analysieren.

Eine Liste der Beispieleintragscodes und Links zu relevanten Spezifikationen finden Sie auf der website "MP4"-Registrierungsstelle.

Begrenzungen

Die MPEG-4-Dateiquelle unterstützt nicht die folgenden Features von MP4-Dateien:

  • Externe Spuren.
  • Filmfragmente ('moof' oder 'mfra'). "moof" wird in Windows 8 unterstützt.
  • Gestreamte Präsentationen. Die MPEG-4-Dateiquelle ignoriert automatisch Hinweisspuren.
  • Suchen nach SMPTE-Zeitcode.
  • Komprimierte Atome ('cmov').

Nur Video- und Audiodatenströme werden unterstützt. Alle Spuren, die andere Datenstromtypen enthalten, werden im Hintergrund ignoriert. Mediendaten müssen in "mdat"-Atomen platziert werden.

Wenn die Ergänzung für Plattformupdates für Windows Vista installiert ist, ist die MPEG-4-Dateiquelle unter Windows Vista verfügbar, ist jedoch nur unter Windows Vista über die Source Readerverfügbar.

Windows 8-Updates für MPEG-4-Quelle und Sink

  • Drehungs-Lese- und Schreibunterstützung, die in Windows 8 MPEG-4-Quelle und -Spüle hinzugefügt wurde. Dies wird in der Windows 7 MPEG-4-Quelle und -Spüle nicht unterstützt.

    MPEG-4-Quelle liest den Drehwinkel für eine aktive Videospur als Summe des Drehwinkels von "mvhd" und von "tkhd".

    Microsoft MPEG-4 Sink schreibt den Drehwinkel in 'tkhd', schreibt aber 0 Grad (Identitätsmatrix) in 'mvhd'. Hinweis: Microsoft MPEG-4-Spüle unterstützt nur einzelne Videospuren.

    IPropertyStore liest den Drehwinkel nur für die erste Videospur als Summe des Drehwinkels von "mvhd" und von "tkhd".

    IPropertyStore schreibt den Drehwinkel nur für die erste Videospur in 'tkhd', nachdem der Drehwinkel gemäß dem Drehwinkel in "mvhd" angepasst wird, sofern vorhanden.

  • Filmfragmente ('moof') werden in Windows 8 MPEG-4-Quelle und Sink unterstützt, aber "mfra" ist nicht.

  • H.263 wird in windows 8 MPEG-4-Quelle unterstützt.

    MPEG-4-Quelle ordnet jetzt zwei Fourccs von 'h263' und 's263' im MPEG-4-Dateiformat dem Medientyp von MFVideoFormat_H263zu.

  • Weitere Viercc-Unterstützung für MJPEG in Windows 8 MPEG-4-Quelle hinzugefügt.

    MPEG-4-Quellzuordnungen von "dmb1" dem Medientyp MFVideoFormat_MJPG.

  • Furigana-Metadatenunterstützung, die in der Windows 8 MPEG-4-Quelle hinzugefügt wurde.

    MPEG-4-Quelle liest Furigana-Metadaten aus 'soal', 'soar', 'soaa', 'sonm' und 'soco'. IPropertyStore liest Furignana-Metadaten über den Satz der entsprechenden PKEYs.

    Die folgende Tabelle zeigt die Zuordnung zwischen dem shell (kanonischen Namen), dem Eigenschaftsschlüssel und der Box-/Tag-ID im MPEG-4-Dateiformat.

    Feld Eigenschaftsschlüssel Tag-/Feld-ID
    System.Music.AlbumTitleSortOverride PKEY_Music_AlbumTitleSortOverride soal
    System.Music.ArtistSortOverride PKEY_Music_ArtistSortOverride aufsteigen
    System.Music.AlbumArtistSortOverride PKEY_Music_AlbumArtistSortOverride soaa
    System.TitleSortOverride PKEY-_TitleSortOverride Sonm
    System.Music.ComposerSortOverride PKEY_Music_ComposerSortOverride Soco

     

  • Stereo-3D-Atom-Unterstützung in Windows 8 MPEG-4-Quelle hinzugefügt.

  • AC3- und DD+-Unterstützung in Windows 8 MPEG-4-Quelle und Spüle hinzugefügt.

  • Dateien, die größer als 4 GIGABYTE (GB) sind, werden in Windows 8 MPEG-4-Sink für nicht fragmentale MP4 unterstützt.

  • Scrubbing wurde in der Windows 8 MPEG-4-Quelle optimiert.

    Um die Latenz zu verringern, werden Informationen für die beiden nächstgelegenen Keyframes für eine bestimmte Suchposition über IMFSeekInfo::GetNearestKeyFramesverfügbar gemacht. Da der Keyframe keine abhängigen Frames enthält, wird der Frame nach dem Decodieren nur eines Frames dargestellt. Verwenden Sie IMFGetService::GetService, um diese Schnittstelle über die Medienquelle, Pipeline oder Anwendung abzurufen.

    Legen Sie die Rate in mpeg-4-Quelle auf Null fest. Wenn sich die Pipeline im Scrubbingmodus befindet, ist die Rate null.

  • SPS und PPS können in Beispieldaten in MPEG-4-Spüle gespeichert werden.

    MF_MPEG4SINK_SPSPPS_PASSTHROUGH Attribut auf MPEG-4-Spüle ist definiert, damit SPS und PPS zusammen mit Eingabebeispielen (H.264-Videodaten) gespeichert werden können. Die produzierten MP4-Clips können von Windows 7 MPEG-4-Quelle und anderen wiedergegeben werden.

  • SPS und PPS können aus Eingabebeispielen in MPEG-4-Spüle extrahiert werden.

    Wenn SPS und PPS nicht über MF_MT_MPEG_SEQUENCE_HEADER auf den Eingabemedientyp der MPEG-4-Spüle festgelegt werden, versucht MPEG-4-Sink, SPS und PPS aus Eingabebeispielen zu extrahieren. MPEG-4-Spüle ignoriert alle Eingabebeispiele, bis sie das erste SPS und PPS findet, da alle Eingabebeispiele ohne SPS und PPS nicht decodiert werden können.

  • 3D-Informationen in AVC-Konfigurationsdatensatz werden für nicht fragmentierte MP4 unterstützt.

  • DIE NALU-Länge ist für H.264 komprimierte Proben verfügbar, um die H.264 VLD DXVA-Decodierung zu optimieren.

    MPEG-4-Quelle legt MF_NALU_LENGTH_SET für den Ausgabemedientyp MFVideoFormat_H264 oder MFVideoFormat_h264fest. Es legt den Blob von MF_NALU_LENGTH_INFORMATION für jedes Ausgabebeispiel mit vier Byte NALU-Länge für verschiedene NALU in einem komprimierten Beispiel fest.

  • Unterstützung für MPEG2 ADTS-Audio in MP4-Quelle hinzugefügt.

Medienquellen und Senken

MPEG-4-Unterstützung in Media Foundation

Unterstützte Medienformate in Media Foundation