Media Container
簡表
- Audio
- Lossy Compression
MP3
WMA
Vorbis
Opus
AAC
AC-3
DTS
- No Compression
PCM
LPCM
- Lossless Compression
FLAC
ALAC
MLP/Dolby TrueHD
DTS-HD
- Video
MPEG-1
MPEG-2
MPEG-4 (A)SP
H.264/MPEG-4 AVC
H.265/HEVC
VC-1/WMV
Real Video
Theora
Microsoft MPEG4 V2
VP8
VP9
MVC
AV1
- Subtitle
MicroDVD
MPEG-4 Timed Text
MPSub
SAMI
SubRip
SSA (SubStation Alpha)
SubViewer
Universal Subtitle Format
VobSub
XSUB
介紹
AVI
Matroska
MP4
MXF
Ogg
QuickTime
RTP
AVI
WebM
Matroska 的子集合, 保證影像一定使用 VP8 或 VP9, 保證聲音一定使用 Vorbis 或 Opus。
WAV
QuickTime Movie
MP4 (MPEG-4 Part 14)
Fast Start
把 header 放在檔案最前面,以便可以馬上播放,而不用整個檔案讀完。
FFmpeg:
ffmpeg -i input.mp4 -vcodec copy -acodec copy -movflags +faststart output.mp4
GStreamer:
... ! mp4mux faststart=true ! ...
MPEG-TS
Ogg
Matroska
Matroska 是在 2002 年從 MCF 專案 fork 出去的開放 container 格式, 主要原因是對於 EBML 或是其他 binary 格式的使用無法達成共識。 由於使用 EBML 來描述內容, Matroska 可以儲存無限制數量的影像、聲音、字幕, 也可以支援未來各種新的 codec 或擴充。
2010 年 WebM 格式宣布使用 Matroska 作為 container, 並且搭配客製化的 profile 來處理 VP8 和 Vorbis。
FOSDEM 2018 - Matroska Low-Latency streaming - Why Matroska is (always) Better
- EBML (Extensible Binary Meta Language)
binary equivalent to XML
- Matroska Specification