Netflix, Disney+, KKTV, Giloo紀實影音 或是 17LIVE 等影音串流服務,想像上,它們都是讓影音透過網路的傳輸。現在讓你隨意挑選技術的話,最少你會挑選哪些技術來完成這些服務?我的話,我會挑 H.264, HTTP, RTMP 以及 HLS。

OTT, VOD, and live video streaming all rely on the transmission of video data over the internet. There are several technologies that are commonly used to facilitate this transmission, including H.264/AVC, HTTP, RTMP, and HLS.

H.264/AVC 這個將近二十年的影像壓縮技術,是讓影像傳輸與儲存變得現實可行的重要技術,也是我會第一個挑選的。它是目前為止,最被廣泛使用的影像壓縮技術,是整個工業界有默契與合作下,促成而且實作的一個標準,它是一個受青睞的幸運兒。

HTTP 被提出已經三十年了,它會是我第二個挑選的技術。偉哉的 HTTP/HTTPS,讓幾乎全世界的各種應用都基於它來實現了,這個原來只是為了做到「超連結」「超媒體」的技術,最後成了大部分 API 以及影音傳輸時的底層協定。它的廣泛被應用,奠基在它無比的高穿透力,不管是你使用哪一種網路,封閉型或是開放型,地表上還是地底下,它通吃。

RTMP 是個一樣超過二十年的玩意兒,但它依舊活躍,特別時當你在做直播拍賣或是電視台工作的場合,很容易看見它的蹤影。它最重要的貢獻,是讓直播影像的硬體設備,有個簡單而快速的上傳技術。喔,對了,它是 Macromedia (併入 Adobe) 開發的。

最後是 HLS。相較於前面的幾個前輩,它是最年輕的,大概 14 歲吧。它的出現,是最後一個真正讓前述的影音串流得以實現的關鍵。不管你的網路多好或多差,或是時好時差,透過它就有機會讓你的觀影體驗好上很多。

如果可以多挑一兩樣的話,我會把 MPEG-DASH, DRM 以及 CDN 也放進來。但如果繼續挖掘深入一點的話,那就又顯得太多了……我想,就此打住更好 :p

H.264/AVC is a video compression standard based on block-oriented, motion-compensated coding [6][7][8]. It is by far the most commonly used format for the recording, compression, and distribution of video content. HTTP [9] is a widely-supported protocol that allows for the transfer of data between a client (such as a web browser) and a server (such as a web server). RTMP is a proprietary protocol developed by Adobe Systems that is optimized for streaming video [10]. HLS is a protocol developed by Apple that works by dividing the video stream into segments, which are then delivered to the client using HTTP. HLS is one of the widespread protocols to achieve adaptive bitrate streaming [11].

In addition to these technologies, there are also a range of alternative technologies, tools and services that are used in the production and delivery of OTT, VOD, and live video streaming in consideration of business requirements. These may include other audio/video codecs, MPEG-DASH, DRM, CDNs, streaming servers, and video players.


references:

  • [6] “Draft ITU-T recommendation and final draft international standard of joint video specification (ITU-T Rec. H.264 | ISO/IEC 14496-10 AVC)“, JVT G050, 2003.
  • [7] T. Wiegand, G. J. Sullivan, G. Bjontegaard, and A. Luthra. “Overview of the H.264/AVC video coding standard”, IEEE Transactions on Circuit and System for Video Technology, pp. 560-576, Jul. 2003
  • [8] Iain E. G. Richardson. “H.264 and MPEG-4 Video Compression: Video Coding for Next-generation Multimedia”, John Wiley & Sons, 2003.
  • [9] T. Berner-Lee. “The Original HTTP as defined in 1991”, www.w3.org . World Wide Web Consortium, 1991.
  • [10] “Real-Time Messaging Protocol”, in https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol
  • [11] R. Pantos, and W. May. “HTTP Live Streaming (RFC 8216)”, IETF, May 2009.