Delen via


MPEG-4-bestandsbron

De MPEG-4-bestandsbron parseert MP4- en 3GPP-bestanden. Raadpleeg de volgende standaardendocumenten voor meer informatie over de MP4-bestandsindeling:

  • ISO/IEC 14496-12: Informatietechnologie -- Coderen van audiovisual objecten -- Deel 12: ISO Base Media File Format
  • ISO/IEC 14496-14: Information technology -- Coding of audio-visual objects -- Part 14: MP4 File Format

Notitie

(Deze resources zijn mogelijk niet beschikbaar in sommige talen en landen.)

 

De MPEG-4-bestandsbron decodert de audio-/videogegevens in het bestand niet.

Dit onderwerp bevat de volgende secties:

Bestandsextensies en MIME-typen

De MPEG-4-bestandsbron is de standaardmediabron voor de volgende bestandsnaamextensies.

Bestandsextensie Beschrijving
.3g2 3GPP2
.3gp 3GPP
.3gp2 3GPP2
.3gpp 3GPP
.m4a MPEG-4-audio
.m4v MPEG-4-video
.Mov Apple QuickTime-film
.mp4 MPEG-4-audio of -video
.mp4v MPEG-4-video

 

Het is ook de standaardmediabron voor de volgende MIME-typen.

MIME-type Beschrijving
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

 

Mediatypen

MP4 is een uitbreidbare containerindeling. De MP4-specificatie definieert geen vaste structuur voor het beschrijven van mediatypen in een MP4-container. In plaats daarvan definieert het een objecthiërarchie waarmee aangepaste structuren voor elke indeling kunnen worden gedefinieerd. De indelingsbeschrijving wordt opgeslagen in het voorbeeldbeschrijvingsvak ('stsd') voor die stream. Het voorbeeldbeschrijvingsvak bevat een lijst met voorbeeldvermeldingen. Voor elke voorbeeldvermelding definieert een 4-bytecode, vergelijkbaar met een FOURCC, de indelingsstructuur.

Deze uitbreidbaarheid betekent dat de MPEG-4-bestandsbron elke mogelijke indelingsbeschrijving niet kan herkennen. In plaats daarvan is er een benadering met twee lagen nodig bij het maken van mediatypen voor de streams. Minimaal bevat elk mediatype de volgende kenmerken.

Attribuut Beschrijving
MF_MT_MAJOR_TYPE Gelijk aan MFMediaType_Audio of MFMediaType_Video.
MF_MT_SUBTYPE Hiermee geeft u het streamsubtype op.
MF_MT_MPEG4_SAMPLE_DESCRIPTION Bevat het volledige voorbeeldbeschrijvingsvak als een binaire blob.
MF_MT_MPEG4_CURRENT_SAMPLE_ENTRY Hiermee geeft u de huidige vermelding in het voorbeeldbeschrijvingsvak.

 

De MPEG-4-bestandsbron herkent enkele voorbeeldinvoertypen. Voor deze vermeldingen kan de indelingsstructuur worden geparseerd en een volledig mediatype worden gemaakt, met aanvullende kenmerken die de opmaakdetails beschrijven. Zie Kenmerken van mediatype.

De MPEG-4-bestandsbron kan de volgende voorbeeldvermeldingen parseren.

Voorbeeldinvoercode Primair type Subtype Beschrijving Notities
"alaw" Audio WAVE_FORMAT_ALAW A-law codering
'jpeg' Video MFVideoFormat_MJPG Photo-JPEG stream De QuickTime-containerindeling biedt ook ondersteuning voor motion JPEG-streams met mjpa- of mjpb-vermeldingen, maar de MPEG-4-bestandsbron biedt geen volledig mediatype voor deze typen.
'avc1' Video MFVideoFormat_H264 H.264 video
'mp4a' Audio MFAudioFormat_AAC
MFAudioFormat_MP3
AAC of MP3 De mp4a-vermelding kan andere MPEG-audio-indelingen beschrijven, maar de MPEG-4-bestandsbron parseert de indelingsstructuur niet.
'mp4v' Video MFVideoFormat_M4S2
MFVideoFormat_MP4V
MPEG-4 deel 2 MFVideoFormat_M4S2 wordt gebruikt voor MPEG-4 deel 2 Simple Profile.
MFVideoFormat_MP4V wordt gebruikt voor alle andere MPEG-4 deel 2-profielen, waaronder Advanced Simple Profile.
'raw' Audio MFAudioFormat_PCM 8-bits PCM-audio
'sowt' Audio MFAudioFormat_PCM 16-bits pcM-audio
'twos' Audio MFAudioFormat_PCM 16-bits pcM-audio van big-endian De MPEG-4-bestandsbron converteert de audiogegevens naar de little-endian-indeling.
"ulaw" Audio WAVE_FORMAT_MULAW coderen voor μ wetgeving
'vc-1' Video MFVideoFormat_WVC1 VC-1 video
'GEEN' Audio MFAudioFormat_PCM 8-bits of 16-bits pcm-audio van big-endian De MPEG-4-bestandsbron converteert de audiogegevens naar de little-endian-indeling.
0x00000000 Audio MFAudioFormat_PCM 8-bits of 16-bits pcm-audio van big-endian De MPEG-4-bestandsbron converteert de audiogegevens naar de little-endian-indeling.
0x6d730002 Audio WAVE_FORMAT_ADPCM Adaptive Differential Pulse Code Modulation (ADPCM)
0x6d730011 Audio WAVE_FORMAT_IMA_ADPCM ADPCM

 

Voor andere codes die niet in de vorige tabel worden weergegeven, stelt de MPEG-4-bestandsbron het subtype als volgt in:

  1. subtype = MFMPEG4Format_Base
  2. subtype. Data1 = voorbeeldinvoercode

Voor codes die niet in de tabel worden weergegeven, moet een decoder het kenmerk MF_MT_MPEG4_SAMPLE_DESCRIPTION gebruiken om het voorbeeldbeschrijvingsvak te parseren.

Zie de MP4-registratie-instantie website voor een lijst met voorbeeldinvoercodes en koppelingen naar relevante specificaties.

Beperkingen

De MPEG-4-bestandsbron biedt geen ondersteuning voor de volgende functies van MP4-bestanden:

  • Externe sporen.
  • Filmfragmenten ('moof' of 'mfra'-vakken). Moof wordt ondersteund in Windows 8.
  • Gestreamde presentaties. De MPEG-4-bestandsbron negeert op de achtergrond hintsporen.
  • Op zoek naar SMPTE-tijdcode.
  • Gecomprimeerde ('cmov') atomen.

Alleen video- en audiostreams worden ondersteund. Alle nummers die andere stroomtypen bevatten, worden op de achtergrond genegeerd. Mediagegevens moeten in 'mdat'-atomen worden geplaatst.

Als Platform Update Supplement voor Windows Vista is geïnstalleerd, is de MPEG-4-bestandsbron beschikbaar op Windows Vista, maar is alleen toegankelijk op Windows Vista met behulp van de Bronlezer.

Windows 8-updates voor MPEG-4-bron en -sink

  • Ondersteuning voor lees- en schrijfbewerkingen die zijn toegevoegd aan de bron- en sink van Windows 8 MPEG-4. Dit wordt niet ondersteund in de Bron en sink van Windows 7 MPEG-4.

    MPEG-4-bron leest de draaihoek voor een actief videospoor als de som van de draaihoek van 'mvhd' en 'tkhd'.

    Microsoft MPEG-4 sink schrijft de draaihoek in 'tkhd', maar schrijft een matrix van 0 graden (identiteit) in 'mvhd'. Houd er rekening mee dat Microsoft MPEG-4 sink alleen ondersteuning biedt voor één videotrack.

    IPropertyStore leest de draaihoek voor alleen het eerste videospoor als de som van de draaihoek van 'mvhd' en 'tkhd'.

    IPropertyStore schrijft de draaihoek voor alleen het eerste videospoor in 'tkhd' nadat de draaihoek is aangepast aan de draaihoek in 'mvhd', als deze bestaat.

  • Filmfragmenten ('moof') worden ondersteund in de Bron en sink van Windows 8 MPEG-4, maar 'mfra' is dat niet.

  • H.263 wordt ondersteund in windows 8 MPEG-4-bron.

    MPEG-4-bron wijst nu twee fourcc's van 'h263' en 's263' in MPEG-4-bestandsindeling toe aan het mediatype van MFVideoFormat_H263.

  • Meer fourcc-ondersteuning toegevoegd voor MJPEG in Windows 8 MPEG-4-bron.

    MPEG-4 source maps foucc of 'dmb1' aan het mediatype van MFVideoFormat_MJPG.

  • Furigana-metagegevensondersteuning toegevoegd aan de Windows 8 MPEG-4-bron.

    MPEG-4-bron leest furigana-metagegevens uit 'soal', 'soar', 'soaa', 'sonm' en 'soco'. IPropertyStore leest Furignana-metagegevens via de set bijbehorende PKEY's.

    In de volgende tabel ziet u de toewijzing tussen de canonieke naam van de shell, de eigenschapssleutel en de box/tag-id in MPEG-4-bestandsindeling.

    Veld Eigenschapssleutel Tag/box-id
    System.Music.AlbumTitleSortOverride PKEY_Music_AlbumTitleSortOverride soal
    System.Music.ArtistSortOverride PKEY_Music_ArtistSortOverride stijgen
    System.Music.AlbumArtistSortOverride PKEY_Music_AlbumArtistSortOverride soaa
    System.TitleSortOverride PKEY-_TitleSortOverride sonm
    System.Music.ComposerSortOverride PKEY_Music_ComposerSortOverride soco

     

  • Stereo 3D atom-ondersteuning toegevoegd in Windows 8 MPEG-4-bron.

  • AC3- en DD+-ondersteuning toegevoegd in windows 8 MPEG-4-bron en -sink.

  • Bestanden die groter zijn dan 4 gigabyte (GB) worden ondersteund in Windows 8 MPEG-4 sink voor niet-fragmentale MP4.

  • Scrubbing is geoptimaliseerd in windows 8 MPEG-4-bron.

    Om de latentie te verminderen, worden gegevens voor de twee dichtstbijzijnde sleutelframes voor een bepaalde zoekpositie weergegeven via IMFSeekInfo::GetNearestKeyFrames. Omdat het sleutelframe geen afhankelijke frames heeft, wordt het frame weergegeven na het decoderen van slechts één frame. Gebruik IMFGetService::GetService om deze interface te verkrijgen via de mediabron, pijplijn of toepassing.

    Stel de snelheid in op nul in MPEG-4-bron. Wanneer de pijplijn zich in de scrubmodus bevindt, is de snelheid nul.

  • SPS en PPS kunnen worden opgeslagen in voorbeeldgegevens in MPEG-4 sink.

    MF_MPEG4SINK_SPSPPS_PASSTHROUGH kenmerk voor MPEG-4 sink is gedefinieerd om toe te staan dat SPS en PPS samen met invoervoorbeelden (H.264-videogegevens) worden opgeslagen. De geproduceerde mp4-clips kunnen worden afgespeeld door windows 7 MPEG-4-bron en andere.

  • SPS en PPS kunnen worden geëxtraheerd uit invoervoorbeelden in MPEG-4 sink.

    Wanneer SPS en PPS niet zijn ingesteld via MF_MT_MPEG_SEQUENCE_HEADER voor het invoermediatype van de MPEG-4-sink, probeert MPEG-4 sink SPS en PPS te extraheren uit invoervoorbeelden. MPEG-4 sink negeert invoervoorbeelden totdat de eerste SPS en PPS worden gevonden, omdat alle invoervoorbeelden zonder SPS en PPS niet decoderen.

  • 3D-informatie in AVC-configuratierecord wordt ondersteund voor niet-fragmentale MP4.

  • De NALU-lengte wordt weergegeven voor gecomprimeerde H.264-voorbeelden om H.264 VLD DXVA-decodering te optimaliseren.

    MPEG-4-bronsets MF_NALU_LENGTH_SET op het uitvoermediatype van MFVideoFormat_H264 of MFVideoFormat_h264. Hiermee wordt de blob van MF_NALU_LENGTH_INFORMATION op elk uitvoervoorbeeld ingesteld, met een NALU-lengte van vier bytes voor verschillende NALU's in één gecomprimeerd voorbeeld.

  • Ondersteuning toegevoegd voor MPEG2 ADTS-audio in MP4-bron.

mediabronnen en sinks

MPEG-4-ondersteuning in Media Foundation

Ondersteunde media-indelingen in Media Foundation