抖音實時直播是怎麼工作的?
直播不同於普通的流媒體,因爲視頻內容是通過互聯網實時發送的,延遲時間通常只有幾秒鐘。
下圖解釋了實現這一功能的過程。
-
第 1 步:原始視頻數據由麥克風和攝像頭採集。數據被髮送到服務器端。
-
第 2 步:對視頻數據進行壓縮和編碼。例如,壓縮算法會分離背景和其他視頻元素。壓縮後,視頻按照 H.264 等標準進行編碼。經過這一步驟後,視頻數據的大小會小得多。
-
第 3 步:編碼後的數據被分成更小的片段,長度通常爲幾秒鐘,因此下載或流式傳輸所需的時間更短。
-
第 4 步:將分段數據發送到流媒體服務器。流媒體服務器需要支持不同的設備和網絡條件。這就是所謂的 “自適應比特率流”。這意味着我們需要在步驟 2 和 3 中以不同的比特率生成多個文件。
-
第 5 步:將直播數據推送到 CDN(內容分發網絡)支持的邊緣服務器。CDN 大大降低了數據傳輸延遲。
-
第 6 步:觀衆的設備對視頻數據進行解碼和解壓,並在視頻播放器中播放視頻。
-
第 7 步和第 8 步:如果視頻需要存儲以便重放,則將編碼數據發送到存儲服務器,觀衆可在稍後請求重放。
實時流媒體的標準協議包括
-
實時信息傳輸協議(RTMP, Real-Time Messaging Protocol):該協議最初由 Macromedia 開發,用於在 Flash 播放器和服務器之間傳輸數據。現在它用於在互聯網上傳輸視頻數據流。請注意,Skype 等視頻會議應用程序使用 RTC(實時通信)協議來降低延遲。
-
HLS(HTTP Live Streaming):它需要 H.264 或 H.265 編碼。蘋果設備只接受 HLS 格式。
-
DASH(Dynamic Adaptive Streaming over HTTP):DASH 不支持 Apple 設備。
-
HLS 和 DASH 都支持自適應比特率流。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/SGuiOEjMPcs2kTaSxx8L8w