共用方式為


MPEG-4 檔案來源

MPEG-4 檔案來源會剖析 MP4 和 3GPP 檔案。 如需 MP4 檔案格式的詳細資訊,請參閱下列標準檔:

  • ISO/IEC 14496-12: 資訊技術 -- 音訊視覺物件的編碼 -- 第 12 部分:ISO 基底媒體檔案格式
  • ISO/IEC 14496-14: 資訊技術 -- 音訊視覺物件的編碼 -- 第 14 部分:MP4 檔案格式

注意

(某些語言和國家/地區可能無法使用這些資源。)

 

MPEG-4 檔案來源不會解碼檔案中的音訊/視訊資料。

本主題包含下列幾節:

副檔名和 MIME 類型

MPEG-4 檔案來源是下列副檔名的預設媒體來源。

副檔名 Description
.3g2 3GPP2
.3gp 3GPP
.3gp2 3GPP2
.3gpp 3GPP
.m4a MPEG-4 音訊
.m4v MPEG-4 影片
.mov Apple QuickTime 影片
.mp4 MPEG-4 音訊或視訊
.mp4v MPEG-4 影片

 

這也是下列 MIME 類型的預設媒體來源。

MIME 類型 (MIME type) 描述
audio/3gpp 3GPP 音訊
audio/3gpp2 3GPP2 音訊
audio/mp4 MPEG-4 音訊
video/3gpp 3GPP 影片
video/3gpp2 3GPP2 影片
video/mp4 MPEG-4 影片

 

媒體類型

MP4 是可延伸的容器格式。 MP4 規格不會定義固定結構來描述 MP4 容器中的媒體類型。 相反地,它會定義物件階層,允許為每個格式定義自訂結構。 格式描述會儲存在該資料流程的範例描述 ('stsd') 方塊中。 範例描述方塊包含範例專案的清單。 針對每個範例專案,4 位元組程式碼類似于 FOURCC,會定義格式結構。

此擴充性表示 MPEG-4 檔案來源無法辨識每個可能的格式描述。 相反地,它會在建立資料流程的媒體類型時採用兩層式方法。 每個媒體類型至少都包含下列屬性。

屬性 描述
MF_MT_MAJOR_TYPE 等於 MFMediaType_AudioMFMediaType_Video
MF_MT_SUBTYPE 指定資料流程子類型。
MF_MT_MPEG4_SAMPLE_DESCRIPTION 包含作為二進位 Blob 的完整範例描述方塊。
MF_MT_MPEG4_CURRENT_SAMPLE_ENTRY 指定範例描述方塊中的目前專案。

 

MPEG-4 檔案來源可辨識一些範例專案類型。 針對這些專案,它可以剖析格式結構並建立完整的媒體類型,以及描述格式詳細資料的其他屬性。 請參閱 媒體類型屬性

MPEG-4 檔案來源可以剖析下列範例專案。

範例專案代碼 主要類型 Subtype 描述 附註
'alaw' 音訊 WAVE_FORMAT_ALAW A-law 程式碼撰寫
'jpeg' 影片 MFVideoFormat_MJPG Photo-JPEG 資料流程 QuickTime 容器格式也支援具有 'mjpa' 或 'mjpb' 專案的動作 JPEG 資料流程,但 MPEG-4 檔案來源不提供這些類型的完整媒體類型。
'avc1' 影片 MFVideoFormat_H264 H.264 影片
'mp4a' 音訊 MFAudioFormat_AAC
MFAudioFormat_MP3
AAC 或 MP3 'mp4a' 專案可以描述其他 MPEG 音訊格式,但 MPEG-4 檔案來源不會剖析格式結構。
'mp4v' 影片 MFVideoFormat_M4S2
MFVideoFormat_MP4V
MPEG-4 第 2 部分 MFVideoFormat_M4S2 用於 MPEG-4 第 2 部分簡單設定檔。
MFVideoFormat_MP4V 用於所有其他 MPEG-4 第 2 部分設定檔,包括進階簡單設定檔。
'raw ' 音訊 MFAudioFormat_PCM 8 位 PCM 音訊
'sowt' 音訊 MFAudioFormat_PCM 16 位位元組位元組的 PCM 音訊
'twos' 音訊 MFAudioFormat_PCM 16 位 big-endian PCM 音訊 MPEG-4 檔案來源會將音訊資料轉換為位元組尾格式。
'ulaw' 音訊 WAVE_FORMAT_MULAW μ法程式碼撰寫
'vc-1' 影片 MFVideoFormat_WVC1 VC-1 影片
'NONE' 音訊 MFAudioFormat_PCM 8 位或 16 位 big-endian PCM 音訊 MPEG-4 檔案來源會將音訊資料轉換為位元組尾格式。
0x00000000 音訊 MFAudioFormat_PCM 8 位或 16 位 big-endian PCM 音訊 MPEG-4 檔案來源會將音訊資料轉換為位元組尾格式。
0x6d730002 音訊 WAVE_FORMAT_ADPCM ADPCM (調適性差異脈衝程式碼)
0x6d730011 音訊 WAVE_FORMAT_IMA_ADPCM ADPCM

 

針對上表未顯示的任何其他程式碼,MPEG-4 檔案來源會設定子類型,如下所示:

  1. subtype = MFMPEG4Format_Base
  2. 子類型。Data1 = 範例輸入程式碼

對於資料表中未顯示的程式碼,解碼器必須使用 MF_MT_MPEG4_SAMPLE_DESCRIPTION 屬性來剖析範例描述方塊。

如需範例專案代碼和相關規格的連結清單,請參閱 'MP4' 註冊授權單位 網站。

限制

MPEG-4 檔案來源不支援下列 MP4 檔案功能:

  • 外部曲目。
  • ) ('moof' 或 'mfra' 方塊的電影片段。 Windows 8支援 'moof'。
  • 串流簡報。 MPEG-4 檔案來源會以無訊息方式忽略提示播放軌。
  • 依 SMPTE 時間程式碼搜尋。
  • 壓縮 ('cmov') Atom。

僅支援視訊和音訊串流。 包含其他資料流程類型的任何曲目都會以無訊息方式忽略。 媒體資料必須放在 'mdat' Atom 內。

如果已安裝 Windows Vista 的平臺更新補充,MPEG-4 檔案來源可在 Windows Vista 上使用,但只能使用 來源讀取器在 Windows Vista 上存取。

Windows 8 MPEG-4 來源和接收的更新

  • Windows 8 MPEG-4 來源和接收中新增的旋轉讀取和寫入支援。 Windows 7 MPEG-4 來源和接收不支援此功能。

    MPEG-4 來源會讀取使用中視訊播放軌的旋轉角度,作為從 'mvhd' 和 'tkhd' 旋轉角度的總和。

    Microsoft MPEG-4 接收會在 'tkhd' 中寫入旋轉角度,但在 'mvhd' 中寫入 0 度 (身分識別) 矩陣。 請注意,Microsoft MPEG-4 接收僅支援單一視訊播放軌。

    IPropertyStore 只會讀取第一個視訊播放軌的旋轉角度,做為從 'mvhd' 和 'tkhd' 旋轉角度的總和。

    如果旋轉角度存在,IPropertyStore 只會針對 'tkhd' 中的第一個視訊播放軌寫入旋轉角度。

  • Windows 8 MPEG-4 來源和接收中支援 ('moof') 的電影片段,但 'mfra' 則不支援。

  • Windows 8 MPEG-4 來源支援 H.263。

    MPEG-4 來源現在會將 MPEG-4 檔案格式的兩個四cc 'h263' 和 's263' 對應至 媒體類型的 MFVideoFormat_H263

  • Windows 8 MPEG-4 來源中新增了 MJPEG 的更多 fourcc 支援。

    MPEG-4 來源會將 'dmb1' 的 foucc 對應至 媒體類型的 MFVideoFormat_MJPG

  • Windows 8 MPEG-4 來源中新增的假名中繼資料支援。

    MPEG-4 來源會從 'soal'、'soar'、'soaa'、'sonm' 和 'soco' 讀取假名中繼資料。 IPropertyStore 會透過一組對應的 PKEY 來讀取 Furaulta 中繼資料。

    下表顯示殼層標準名稱、屬性索引鍵和 MPEG-4 檔案格式的方塊/標記識別項之間的對應。

    欄位 屬性索引鍵 標記/方塊識別碼
    System.Music.AlbumTitleSortOverride PKEY_Music_AlbumTitleSortOverride soal
    System.Music.ArtistSortOverride PKEY_Music_ArtistSortOverride 飆升
    System.Music.AlbumArtistSortOverride PKEY_Music_AlbumArtistSortOverride soaa
    System.TitleSortOverride PKEY _TitleSortOverride sonm
    System.Music.ComposerSortOverride PKEY_Music_ComposerSortOverride soco

     

  • Windows 8 MPEG-4 來源中新增的身歷聲 3D Atom 支援。

  • Windows 8 MPEG-4 來源和接收中新增 AC3 和 DD+ 支援。

  • 非片段 MP4 Windows 8 MPEG-4 接收支援大於 4 GB (GB) 的檔案。

  • 清除已在 Windows 8 MPEG-4 來源中優化。

    為了降低延遲,特定搜尋位置的兩個主要畫面格資訊會透過 IMFSeekInfo::GetNearestKeyFrames公開。 因為主要畫面格沒有相依的畫面,所以在解碼後只會顯示一個畫面格。 使用 IMFGetService::GetService 透過媒體來源、管線或應用程式取得此介面。

    將 MPEG-4 來源的速率設定為零。 當管線處於清除模式時,速率為零。

  • SPS 和 PPS 可以儲存在 MPEG-4 接收中的範例資料中。

    MPEG-4 接收上的MF_MPEG4SINK_SPSPPS_PASSTHROUGH屬性定義為允許 SPS 和 PPS 與輸入範例一起儲存, (H.264 視訊資料) 。 產生的 mp4 剪輯可由 Windows 7 MPEG-4 來源和其他專案播放。

  • SPS 和 PPS 可以從 MPEG-4 接收中的輸入範例中擷取。

    當 SPS 和 PPS 未透過 MPEG-4 接收的輸入媒體類型 MF_MT_MPEG_SEQUENCE_HEADER 設定時,MPEG-4 接收會嘗試從輸入範例擷取 SPS 和 PPS。 MPEG-4 接收會忽略任何輸入樣本,直到找到第一個 SPS 和 PPS 為止,因為所有沒有 SPS 和 PPS 的輸入樣本都無法解碼。

  • 非片段 MP4 支援 AVC 組態記錄中的 3D 資訊。

  • NALU 長度會針對 H.264 壓縮樣本公開,以優化 H.264 VLD DXVA 解碼。

    MPEG-4 來源會在 輸出 媒體類型 MFVideoFormat_H264MFVideoFormat_h264上設定MF_NALU_LENGTH_SET。 它會在每個輸出樣本上設定 MF_NALU_LENGTH_INFORMATION 的 Blob,並在一個壓縮樣本中針對不同 NALU 的四位元組 NALU 長度。

  • 已針對 MP4 來源中的 MPEG2 ADTS 音訊新增支援。

媒體來源和接收

媒體基礎中的 MPEG-4 支援

媒體基礎中支援的媒體格式