跳至主要内容

HLS

Introduction

HLS(HTTP Live Streaming)是一個streaming protocol,可以基於不同的Client network條件傳輸不同解析度的影片給Client。

主要的使用場景像是: Client需要觀賞影片(像是Youtube),而Server會透過HLS傳輸影片相關訊給Client。

Application Implementation

假設今天想要建立一個類似Youtube的App,首先,伺服器端需要準備好經過編碼的影片,且影片應有不同解析度的影片,讓Server可以根據Client網路條件傳送不同解析度的影片。

接著,Server會把影片相關資訊根據HLS協議,轉變成PlayList和Segments,並在後端提供這些檔案。

  • PlayList就像是影片的索引,包含了資訊像是要不同解析度的影片的位置在哪裡。
  • Segment是影片的分段,像是每5秒的影片形成一個Segment。

在檔案建立好後,前端會先查看PlayList檔案,並根據HLS協議解析這些資訊,找到目前Client適合的bitrate的影片,並segment by segment的透過HTTP Request拿到這些資料。