前面有討論了 Video Sharing Platform 大概的 Data FlowIn 設計,接著繼續深入「影片上傳」這個部分的細節和實作。並不只是簡單的把檔案藉由後端 server 寫進儲存系統而已,還牽涉到如:

  • 安全性相關 : User 驗證、Data 驗證等等
  • 錯誤處裡: 上傳網路中斷、資料格式不符、error handling
  • 資料轉換: 對應需求,可能對資料做前處理或後處理
  • 系統能力: Latency 或者是否影響 server 穩定

應把它視為一條長流程、非同步、且容易受到網路品質影響的工作,而不是單次同步請求,這樣才能面對突發狀況。

Continue reading

如果要 Design 一個 Video Sharing Platform,首先要釐清影片是哪種類型,例如: 短影片(Shorts / Reels / TikTok)長影片(YouTube)直播(Twitch、17LIVE) 這裡就先選一個比較簡單的「短影片平台」來做範例,而其 Function Requirements 和 Non-Function Requirements 分別就是 :

  • 達成 Data FlowIn/FlowOut 設計,在這裡代表是「 User 可以去上傳自己創作一些 Video 」而「 其他 User 可以去觀看 Video 」
  • 確保有大量 User 使用時系統也要穩定,故有要求 Scalability ; 影片也希望播放順暢,故 latency 要求不能太高

Continue reading

OTT (Over-the-top media service) 此類利用網路來提供影音內容的服務平台已經非常普遍了(如 Netflix 等等),使用者只需有穩定的網路連線與播放裝置,即可在線上隨時收看影音,而內容提供者不需擁有大規模的硬體設備就能將影音內容放置於網路上。自己對於這技術大部份的專有名詞都還有蠻多不了解的。例如說

  • MP4
  • 1080P
  • H.264

這些名詞基本上都看過,但實際上對於其定義是蠻模糊的,而更進階的 Streaming Protocol (串流協議),在讀相關資料有也些蠻多名詞冒出來的,以下就把我認為對影片後端需要知道的基本事項簡單整理一下。

Continue reading

Author's picture

李昀陽 YunYang Lee

Welcome to my Tech Note. You can read some of the chapters below.

Software Engineer

Taiwan