共用方式為


MPEG-4 檔案來源

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

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

注意

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

 

MPEG-4 檔案來源不會譯碼檔案中的音訊/視訊數據。

本主題包含下列各節:

擴展名和MIME類型

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

擴展名 描述
.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 類型 描述
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 檔案來源可以剖析下列範例專案。

範例項目代碼 主要類型 描述 筆記
'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. 子類型 = MFMPEG4Format_Base
  2. 子類型。Data1 = 範例項目代碼

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

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

局限性

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

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

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

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

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

  • 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 會在旋轉角度根據 『mvhd』 中的旋轉角度進行調整之後,只針對 『tkhd』 中的第一個視訊播放軌寫入旋轉角度,如果存在的話。

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

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

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

  • 在 Windows 8 MPEG-4 來源中新增 MJPEG 的更多四cc 支援。

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

  • Windows 8 MPEG-4 來源中新增的 Furigana 元數據支援。

    MPEG-4 來源會從 'soal'、'soar'、'soaa'、'sonm' 和 'soco' 讀取 Furigana 元數據。 IPropertyStore 會透過一組對應的 PKEY 讀取 Furstorea 元數據。

    下表顯示殼層標準名稱、屬性索引鍵和 MPEG-4 檔格式的 box/tag ID 之間的對應。

    屬性索引鍵 標籤/方塊識別碼
    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 的檔案。

  • 清除已在 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 譯碼。

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

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

媒體來源和接收

媒體基礎 MPEG-4 支援

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