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