Udostępnij przez


Źródło pliku MPEG-4

Źródło pliku MPEG-4 analizuje pliki MP4 i 3GPP. Aby uzyskać więcej informacji na temat formatu pliku MP4, zapoznaj się z następującymi dokumentami dotyczącymi standardów:

  • ISO/IEC 14496-12: Technologia informacyjna - Kodowanie obiektów audio-wizualnych - Część 12: Format plików nośników podstawowych ISO
  • ISO/IEC 14496-14: Technologia informacyjna - Kodowanie obiektów audio-wizualnych - Część 14: Format pliku MP4

Nuta

(Te zasoby mogą nie być dostępne w niektórych językach i krajach).

 

Źródło pliku MPEG-4 nie dekoduje danych audio/wideo w pliku.

Ten temat zawiera następujące sekcje:

Rozszerzenia plików i typy MIME

Źródło pliku MPEG-4 jest domyślnym źródłem multimediów dla następujących rozszerzeń nazw plików.

Formatem Opis
.3g2 3GPP2
.3gp 3GPP
.3gp2 3GPP2
.3gpp 3GPP
.m4a MPEG-4 audio
.m4v Wideo MPEG-4
.Mov Apple QuickTime Movie
.mp4 MPEG-4 audio lub wideo
.mp4v Wideo MPEG-4

 

Jest to również domyślne źródło multimediów dla następujących typów MIME.

Typ MIME Opis
audio/3gpp Dźwięk 3GPP
audio/3gpp2 Dźwięk 3GPP2
audio/mp4 MPEG-4 audio
wideo/3gpp Wideo 3GPP
wideo/3gpp2 Wideo 3GPP2
wideo/mp4 Wideo MPEG-4

 

Typy multimediów

MP4 to rozszerzalny format kontenera. Specyfikacja MP4 nie definiuje stałej struktury opisującej typy multimediów w kontenerze MP4. Zamiast tego definiuje hierarchię obiektów, która umożliwia definiowanie struktur niestandardowych dla każdego formatu. Opis formatu jest przechowywany w polu opisu przykładowego ('stsd') dla tego strumienia. Przykładowe pole opisu zawiera listę przykładowych wpisów. Dla każdego przykładowego wpisu kod 4-bajtowy, podobny do FOURCC, definiuje strukturę formatu.

Ta rozszerzalność oznacza, że źródło plików MPEG-4 nie może rozpoznać każdego możliwego opisu formatu. Zamiast tego jest to podejście dwuwarstwowe podczas tworzenia typów multimediów dla strumieni. Co najmniej każdy typ nośnika zawiera następujące atrybuty.

Atrybut Opis
MF_MT_MAJOR_TYPE Równe MFMediaType_Audio lub MFMediaType_Video.
MF_MT_SUBTYPE Określa podtyp strumienia.
MF_MT_MPEG4_SAMPLE_DESCRIPTION Zawiera pełne pole opisu przykładu jako binarny obiekt blob.
MF_MT_MPEG4_CURRENT_SAMPLE_ENTRY Określa bieżący wpis w polu opisu przykładu.

 

Źródło pliku MPEG-4 rozpoznaje niektóre przykładowe typy pozycji. W przypadku tych wpisów może przeanalizować strukturę formatu i utworzyć pełny typ nośnika z dodatkowymi atrybutami, które opisują szczegóły formatu. Zobacz atrybuty typu nośnika .

Źródło pliku MPEG-4 może przeanalizować następujące przykładowe wpisy.

Przykładowy kod wpisu Typ główny Podtypu Opis Notatki
"alaw" Dźwięk WAVE_FORMAT_ALAW Kodowanie z prawem
"jpeg" Wideo MFVideoFormat_MJPG strumień Photo-JPEG Format kontenera QuickTime obsługuje również strumienie motion JPEG z wpisami "mjpa" lub "mjpb", ale źródło pliku MPEG-4 nie zapewnia kompletnego typu nośnika dla tych typów.
"avc1" Wideo MFVideoFormat_H264 Wideo H.264
"mp4a" Dźwięk MFAudioFormat_AAC
MFAudioFormat_MP3
AAC lub MP3 Wpis "mp4a" może opisać inne formaty audio MPEG, ale źródło pliku MPEG-4 nie analizuje struktury formatu.
"mp4v" Wideo MFVideoFormat_M4S2
MFVideoFormat_MP4V
MPEG-4, część 2 MFVideoFormat_M4S2 jest używany dla MPEG-4 część 2 Simple Profile.
MFVideoFormat_MP4V jest używany dla wszystkich innych profilów MPEG-4 część 2, w tym Advanced Simple Profile.
"nieprzetworzone" Dźwięk MFAudioFormat_PCM 8-bitowy dźwięk PCM
"sowt" Dźwięk MFAudioFormat_PCM 16-bitowy dźwięk PCM
"Dwa" Dźwięk MFAudioFormat_PCM 16-bitowy dźwięk PCM big-endian Źródło pliku MPEG-4 konwertuje dane audio na format little-endian.
"Ulaw" Dźwięk WAVE_FORMAT_MULAW kodowanie μ-law
"vc-1" Wideo MFVideoFormat_WVC1 Wideo VC-1
"NONE" Dźwięk MFAudioFormat_PCM Dźwięk 8-bitowy lub 16-bitowy big-endian PCM Źródło pliku MPEG-4 konwertuje dane audio na format little-endian.
0x00000000 Dźwięk MFAudioFormat_PCM Dźwięk 8-bitowy lub 16-bitowy big-endian PCM Źródło pliku MPEG-4 konwertuje dane audio na format little-endian.
0x6d730002 Dźwięk WAVE_FORMAT_ADPCM Adaptacyjna modulacja kodu impulsu różnicowego (ADPCM)
0x6d730011 Dźwięk WAVE_FORMAT_IMA_ADPCM ADPCM

 

W przypadku innych kodów, które nie zostały pokazane w poprzedniej tabeli, źródło pliku MPEG-4 ustawia podtyp w następujący sposób:

  1. podtyp = MFMPEG4Format_Base
  2. podtyp. Data1 = przykładowy kod wpisu

W przypadku kodów, które nie są wyświetlane w tabeli, dekoder musi użyć atrybutu MF_MT_MPEG4_SAMPLE_DESCRIPTION, aby przeanalizować przykładowe pole opisu.

Aby uzyskać listę przykładowych kodów wpisów i linki do odpowiednich specyfikacji, zobacz witrynę internetową "MP4" Urząd rejestracji.

Ograniczenia

Źródło plików MPEG-4 nie obsługuje następujących funkcji plików MP4:

  • Ścieżki zewnętrzne.
  • Fragmenty filmu (pola moof lub "mfra"). Opcja "moof" jest obsługiwana w systemie Windows 8.
  • Prezentacje przesyłane strumieniowo. Źródło pliku MPEG-4 dyskretnie ignoruje ścieżki wskazówek.
  • Wyszukiwanie przez kod czasu SMPTE.
  • Skompresowane atomy ('cmov').

Obsługiwane są tylko strumienie wideo i audio. Wszystkie ścieżki zawierające inne typy strumieni są ignorowane w trybie dyskretnym. Dane multimedialne muszą być umieszczane wewnątrz atomów "mdat".

Jeśli dodatek aktualizacji platformy dla systemu Windows Vista jest zainstalowany, źródło plików MPEG-4 jest dostępne w systemie Windows Vista, ale jest dostępne tylko w systemie Windows Vista przy użyciu Source Reader.

Aktualizacje systemu Windows 8 do źródła i ujścia MPEG-4

  • Obsługa odczytu i zapisu w systemie Windows 8 MPEG-4 źródła i ujścia. Nie jest to obsługiwane w źródle i ujściu systemu Windows 7 MPEG-4.

    Źródło MPEG-4 odczytuje kąt obrotu dla aktywnego toru wideo jako sumę kąta obrotu z "mvhd" i z "tkhd".

    Ujście MICROSOFT MPEG-4 zapisuje kąt obrotu w 'tkhd', ale zapisuje macierz 0 stopni (tożsamość) w 'mvhd'. Uwaga: ujście MPEG-4 firmy Microsoft obsługuje tylko pojedyncze ścieżki wideo.

    IPropertyStore odczytuje kąt obrotu tylko dla pierwszego toru wideo jako sumę kąta obrotu z "mvhd" i z "tkhd".

    IPropertyStore zapisuje kąt obrotu tylko dla pierwszego toru wideo w "tkhd" po kąt obrotu jest dostosowywany zgodnie z kątem obrotu w "mvhd", jeśli istnieje.

  • Fragmenty filmu ('moof') są obsługiwane w systemie Windows 8 MPEG-4 źródła i ujścia, ale "mfra" nie jest.

  • H.263 jest obsługiwany w źródle MPEG-4 systemu Windows 8.

    Źródło MPEG-4 mapuje teraz dwa czterycc 'h263' i 's263' w formacie pliku MPEG-4 do typu nośnika MFVideoFormat_H263.

  • Dodano obsługę więcej czterechcc dla MJPEG w źródle MPEG-4 systemu Windows 8.

    Mapy źródłowe MPEG-4 foucc "dmb1" do typu nośnika MFVideoFormat_MJPG.

  • Dodano obsługę metadanych Furigana w źródle MPEG-4 systemu Windows 8.

    Źródło MPEG-4 odczytuje metadane Furigana z "soal", "szyb", "soaa", "sonm" i "soco". IPropertyStore odczytuje metadane Furignana za pomocą zestawu odpowiednich PKEYs.

    W poniższej tabeli przedstawiono mapowanie między nazwą kanoniczną powłoki, kluczem właściwości i identyfikatorem pola/tagu w formacie pliku MPEG-4.

    Pole Klucz właściwości Identyfikator tagu/pola
    System.Music.AlbumTitleSortOverride PKEY_Music_AlbumTitleSortOverride soal
    System.Music.ArtistSortOverride PKEY_Music_ArtistSortOverride szybować
    System.Music.AlbumArtistSortOverride PKEY_Music_AlbumArtistSortOverride soaa
    System.TitleSortOverride _TitleSortOverride PKEY sonm
    System.Music.ComposerSortOverride PKEY_Music_ComposerSortOverride Soco

     

  • Obsługa atomów 3D stereo dodana w źródle MPEG-4 systemu Windows 8.

  • Obsługa AC3 i DD+ dodana w źródle i ujściu systemu Windows 8 MPEG-4.

  • Pliki większe niż 4 gigabajty (GB) są obsługiwane w ujściu MPEG-4 systemu Windows 8 dla niefragmentalnego MP4.

  • Kontrola została zoptymalizowana w źródle MPEG-4 systemu Windows 8.

    Aby zmniejszyć opóźnienie, informacje dotyczące dwóch najbliższych klatek kluczowych dla określonej pozycji wyszukiwania są widoczne za pośrednictwem IMFSeekInfo::GetNearestKeyFrames. Ponieważ ramka klucza nie ma ramek zależnych, przedstawia ramkę po dekodowaniu tylko jednej ramki. Użyj IMFGetService::GetService, aby uzyskać ten interfejs za pośrednictwem źródła multimediów, potoku lub aplikacji.

    Ustaw szybkość na zero w źródle MPEG-4. Gdy potok jest w trybie czyszczenia, szybkość wynosi zero.

  • Usługi SPS i PPS można przechowywać w przykładowych danych w ujściu MPEG-4.

    MF_MPEG4SINK_SPSPPS_PASSTHROUGH atrybut ujścia MPEG-4 jest zdefiniowany w celu umożliwienia zapisywania plików SPS i PPS razem z przykładami wejściowymi (dane wideo H.264). Produkowane klipy mp4 są odtwarzane przez windows 7 MPEG-4 źródło i inne.

  • Usługi SPS i PPS można wyodrębnić z próbek wejściowych w ujściu MPEG-4.

    Jeśli spS i PPS nie są ustawione przez MF_MT_MPEG_SEQUENCE_HEADER na nośniku wejściowym typu ujścia MPEG-4, ujście MPEG-4 spróbuje wyodrębnić SPS i PPS z próbek wejściowych. Ujście MPEG-4 ignoruje wszystkie próbki danych wejściowych, dopóki nie znajdzie pierwszego dodatku SPS i PPS, ponieważ wszystkie próbki wejściowe bez usług SPS i PPS nie są w stanie dekodować.

  • Informacje 3D w rekordzie konfiguracji AVC są obsługiwane w przypadku niefragmentalnych plików MP4.

  • Długość NALU jest uwidoczniona dla skompresowanych próbek H.264 w celu zoptymalizowania dekodowania DXVA H.264 VLD.

    Zestawy źródłowe MPEG-4 MF_NALU_LENGTH_SET na nośniku wyjściowym typu MFVideoFormat_H264 lub MFVideoFormat_h264. Ustawia obiekt blob MF_NALU_LENGTH_INFORMATION na każdym przykładzie danych wyjściowych z cztero bajtową długością NALU dla różnych plików NALU w jednym skompresowanym przykładzie.

  • Dodano obsługę dźwięku MPEG2 ADTS w źródle MP4.

źródła i ujścia multimediów

mpeg-4 support in Media Foundation

obsługiwane formaty multimediów w programie Media Foundation