自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

帶貨直播這么流暢,原來是這套技術(shù)系統(tǒng)在支撐!

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
RTMPS 是 Real-Time Messaging Protocol Secure 的縮寫,它是在 RTMP(實(shí)時(shí)消息傳輸協(xié)議)基礎(chǔ)上加入了 SSL/TLS 加密層,使得數(shù)據(jù)在傳輸過程中更加安全。

1.引言

Hi,大家好,我是你們的小米,今天要跟大家聊聊 社區(qū)直播帶貨的直播流程,這個(gè)流程看似簡單,但其實(shí)背后有著許多復(fù)雜的技術(shù)支撐,今天我們就來拆解一下其中的關(guān)鍵點(diǎn),讓大家對(duì)直播背后的技術(shù)有個(gè)更清晰的了解!

圖片

2.直播端使用 RTMPS 協(xié)議發(fā)送直播流數(shù)據(jù)到 POP 內(nèi)的就近代理服務(wù)器

直播的第一步,就是主播在直播設(shè)備上把視頻和音頻流推送出去。為了保證數(shù)據(jù)傳輸?shù)陌踩?,我們?huì)用到 RTMPS 協(xié)議。

什么是 RTMPS?

RTMPS 是 Real-Time Messaging Protocol Secure 的縮寫,它是在 RTMP(實(shí)時(shí)消息傳輸協(xié)議)基礎(chǔ)上加入了 SSL/TLS 加密層,使得數(shù)據(jù)在傳輸過程中更加安全。因?yàn)橹辈ミ^程中,用戶的個(gè)人信息、支付信息等都涉及到隱私和敏感數(shù)據(jù),用加密協(xié)議能夠避免信息被攔截或者篡改。

發(fā)送到哪里呢?

RTMPS 協(xié)議的直播流會(huì)被發(fā)送到 POP(Point of Presence) 內(nèi)的就近代理服務(wù)器。POP 就是互聯(lián)網(wǎng)骨干網(wǎng)絡(luò)中的一個(gè)節(jié)點(diǎn),代理服務(wù)器的主要職責(zé)是盡可能靠近用戶和主播,減少數(shù)據(jù)傳輸中的延遲,從而保證觀眾看到的直播更加實(shí)時(shí)。

簡而言之:主播用 RTMPS 把加密的直播流發(fā)到離他最近的代理服務(wù)器,代理服務(wù)器會(huì)盡量減少延遲,提升直播的體驗(yàn)。

3.代理服務(wù)器轉(zhuǎn)發(fā)直播流數(shù)據(jù)到數(shù)據(jù)中心的網(wǎng)關(guān)服務(wù)器(443轉(zhuǎn)80)

代理服務(wù)器拿到直播流后,會(huì)把這些數(shù)據(jù)轉(zhuǎn)發(fā)到位于數(shù)據(jù)中心的網(wǎng)關(guān)服務(wù)器。這里有個(gè)小細(xì)節(jié)需要注意,那就是端口的轉(zhuǎn)換。

端口號(hào)的秘密

RTMPS 傳輸數(shù)據(jù)時(shí)默認(rèn)使用 443 端口,這是因?yàn)?443 是 SSL/TLS 加密數(shù)據(jù)的默認(rèn)端口。但我們的數(shù)據(jù)中心網(wǎng)關(guān)服務(wù)器為了兼容一些場(chǎng)景,會(huì)將 443 端口的數(shù)據(jù)轉(zhuǎn)換成 80 端口。80 端口是 HTTP 服務(wù)的默認(rèn)端口,通常用于未加密的數(shù)據(jù)傳輸。

這一轉(zhuǎn)換有助于讓我們的服務(wù)器在不同的場(chǎng)景中都能正常工作,比如在某些特定網(wǎng)絡(luò)環(huán)境下,80 端口可能更加順暢。

總結(jié)一下:代理服務(wù)器將加密的直播流數(shù)據(jù)從 443 端口轉(zhuǎn)發(fā)給網(wǎng)關(guān)服務(wù)器,網(wǎng)關(guān)服務(wù)器再將數(shù)據(jù)轉(zhuǎn)換為 80 端口來進(jìn)行后續(xù)處理。

4.網(wǎng)關(guān)服務(wù)器使用直播 ID 的一致性哈希算法發(fā)送直播數(shù)據(jù)到指定的編碼服務(wù)器

接下來,網(wǎng)關(guān)服務(wù)器收到數(shù)據(jù)后,使用一種叫 一致性哈希算法 的方法來決定這些直播數(shù)據(jù)該被發(fā)送到哪臺(tái)編碼服務(wù)器。

什么是一致性哈希算法?

一致性哈希算法是一個(gè)分布式系統(tǒng)中常用的負(fù)載均衡算法。通過把直播的 直播 ID(即每個(gè)直播的唯一標(biāo)識(shí))映射到一個(gè)哈希環(huán)上,可以保證直播數(shù)據(jù)總是被發(fā)送到同一個(gè)編碼服務(wù)器。這樣,即使服務(wù)器數(shù)量發(fā)生變化,也能確保數(shù)據(jù)被均勻分布,并且不會(huì)因?yàn)榉?wù)器數(shù)量的增加或減少導(dǎo)致大規(guī)模的重新分配。

簡單來說,一致性哈希算法能夠幫助我們找到最合適的服務(wù)器來處理每場(chǎng)直播,保證穩(wěn)定性和性能。

直播流到達(dá)編碼服務(wù)器后,編碼服務(wù)器會(huì)承擔(dān)一系列的工作,可以說這一步是整個(gè)直播過程中非常重要的環(huán)節(jié)。我們來看一下編碼服務(wù)器都做了哪些工作吧!

4.驗(yàn)證直播數(shù)據(jù)格式是否正確

首先,編碼服務(wù)器要做的第一件事就是 驗(yàn)證直播數(shù)據(jù)的格式,比如說視頻和音頻的編碼格式是否符合規(guī)定,直播數(shù)據(jù)的幀率、分辨率、比特率等參數(shù)是否在合理范圍內(nèi)。

如果數(shù)據(jù)不符合標(biāo)準(zhǔn),編碼服務(wù)器會(huì)立刻返回錯(cuò)誤信息,通知直播端進(jìn)行調(diào)整。這一步驟非常重要,因?yàn)槿绻麛?shù)據(jù)格式有問題,觀眾在觀看直播時(shí)可能會(huì)出現(xiàn)畫面卡頓、音視頻不同步等問題。

5.關(guān)聯(lián)直播 ID 及編碼服務(wù)器第一映射

為了確保即使在網(wǎng)絡(luò)中斷或擴(kuò)容等情況下,主播和觀眾依然能無縫地繼續(xù)直播,編碼服務(wù)器需要建立一個(gè) 映射關(guān)系。也就是說,它會(huì)把每個(gè) 直播 ID 和特定的編碼服務(wù)器進(jìn)行綁定。

即使在某些情況下,主播的設(shè)備與服務(wù)器斷開了連接,重新連接時(shí),依然會(huì)被指向同一個(gè)編碼服務(wù)器。這就是為什么你會(huì)發(fā)現(xiàn)斷流重連時(shí),畫面流暢,觀眾甚至幾乎感覺不到中斷。

6.使用直播數(shù)據(jù)編碼成不同解析度的輸出數(shù)據(jù)

接下來就是編碼服務(wù)器的核心工作之一了:轉(zhuǎn)碼。

直播的數(shù)據(jù)往往需要適應(yīng)不同觀眾的觀看環(huán)境,比如有人使用高速網(wǎng)絡(luò),有人使用低速網(wǎng)絡(luò),還有人用手機(jī)、平板或大屏幕電視觀看。因此,編碼服務(wù)器需要將直播數(shù)據(jù)轉(zhuǎn)換成不同的解析度和比特率,比如:720p、1080p、4K等。

這樣,無論觀眾用什么設(shè)備,網(wǎng)絡(luò)條件如何,編碼服務(wù)器都能根據(jù)需求推送最合適的版本,保證觀眾的觀看體驗(yàn)。

7.使用 DASH 協(xié)議輸出數(shù)據(jù)并持久化存儲(chǔ)

最后一步,編碼服務(wù)器會(huì)使用 DASH(Dynamic Adaptive Streaming over HTTP) 協(xié)議將編碼后的數(shù)據(jù)輸出。DASH 是一種基于 HTTP 的自適應(yīng)流媒體傳輸技術(shù),它會(huì)根據(jù)觀眾的網(wǎng)絡(luò)狀況動(dòng)態(tài)調(diào)整視頻質(zhì)量,確保即使在網(wǎng)絡(luò)波動(dòng)時(shí),直播也能保持流暢。

同時(shí),編碼服務(wù)器會(huì)把這些直播數(shù)據(jù) 持久化存儲(chǔ),這樣就能實(shí)現(xiàn)直播的回放功能。觀眾在直播結(jié)束后,依然可以查看之前的直播內(nèi)容,形成更多的互動(dòng)機(jī)會(huì)和增值內(nèi)容。

END

好了,以上就是我們今天聊到的 社區(qū)直播帶貨的直播流程。從直播端推流到 POP 代理服務(wù)器,再到網(wǎng)關(guān)服務(wù)器的端口轉(zhuǎn)換與負(fù)載分配,最后經(jīng)過編碼服務(wù)器的轉(zhuǎn)碼和輸出,這一系列的步驟保障了直播的高效和穩(wěn)定。

直播帶貨不僅僅是主播和觀眾的互動(dòng),在這背后,其實(shí)有一整套復(fù)雜的技術(shù)架構(gòu)在支撐著。這些技術(shù)確保了直播的流暢度、畫質(zhì)以及數(shù)據(jù)的安全性,讓大家在看直播時(shí)體驗(yàn)更好,也讓帶貨的效果更加顯著。

責(zé)任編輯:武曉燕 來源: 軟件求生
相關(guān)推薦

2021-02-07 08:13:18

@DateTimeFo@NumberFormSpring

2020-02-23 15:55:00

疫情AI人工智能

2009-03-10 12:42:45

2020-06-30 08:12:32

VMwareKVMDocker

2022-08-15 08:01:00

三色標(biāo)記JVM算法

2021-07-29 16:56:59

微信騰訊注冊(cè)

2025-04-03 10:39:56

2022-01-14 14:19:38

ReactTS前端

2019-12-02 15:22:34

硬件 游戲顯存

2020-05-26 08:52:36

Java JVM多態(tài)

2020-11-24 06:20:02

Linux日志文件系統(tǒng)

2017-06-06 15:13:07

2018-03-07 10:59:52

2014-03-31 14:59:08

大數(shù)據(jù)

2014-07-21 10:32:52

蘋果公司實(shí)習(xí)

2023-04-09 23:25:30

Java注解元注解

2022-12-14 07:32:40

InnoDBMySQL引擎

2018-10-26 10:41:19

2019-03-15 10:55:12

通信系統(tǒng)手機(jī)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)