媒體容器格式(檔案型別)

媒體容器是一種檔案格式,它封裝一個或多個媒體流(如音訊或影片)以及元資料,使其能夠一起儲存和播放。音訊和影片媒體檔案的格式由多個元件定義,包括所使用的音訊和/或影片編解碼器、媒體容器格式(或檔案型別),以及可選的其他元素,例如字幕編解碼器或元資料。在本指南中,我們將探討網路上最常用的容器格式,涵蓋其規範基礎知識以及其優點、侷限性和理想用例。

WebRTC 完全不使用容器。相反,它使用 MediaStreamTrack 物件表示每個軌道,直接將編碼的音訊和影片軌道從一個對等端流式傳輸到另一個對等端。有關 WebRTC 通話常用編解碼器以及 WebRTC 中編解碼器支援的瀏覽器相容性資訊,請參閱WebRTC 使用的編解碼器

常見容器格式

儘管媒體容器格式種類繁多,但下面列出的才是您最可能遇到的。有些只支援音訊,而另一些則同時支援音訊和影片。每種格式的 MIME 型別和副檔名也已列出。網路上最常用的媒體容器可能是 MPEG-4 Part-14 (MP4) 和 Web 媒體檔案 (WEBM)。但是,您也可能會遇到 Ogg、WAV、AVI、MOV 和其他格式。並非所有這些格式都得到瀏覽器的廣泛支援;出於方便或其普遍性,某些容器和編解碼器組合有時會擁有自己的副檔名和 MIME 型別。例如,僅包含 Opus 音訊軌道的 Ogg 檔案有時被稱為 Opus 檔案,甚至可能具有 .opus 副檔名。但它實際上仍然只是一個 Ogg 檔案。

在某些情況下,特定的編解碼器變得如此普遍,以至於其用法被視為一種獨特的格式。一個主要例子是 MP3 音訊檔案,它不儲存在傳統容器中。相反,MP3 檔案本質上是 MPEG-1 音訊層 III 編碼幀的流,通常附帶 ID3 標籤等元資料。這些檔案使用 audio/mpeg MIME 型別和 .mp3 副檔名。

媒體容器格式(檔案型別)索引

要了解特定容器格式的更多資訊,請在此列表中查詢並點選檢視詳細資訊,其中包括有關該容器通常的用途、支援的編解碼器以及哪些瀏覽器支援該容器等具體資訊。

編解碼器名稱(短) 完整編解碼器名稱 瀏覽器相容性
3GP 第三代合作伙伴 適用於 Android 的 Firefox
ADTS 音訊資料傳輸流

Firefox

僅當底層作業系統媒體框架可用時才可用。

FLAC 自由無損音訊編解碼器 所有瀏覽器。
MPEG / MPEG-2 運動影像專家組(1 和 2)
MPEG-4 (MP4) 運動影像專家組 4 所有瀏覽器。
Ogg Ogg 所有瀏覽器。
QuickTime (MOV) Apple QuickTime 電影 僅限舊版 Safari 以及支援 Apple QuickTime 外掛的其他瀏覽器
WebM 網路媒體 所有瀏覽器。

除非另有說明,如果此處列出瀏覽器,則表示同時支援移動和桌面瀏覽器。支援也僅限於容器本身,不針對任何特定編解碼器。

3GP

3GP3GPP 媒體容器用於封裝專門用於透過蜂窩網路傳輸並在移動裝置上使用的音訊和/或影片。該格式設計用於 3G 手機,但仍可在更現代的手機和網路上使用。然而,大多數網路上頻寬可用性的提高和資料上限的增加降低了對 3GP 格式的需求。不過,該格式仍用於較慢的網路和效能較低的手機。

此媒體容器格式源自 ISO 基本媒體檔案格式和 MPEG-4,但專門針對低頻寬場景進行了簡化。

音訊 影片
audio/3gpp video/3gpp
audio/3gpp2 video/3gpp2
audio/3gp2 video/3gp2

這些 MIME 型別是 3GP 媒體容器的基本型別;根據所使用的特定編解碼器,可能會使用其他型別。此外,您可以向 MIME 型別字串新增 codecs 引數,以指示音訊和/或影片軌道使用的編解碼器,並可選地提供有關配置檔案、級別和/或其他編解碼器配置的詳細資訊。

3GP 支援的影片編解碼器
編解碼器 瀏覽器支援
Chrome Edge Firefox Safari
AVC (H.264)
H.263
MPEG-4 Part 2 (MP4v-es)
VP8
3GP 支援的音訊編解碼器
編解碼器 瀏覽器支援
Chrome Edge Firefox Safari
AMR-NB
AMR-WB
AMR-WB+
AAC-LC
HE-AAC v1
HE-AAC v2
MP3

ADTS

音訊資料傳輸流 (ADTS) 是 MPEG-4 第 3 部分為音訊資料指定的一種容器格式,旨在用於流式音訊,例如網際網路廣播。它本質上是一個幾乎是裸露的 AAC 音訊資料流,由帶有最小標頭的 ADTS 幀組成。

音訊
audio/aac
audio/mpeg

ADTS 使用的 MIME 型別取決於其中包含的音訊幀型別。如果使用 ADTS 幀,則應使用 audio/aac MIME 型別。如果音訊幀採用 MPEG-1/MPEG-2 Audio Layer I、II 或 III 格式,則 MIME 型別應為 audio/mpeg

ADTS 支援的音訊編解碼器
編解碼器 瀏覽器支援
Chrome Edge Firefox Safari
AAC
MP3

Firefox 對 AAC 的支援依賴於作業系統的媒體基礎設施,因此只要作業系統支援,它就可用。

FLAC

自由無損音訊編解碼器 (FLAC) 是一種無損音訊編解碼器;還有一個相關的容器格式,也稱為 FLAC,可以包含此音訊。該格式不受任何專利限制,因此其使用不受干擾。FLAC 檔案只能包含 FLAC 音訊資料。

音訊
audio/flac
audio/x-flac(非標準)
FLAC 支援的音訊編解碼器
編解碼器 瀏覽器支援
Chrome Edge Firefox Safari
FLAC

MPEG/MPEG-2

MPEG-1MPEG-2 檔案格式本質上是相同的。這些格式由運動影像專家組 (MPEG) 建立,廣泛用於物理媒體,包括作為 DVD 媒體上的影片格式。

在網際網路上,MPEG 標準最常見的應用可能是在 MPEG-1 音訊層 III(通常稱為 MP3)聲音資料。儘管 MPEG-1 和 MPEG-2 作為一個整體並未廣泛用於其他網路內容,但這些 MP3 檔案在全球數字音樂裝置中廣受歡迎。

MPEG-1 和 MPEG-2 之間的主要區別在於媒體資料格式而非容器格式。MPEG-1 於 1992 年推出;MPEG-2 於 1996 年推出。

音訊 影片
audio/mpeg video/mpeg
MPEG-1 和 MPEG-2 支援的影片編解碼器
編解碼器 瀏覽器支援
Chrome Edge Firefox Safari
MPEG-1 第 2 部分
MPEG-2 第 2 部分
MPEG-1 和 MPEG-2 支援的音訊編解碼器
編解碼器 瀏覽器支援
Chrome Edge Firefox Safari
MPEG-1 音訊層 I
MPEG-1 音訊層 II
MPEG-1 音訊層 III (MP3)

MPEG-4 (MP4)

MPEG-4 (MP4) 是 MPEG 檔案格式的最新版本。該格式有兩個版本,在規範的第 1 部分和第 14 部分中定義。MP4 是當今流行的容器,因為它支援幾種最常用的編解碼器並得到廣泛支援。

最初的 MPEG-4 第 1 部分檔案格式於 1999 年推出;第 14 部分中定義的版本 2 格式於 2003 年新增。MP4 檔案格式源自 ISO 基本媒體檔案格式,後者直接源自 Apple 開發的 QuickTime 檔案格式

指定 MPEG-4 媒體型別 (audio/mp4video/mp4) 時,您可以向 MIME 型別字串新增 codecs 引數,以指示音訊和/或影片軌道使用的編解碼器,並可選地提供有關配置檔案、級別和/或其他編解碼器配置的詳細資訊。

音訊 影片
audio/mp4 video/mp4

這些 MIME 型別是 MPEG-4 媒體容器的基本型別;根據容器中使用的特定編解碼器,可能會使用其他 MIME 型別。此外,您可以向 MIME 型別字串新增 codecs 引數,以指示音訊和/或影片軌道使用的編解碼器,並可選地提供有關配置檔案、級別和/或其他編解碼器配置的詳細資訊。

MPEG-4 支援的影片編解碼器
編解碼器 瀏覽器支援
Chrome Edge Firefox Safari
AVC (H.264)

Firefox 對 H.264 的支援依賴於作業系統的媒體基礎設施,因此只要作業系統支援,它就可用。

AV1

Firefox 在 ARM 版 Windows 上停用 AV1 支援(透過將首選項 media.av1.enabled 設定為 true 來啟用)。

H.263
MPEG-4 第 2 部分視覺
VP9
MPEG-4 支援的音訊編解碼器
編解碼器 瀏覽器支援
Chrome Edge Firefox Safari
AAC

Firefox 對 H.264 的支援依賴於作業系統的媒體基礎設施,因此只要作業系統支援,它就可用。

FLAC
MPEG-1 音訊層 III (MP3)
Opus

Ogg

Ogg 容器格式是一種由 Xiph.org 基金會維護的免費開放格式。Ogg 框架還定義了不受專利限制的媒體資料格式,例如 Theora 影片編解碼器和 Vorbis、Opus 音訊編解碼器。Xiph.org 關於 Ogg 格式的文件可在其網站上查閱。

儘管 Ogg 存在已久,但它從未獲得廣泛支援,無法成為媒體容器的首選。您通常最好使用 WebM,儘管有時提供 Ogg 很有用,例如當您希望支援尚未支援 WebM 的舊版 Firefox 和 Chrome 時。例如,Firefox 3.5 和 3.6 支援 Ogg,但不支援 WebM。

您可以在 Theora Cookbook 中獲取有關 Ogg 及其編解碼器的更多資訊。

音訊 影片
audio/ogg video/ogg

當您不確定媒體是否包含音訊或影片時,可以使用 application/ogg MIME 型別。如果可能,您應該使用其中一種特定型別,但如果您不知道內容格式,則回退到 application/ogg

您還可以向 MIME 型別字串新增 codecs 引數,以指示音訊和/或影片軌道使用的編解碼器,並可選地進一步描述軌道媒體格式。

Ogg 支援的影片編解碼器
編解碼器 瀏覽器支援
Chrome Edge Firefox Safari
Theora
VP8
VP9
Ogg 支援的音訊編解碼器
編解碼器 瀏覽器支援
Chrome Edge Firefox Safari
FLAC
Opus
Vorbis

警告:在 Firefox Linux 64 位上播放超過 12 小時 35 分 39 秒的 Ogg Opus 音訊檔案會被截斷,並出現尋道問題(Firefox bug 1810378)。

注意: Safari 18.4+(在 macOS 15.4+、iOS 18.4+、iPadOS 18.4+ 和 visionOS 2.4+ 上)增加了對 Ogg 容器中 Opus 和 Vorbis 編解碼器的支援。

QuickTime

QuickTime 檔案格式(QTFFQTMOV)由 Apple 建立,供其同名媒體框架使用。這些檔案的副檔名 .mov 源於該格式最初用於電影,通常被稱為“QuickTime 電影”格式。雖然 QTFF 作為 MPEG-4 檔案格式的基礎,但兩者存在差異,並且不能完全互換。

QuickTime 檔案支援任何型別基於時間的資料,包括音訊和影片媒體、文字軌道等。QuickTime 檔案主要由 macOS 支援,但在很多年裡,Windows 版 QuickTime 可用於在 Windows 上訪問它們。然而,Apple 自 2016 年初起不再支援 Windows 版 QuickTime,並且不應使用,因為存在已知的安全問題。不過,Windows Media Player 現在已整合支援 QuickTime 2.0 及更早版本的檔案;對 QuickTime 後續版本的支援需要第三方附加元件。

在 Mac OS 上,QuickTime 框架不僅支援 QuickTime 格式電影檔案和編解碼器,還支援大量流行和專業音訊和影片編解碼器,以及靜態影像格式。透過 QuickTime,Mac 應用程式(包括透過 QuickTime 外掛或直接 QuickTime 整合的網路瀏覽器)能夠讀取和寫入音訊格式,包括 AAC、AIFF、MP3、PCM 和 Qualcomm PureVoice;以及影片格式,包括 AVI、DV、Pixlet、ProRes、FLAC、Cinepak、3GP、H.261 到 H.265、MJPEG、MPEG-1 和 MPEG-4 第 2 部分、Sorenson 等等。

此外,還有許多第三方元件可用於 QuickTime,其中一些增加了對額外編解碼器的支援。

由於 QuickTime 的支援,從所有意圖和目的來看,主要在 Apple 裝置上可用,因此它不再廣泛用於網際網路。Apple 本身現在通常使用 MP4 進行影片。此外,QuickTime 框架在 Mac 上已棄用了一段時間,並且從 macOS 10.15 Catalina 開始完全不再可用。

影片
video/quicktime

video/quicktime MIME 型別是 QuickTime 媒體容器的基本型別。值得注意的是,QuickTime(Mac 作業系統上的媒體框架)支援各種容器和編解碼器,因此它實際上支援許多其他 MIME 型別。

您可以向 MIME 型別字串新增 codecs 引數,以指示音訊和/或影片軌道使用的編解碼器,並可選地提供有關配置檔案、級別和/或其他編解碼器配置的詳細資訊。

QuickTime 支援的影片編解碼器
編解碼器 瀏覽器支援
Chrome Edge Firefox Safari
AVC (H.264)
Cinepak
分量影片
DV
H.261
H.263
MPEG-2
MPEG-4 第 2 部分視覺
運動 JPEG
Sorenson 影片 2
Sorenson 影片 3
QuickTime 支援的音訊編解碼器
編解碼器 瀏覽器支援
Chrome Edge Firefox Safari
AAC
ALaw 2:1
Apple 無損 (ALAC)
HE-AAC
MPEG-1 音訊層 III (MP3)
微軟 ADPCM
µ-Law 2:1 (u-Law)

WAVE (WAV)

波形音訊檔案格式 (WAVE),由於其檔名副檔名為 .wav,通常被稱為 WAV,是微軟和 IBM 開發的一種用於儲存音訊位元流資料的格式。

它源自資源交換檔案格式 (RIFF),因此與其他格式(如 Apple 的 AIFF)相似。WAV 編解碼器登錄檔可在 RFC 2361 中找到;但是,由於幾乎所有 WAV 檔案都使用線性 PCM,因此對其他編解碼器的支援很少。

WAVE 格式於 1991 年首次釋出。

音訊
audio/wave
audio/wav
audio/x-wav
audio/x-pn-wav

audio/wave MIME 型別是標準型別,並且是首選型別;但是,其他型別多年來已被各種產品使用,並且在某些環境中也可以使用。

WAVE 支援的音訊編解碼器
編解碼器 瀏覽器支援
Chrome Edge Firefox Safari
ADPCM(自適應差分脈衝編碼調製)
GSM 06.10
LPCM(線性脈衝編碼調製)
MPEG-1 音訊層 III (MP3)
µ-Law (u-Law)

WebM

WebM (Web Media) 是一種基於 Matroska 的格式,專門為現代網路環境設計。它完全基於自由開放技術,主要使用自由開放的編解碼器,儘管某些產品也支援 WebM 容器中的其他編解碼器。

WebM 於 2010 年首次推出,現已得到廣泛支援。相容的 WebM 實現需要支援 VP8 和 VP9 影片編解碼器以及 Vorbis 和 Opus 音訊編解碼器。WebM 容器格式及其所需的編解碼器均根據開放許可證提供。任何其他編解碼器可能需要許可證才能使用。

音訊 影片
audio/webm video/webm
WebM 支援的影片編解碼器
編解碼器 瀏覽器支援
Chrome Edge Firefox Safari
AV1

Firefox 在 Firefox 66 中增加了對 macOS 上 AV1 的支援;在 Firefox 67 中增加了對 Windows 的支援;在 Firefox 68 中增加了對 Linux 的支援。Firefox for Android 尚不支援 AV1;Firefox 中的實現旨在使用安全程序,這在 Android 中尚未支援。

VP8
VP9
WebM 支援的音訊編解碼器
編解碼器 瀏覽器支援
Chrome Edge Firefox Safari
Opus
Vorbis

選擇正確的容器

在為您的媒體選擇最佳容器或容器時,需要考慮幾個因素。每個因素的相對重要性將取決於您的需求、您的許可要求以及目標受眾的相容性要求。

指南

在選擇合適的媒體格式時,您的決定應取決於您預期的用途。播放媒體與錄製或編輯媒體不同。對於操作,未壓縮格式可以提高效能,而無失真壓縮可以防止重複重新壓縮帶來的噪聲累積。

  • 如果您的目標受眾可能包括移動使用者,尤其是在低端裝置或慢速網路上,請考慮在 3GP 容器中提供適當壓縮的媒體版本。
  • 如果您有任何特定的編碼要求,請確保您選擇的容器支援相應的編解碼器。
  • 如果您希望您的媒體採用非專有、開放格式,請考慮使用開放容器格式之一,例如 FLAC(用於音訊)或 WebM(用於影片)。
  • 如果由於任何原因您只能提供單一格式的媒體,請選擇在最廣泛的裝置和瀏覽器上可用的格式,例如 MP3(用於音訊)或 MP4(用於影片和/或音訊)。
  • 如果您的媒體僅是音訊,那麼選擇僅音訊格式可能是有意義的。請參閱下文以比較各種僅音訊格式。

容器選擇建議

下表提供了在各種場景中使用的建議容器。這些只是建議。在選擇容器格式之前,請務必考慮您的應用程式和組織的需求。

僅音訊檔案

需求 格式 描述
用於通用播放的壓縮檔案 MP3 (MPEG-1 音訊層 III) 廣泛相容且被識別;使用有失真壓縮在檔案大小和音訊質量之間提供良好的平衡。
無失真壓縮 FLAC(自由無損音訊編解碼器) 提供無失真壓縮,確保原始音訊完整無損,同時減小檔案大小。
ALAC(Apple 無損音訊編解碼器) 類似於 FLAC,但專為 Apple 裝置設計;在 Apple 生態系統中使用時是一個很好的備用選擇。
未壓縮檔案 WAV(波形音訊檔案格式) 包含未壓縮的 PCM 音訊,以犧牲更大的檔案大小為代價提供最高的保真度。
AIFF(音訊交換檔案格式) 在質量和檔案大小方面與 WAV 相當,儘管它在 Apple 平臺上更受歡迎。

現在 MP3 的所有專利都已過期,音訊檔案格式的選擇變得容易得多。不再需要在使用 MP3 時在廣泛相容性和支付版稅之間做出選擇。

不幸的是,相對主要的兩種無失真壓縮格式(FLAC 和 ALAC)都未得到普遍支援。FLAC 是兩者中受支援更廣泛的,但如果沒有安裝額外軟體,macOS 不支援它,而且 iOS 完全不支援。如果您需要提供無損音訊,您可能需要同時提供 FLAC 和 ALAC 才能接近普遍相容性。

影片檔案

需求 格式 描述
通用影片(最好是開放格式) WebM WebM 專為現代網路使用而設計,是一種開放、免版稅的容器,提供高效壓縮,並在大多數瀏覽器中提供原生支援。
通用影片 MP4 MP4 是影片內容的行業標準,在裝置和瀏覽器中得到廣泛支援。
慢速連線的高壓縮 3GP 3GP 針對移動裝置和低頻寬環境進行了最佳化,可在受限條件下提供可接受的影片質量。
與舊裝置/瀏覽器相容 QuickTime QuickTime 是一箇舊容器,最初在 Apple 平臺上很流行。它仍然常被 macOS 影片錄製軟體製作。

這些建議基於多項假設。在做出最終決定之前,您應該仔細考慮這些選項,特別是如果您的媒體需要編碼的數量很大。通常情況下,您會希望為這些格式提供多種備用選項——例如,WebM 或 3GP 的 MP4 備用,或 QuickTime 的 AVI 備用。

最大化與多個容器的相容性

為了最佳化相容性,值得考慮提供多個版本的媒體檔案,使用 <source> 元素在 <audio><video> 元素中指定每個來源。例如,您可以將 Ogg 或 WebM 影片作為首選,並提供 MP4 格式的備用。您甚至可以選擇提供復古的 QuickTime 或 AVI 備用,以防萬一。

為此,您需要建立一個沒有 src 屬性的 <video>(或 <audio>)元素。然後,在 <video> 元素中新增子 <source> 元素,每個您提供的影片版本一個。這可以用於提供可根據頻寬可用性選擇的各種版本的影片,但在我們的例子中,我們將使用它來提供格式選項。

在此示例中,影片以兩種格式提供給瀏覽器:WebM 和 MP4。

試一試

<video controls width="250" height="200" muted>
  <source src="/shared-assets/videos/flower.webm" type="video/webm" />
  <source src="/shared-assets/videos/flower.mp4" type="video/mp4" />
  Download the
  <a href="/shared-assets/videos/flower.webm">WEBM</a>
  or
  <a href="/shared-assets/videos/flower.mp4">MP4</a>
  video.
</video>

影片首先以 WebM 格式提供(type 屬性設定為 video/webm)。如果使用者代理無法播放該格式,它將轉到下一個選項,其 type 指定為 video/mp4。如果兩者都無法播放,則會顯示文字“此瀏覽器不支援 HTML 影片元素。”

規範

規範 Comment
ETSI 3GPP 定義 3GP 容器格式
ISO/IEC 14496-3(MPEG-4 第 3 部分音訊) 定義包括 ADTS 在內的 MP4 音訊
FLAC 格式 FLAC 格式規範
ISO/IEC 11172-1(MPEG-1 第 1 部分系統) 定義 MPEG-1 容器格式
ISO/IEC 13818-1(MPEG-2 第 1 部分系統) 定義 MPEG-2 容器格式
ISO/IEC 14496-14(MPEG-4 第 14 部分:MP4 檔案格式) 定義 MPEG-4 (MP4) 版本 2 容器格式
ISO/IEC 14496-1(MPEG-4 第 1 部分系統) 定義原始 MPEG-4 (MP4) 容器格式
RFC 3533 定義 Ogg 容器格式
RFC 5334 定義 Ogg 媒體型別和副檔名
QuickTime 檔案格式規範 定義 QuickTime 電影 (MOV) 格式
多媒體程式設計介面和資料規範 1.0 最接近官方 WAVE 規範的文件
資源交換檔案格式(WAV 使用) 定義 RIFF 格式;WAVE 檔案是 RIFF 的一種形式
WebM 容器指南 適用於 WebM 的 Matroska 改編指南
Matroska 規範 WebM 所基於的 Matroska 容器格式規範
WebM 位元組流格式 用於 媒體源擴充套件 的 WebM 位元組流格式

瀏覽器相容性

容器格式名稱 音訊 影片
MIME 型別 副檔名 瀏覽器支援 MIME 型別 副檔名 瀏覽器支援
3GP audio/3gpp .3gp Firefox video/3gpp .3gp Firefox
ADTS(音訊資料傳輸流) audio/aac .aac Firefox
FLAC audio/flac .flac Firefox
MPEG-1 / MPEG-2 (MPG 或 MPEG) audio/mpeg .mpg
.mpeg
Firefox video/mpeg .mpg
.mpeg
Firefox
audio/mp3 .mp3 Firefox
MPEG-4 (MP4) audio/mp4 .mp4
.m4a
Firefox video/mp4 .mp4
.m4v
.m4p
Firefox
Ogg audio/ogg .oga
.ogg
Firefox, Safari video/ogg .ogv
.ogg
Firefox
QuickTime 電影 (MOV) video/quicktime .mov Safari
WAV(波形音訊檔案) audio/wav .wav Firefox
WebM audio/webm .webm Firefox video/webm .webm Firefox

另見