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_Audio 或 MFMediaType_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 檔案來源會設定子類型,如下所示:
- subtype = MFMPEG4Format_Base
- 子類型。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_H264 或 MFVideoFormat_h264上設定MF_NALU_LENGTH_SET。 它會在每個輸出樣本上設定 MF_NALU_LENGTH_INFORMATION 的 Blob,並在一個壓縮樣本中針對不同 NALU 的四位元組 NALU 長度。
已針對 MP4 來源中的 MPEG2 ADTS 音訊新增支援。
相關主題