在智慧手機、YouTube 尚未流行前,除了在電腦上看電影外,就是利用 CD Player、DVD Player 和多媒體播放機來觀看。
那時 Media Streaming 也處於低解析度不順暢的應用,所以大家大多都是抓取整個影音檔後再進行播放。檔案如下圖
flowchart LR
subgraph Multimedia File
Video["Video Payload(s)"]
Audio["Audio Payload(s)"]
Subtitle["Subtitle(s)"]
end
flowchart LR
subgraph Multimedia File
subgraph Video["Video Payload(s)"]
Video1["Channel1 - Video Payload(s)"]
Video2["Channel2 - Video Payload(s)"]
end
subgraph Audio["Audio Payload(s)"]
Audio1["ENG - Audio Payload(s)"]
Audio2["CHT - Audio Payload(s)"]
end
subgraph Subtitle["Subtitle(s)"]
Subtitle1["Eng - Subtitle(s)"]
Subtitle2["CHT - Subtitle(s)"]
end
end
現在很多多媒體製作軟體能進行轉換,其實原理都是一樣的,只要遵循 Media container 的檔案格式,進行壓製即可。
Encode 包含軟體壓縮或是硬體壓縮
flowchart LR
File["Multimedia File or Streaming"]
Video["Video Payload(s)"]
Audio["Audio Payload(s)"]
VideoFrame["Video Frame(s)"]
AudioIn["AudioIn(s)"]
VideoFrame-->|Encode|Video
AudioIn-->|Encode|Audio
Video-->|Mux|File
Audio-->|Mux|File
此為播放時的流程。
Decode 包含軟體解壓縮或是硬體解壓縮
flowchart LR
File["Multimedia File or Streaming"]
Video["Video Payload(s)"]
Audio["Audio Payload(s)"]
VideoFrame["Video Frame(s)"]
AudioOut["AudioOut(s)"]
File-->|Demux|Video
File-->|Demux|Audio
Audio-->|"Decode (MPEG, WMA, AAC, FLAC, Dolby, DTS, etc ...)"| AudioOut
Video-->|"Decode (MPEG-x , VC-1, WMV9, etc ...) + Scaler"|VideoFrame
本人有 3年的工作都是在此台播放機處理 Demux 的工作(雖然當時是接下離職員工的任務,但並未得到此人交接文件和教導,那幾年完全都只有本人單獨作業)。
因為有點年代,有些細項記憶已不清晰。
I.2. Container format
Created and designed by Lanka Hsu.
HelperX is available under the BSD-3-Clause license. See the LICENSE file for more info.