Skip to content
  • Home
  • Python教學
  • 科技新聞資訊
  • 網站開發教學
Copyright 網絡設計教學 2025
Theme by ThemeinProgress
Proudly powered by WordPress
  • Home
  • Python教學
  • 科技新聞資訊
  • 網站開發教學
網絡設計教學網絡設計教學,網站網頁教學,軟體使用教學
  • You are here :
  • Home
  • 科技新聞資訊
  • 得物直播低延遲探索| 得物技術- 得物技術的個人空間- 科技資訊
科技新聞資訊

得物直播低延遲探索| 得物技術- 得物技術的個人空間- 科技資訊

Jiking 2023-05-10 Article

1.背景

直播的時效性保證了良好的用戶體驗,根據經驗在交易環節,延遲越低轉化效果也會越好。傳統的直播延遲問題已經成為了一個不容忽視的問題,高延遲不僅破壞了用戶的觀看體驗,也讓主播難以實時獲取到用戶的反饋。為了進一步優化直播時效體驗,我們需要對產生延遲的原因以及整個交互鏈路有個清晰的認知,才能穩定的實施相關方案。

2.主觀體驗

我們團隊內部觀察了其他電商平台的延時,其中TOP1 的平台,端到端的延遲在3s 左右,而得物在5s 左右,提升空間還是比較明顯,我們需要進一步明確具體原因。

3.延遲降低有什麼好處

3.1 提升交易環節順暢度

在得物的直播場景中有添加秒殺商品的環節,秒殺商品的倒計時是實時進行的,假如直播畫面有將近8s的延遲才能追上,在這一過程中無論是用戶還是主播溝通中都會存在gap。在直播過程中用戶在延遲高的場景中提問了但是主播遲遲沒有反饋,在這個期間用戶有可能退出直播間或者跳過這個商品,這個結果無論是對主播或者是對交易轉換都不太能接受。

1.png

3.2 提升體驗,不同用戶之間延遲差別太大

A、B兩個用戶可能在看某一個直播間,A用戶可能很早就進直播間了,而B用戶是新進來的,但是B用戶的延遲卻比A用戶的低了幾秒,A用戶看到可能就會懷疑自己手機、網絡、APP是不是哪個有問題,造成不好的體驗反饋。

4.直播延遲是如何產生的?

要搞清楚延遲是如何產生的,我們勢必要了解到其中哪些程式可能出現延遲,並且是可優化的。

主播–> 雲服務器–> CDN節點–> 用戶

雲服務器–> 主播: 直播內容轉碼、壓縮等處理

CDN節點–> 用戶: 直播內容分發到多個邊緣節點

用戶–> 設備: 接收直播內容 –> 顯示直播內容

2.png

4.1 在這些過程中,可能會產生延遲的地方

(部分解釋來源第三方文獻)

主要包含編碼延遲以及發送緩存引入的延遲,這個環節的延遲優化空間不多,雖然通過調節編碼器參數可有效降低編碼延遲,但帶來的是畫質的損失,同時也影響壓縮效果,因此多數集中在優化弱網傳輸,出發點是為了提供用戶觀看流暢體驗,而不僅限於降低延遲

對於直播平台而言,實時轉碼是非常必要的一項技術。通過對視頻流進行實時轉碼,可以將高清視頻流優化為多個分辨率,滿足不同終端設備的兼容性和帶寬需求,並且減小了網絡傳輸的開銷。但是,實時轉碼過程中必然會帶來一定的延遲,這是因為:

    1. 轉碼過程需要對視頻流進行分析和處理,比如壓縮、格式轉換等。這個過程需要一定的計算資源和時間。
    2. 轉碼後的視頻需要重新傳輸到CDN節點中,再由觀眾設備進行播放。這個過程可能會受到網絡帶寬、傳輸速率等因素的影響,導致一定的延遲。

因此,針對轉碼延遲的問題,需要在減小延遲和提高視頻質量之間進行權衡。採用一些高級的轉碼算法、減少圖片質量降低對視頻畫質的傷害、優化編碼參數等方法,但也同樣會帶來畫質與壓縮率的損失,因此這部分延遲需要根據實際場景綜合來考慮,如果對延遲要求很高,可以略微調整下。

不考慮回源的情況,這個環節主要影響延遲的是gop cache 策略,各類CDN 廠商稱呼都不一致,有的又叫(RTMP、FLV、HLS…)Delay,即在邊緣節點緩存一路流最新的幾個gop(一般媒體時長平均為5 ~ 7s),目的是為了在拉流請求建立時,可以有媒體數據即時發送,優化首幀和卡頓,這樣也就導致了播放端收到的第一幀數據就是5 ~ 7s 前的舊數據,第一幀的延遲就達到了5 ~ 7s,這個環節是端到端延遲過大的根因。

在直播拉流播放過程中,為了提高播放的流暢度和用戶體驗,通常進行緩存一部分buffer。緩存是指在播放器開始播放之前,預先加載一定量的視頻數據到本地緩存中,以便後續播放時能夠快速讀取緩存中的數據,避免卡頓和不流暢的現象。這種“預加載”的緩存被稱為“緩存buffer”。

緩存buffer大小不同可能會導致延遲時間也不同,常見的緩存buffer大小為2秒或者更小,這意味著播放器會預先從視頻源中加載2秒到本地緩存中,等播放器播放到接近緩存末尾時,會再次預加載2秒內容到緩存中,以保證播放的流暢性。

固定延遲是指播放器在接收到網絡數據之後,為保證數據正常播放而需要等待一定的固定時間,一般用於防止視頻播放過程中的卡頓和不流暢。例如,如果設置的固定延遲為1秒,那麼從數據包到達手機端再到數據包真正播釋出來這個過程,就需要多等待1秒左右的時間,這就是固定延遲產生的效果。

通常情況下,播放器會自動根據當前的網絡環境動態調整緩存buffer大小和固定延遲時間,以保證最佳的播放效果。不過,如果網絡環境不太理想,仍有可能出現視頻卡頓和不流暢的情況,此時可以通過配置和優化緩存buffer大小和固定延遲時間來改善播放效果。

假設用戶的設備硬件性能較為低端,在接收和解碼直播數據時出現卡頓等問題。為此,可以通過優化碼流參數,如對碼率、分辨率等進行調節,使其更加適應用戶設備的硬件性能;或者採用盡量少的傳輸協議,以減少解碼時間和相關計算資源的使用。

其中任何一個環節出現問題,都有可能導致直播過程中產生延遲。為了減少這種延遲,可以優化各個環節的處理效率,並優化網絡傳輸等方面的參數和設置。

在直播的傳輸環節裡,對延遲影響大的主要是CDN的傳輸、轉碼、分發和播放緩衝,使用實時的轉碼模式,轉碼器引入的延遲一般在300ms 以內甚至更短。 CDN 的分發環節也會帶來一定的延遲,但相對也較短。而為了對抗網絡抖動引入的播放緩衝區引入的延遲播放緩衝引入的延遲常常會有5s 甚至更多。

4.2 如何知道具體延遲?

採用端到端的測試方法,即計算播放端到推流端的時間差作為延遲。

找一個在線的精確到毫秒的時鐘:http://www.daojishiqi.com/bjtime.asp

A. 打開上述網頁,推流端對準該網頁或者抓取窗口

B. 播放端:到對應直播間觀看對應的時間差

對A、B(螢幕)進行對比,截圖計算時間差。

3.png

編碼的時候把時間戳寫到SEI 信息中,播放器通過拉流成功後解析SEI 信息然後與當前時間戳做差值對比。

4.png

SEI 需要涉及到推拉流側底層開發,所以暫選的方法一進行測試,測試結果發現現階段最保守以及快速的解決方式是直接調整雲直播控制台的延遲檔位。如果要調整延遲檔位,那勢必要了解到調整之後會帶來什麼影響以及變化,這其中就涉及到了GOP 相關的知識點。

4.3 GOP 以及GOP cache 是什麼?我們為什麼要了解它?

顧名思義GOP cache,是一組存於CDN 服務端的GOP 緩存,GOP cache 越大延遲影響也越大。通過了解GOP cache 我們能在直播延遲鏈路中能做出更精準的優化。 GOP cache 是某一方廠商提出的名詞,各大CDN 的稱呼也不一致,有的雲廠商又稱之為(RTMP、FLV、HLS…)Delay。與推流GOP 或者轉碼播流GOP 配合,就形成完整的端到端延遲。


  • GOP(Group of Pictures)

而GOP 是一組連續的視頻幀,通常包括一個I幀(關鍵幀)和若干個P幀(預測幀)和B幀(雙向預測幀)。在直播過程中,如果GOP 的大小過大,會導致接收端在等待I幀的到來時需要等待相對較長的時間,這就會增加視頻的延遲。因此,降低GOP 大小可以在一定程度上減小視頻的延遲。


  • 直播控制台的延遲(GOP cache) 配置路徑(網域名稱配置->直播延遲配置) 選項中選擇

5.jpeg


  • 推流GOP & 轉碼GOP 關係

    • 無轉碼的情況下,推流GOP == 播流的GOP
    • 有轉碼的情況下,如果轉碼模板配置了GOP ,則播流的GOP == 轉碼配置的GOP
    • 如果轉碼模板未指定具體的GOP,則推流GOP == 轉碼後的GOP


  • 延遲配置的描述,強調的都是推流gop,是否有誤導問題?

不算完全算誤導,一方面不是所有直播流都走轉碼,甚至修改GOP。另一方面推流GOP 對流傳輸效率可能存在一定影響。主要描述沒有把轉碼GOP 的影響和區別包括進去。


  • 緩存的單位duration or size?

得物使用的直播緩存的單位是duration

在直播延遲中,緩存的單位可以是時間(duration)或大小(size)。

以時間(duration)為單位的緩存指的是,在視頻採集、編碼和推送到雲服務器的過程中,視頻數據會先被存放在緩衝區中,等待一定的時間(也就是緩存時間)後,才會被推送到CDN分發節點上進行播放。

以大小(size)為單位的緩存則是根據緩存容量進行控制,視頻在採集、編碼和推送到雲服務器的過程中,每當視頻數據達到一定的大小,就會被推送到CDN分發節點上進行播放。

在實際的直播過程中,通常會綜合使用時間和大小兩種緩存單位來進行延遲控制。如果對延遲比較在意,可以適當增加緩存時間和大小,保證接收端有足夠的緩存時間進行播放,減少出現卡頓和停頓的概率。如果實時性比較重要的話,可以適當降低緩存時間和大小,縮短延遲時間,保證直播的實時性。

需要注意的是,緩存時間和緩存大小是直播平台優化延遲的兩個關鍵因素。合理的設置能夠顯著減小延遲,提升用戶體驗。但同時,緩存過多或者過少都可能會帶來一定的問題,因此需要根據實際情況進行調整和優化。

不固定,且沒有GOP 數量的概念,是以時長論大小,取決於CDN 側的buffer ,不管buffer 多大,發送數據是按照至少一個delay, 最多delay + gop 發送的,流數據是不斷產生新數據的,發送的時候內容不斷在滑動。對延遲沒有直接的影響關係。

RTMP :低(2s)中(4s)高(8s)

FLV :低(2s)中(4s)高(8s)

计算延迟方式:[RtmpDelay, RtmpDelay + GOP] 这里的 GOP,转码前用的推流设置的 GOP,转码后用的转码模板配置的 GOP自定义模版配置的 1080p,gop = 10s = 200桢  的情况下 理论上最小最大值就下面的几种范围[2,12],[4,14],[8,18]

flv 播放的話,delay設置2秒,gop 設置1秒,理論上端到端的延遲基本在3秒左右,如果碼率高的情況下,還得適當提升delay 的值保證直播的流暢。另外除了CDN 緩存延遲以外,播放器緩存策略也需要考慮。

如果要實現穩定2秒,可以考慮超低延遲直播的方案。

5.後續可實施的有效降低直播延遲手段


  • 降低CDN 正式環境的gopCache 至低檔位

調整完之後端到端延遲預計能從5s-8s 降低至3s-5s


  • 推流GOP 調整為1s,平均端到端延遲再下降1s

理論上來說降低推流GOP,是對延遲有幫助的,將GOP 降至1秒,則每秒會推送一個關鍵幀,接收端就可以在接收到關鍵幀後直接播放,進一步減小延遲。同時,由於每秒會推送更多關鍵幀,對視頻的畫質和穩定性也會產生積極的影響。

推流GOP 的大小不是唯一的影響直播延遲的因素。還有視頻編碼、推流服務器的 配置、網絡環境等因素都會對延遲產生影響,因此只有在綜合考慮到各種因素後,合理設置推流GOP大小,才能夠最大程度地降低直播延遲。


  • 增加buffer 中視頻數據的消費速度,有效降低延遲,例如倍速播放或者直接丟幀,策略需要更精細化

也就是說增加拉流側的消費速度,在有需求的情況下配合倍速追楨的策略,加快視頻的播放速度,在某一個閥值中開啟或者停止。

推流側在推流的過程中把關鍵幀打入時間戳到SEI 信息裡去

拉流側在拉流的過程中解碼成功之後把對應的SEI 信息裡的時間戳解析出來

然後根據服務端的在線時間對比兩者之差,決定播放器的播放器倍速,例如(1.0 ~ 1.4s) 之間逐漸增加和遞減,最終在符合預期的延遲時間停止加速消費


  • 確認自研播放器buffer 緩存當前現狀是多少秒,對齊競品至少2s buffer

常見的直播播放器緩存buffer大小為2秒,主要是出於減少卡頓和停頓的概率,提升用戶體驗的考慮。播放器緩存buffer是指播放器預先緩存一定量的視頻數據進行播放。當網絡狀況不好、視頻流傳輸中斷或者延遲過高時,播放器緩存就會派上用場,保證播放過程的連續性和流暢性。一般來說,播放器緩存buffer大小會根據網絡環境和帶寬等因素而不同。如果緩存過小,會導致卡頓和停頓;如果緩存過大,會增加延遲,影響實時性。經過優化,常見的直播播放器緩存buffer大小為2秒左右,既能夠保證播放過程的流暢性,又不會過度增加延遲。不同的直播平台(PC、移動端)、不同的網絡(WIFI、4G、5G)和設備(不同廠商)可能會有不同的播放器緩存buffer 大小設置,因此在實際使用中需要根據具體情況進行調整和優化。


  • 使用阿里雲的RTS 或者,字節的RTM 協議,如果使用超低延時方案還需確認使用場景(例如頭部熱門直播間有需要的才採用)

阿里雲的RTS(Real-Time Streaming)和字節的RTM(RTM,Real Time Media)都是超低延時商業化方案,有著使延遲降低至<=1s的效果, 在具體的應用場景和功能方面都差不多。

    1. RTS全鏈路延時監控、CDN 傳輸協議改造、UDP 等底層技術優,可以提供低延遲的流媒體數據傳輸和處理服務,支援高並發、低卡頓、秒開流暢的直播體驗。
    2. RTM通過鏈路傳輸協議改造為UDP 等底層技術優化,解決TCP 協議自身局限和網絡抖動引起延遲累加,支援高並發、高可靠性的優質直播觀看體驗。

以上兩種商業化方案都需要配合播放器SDK使用,且RTM 需要配合火山CDN 環境使用,兩者費用也不一樣。需要針對我們當前架構和現狀作出權衡考慮。


  • 使用QUIC 協議(底層UDP協議理論上延遲會更低),已在三方播放器上驗證過。普通flv <=5s 下降到<=2s

常規直播推流底層協議是基於TCP的,理論上極限在3秒左右已經是最低的了。

而QUIC(Quick UDP Internet Connections)是一種基於用戶數據報協議(UDP)的協議,它在傳輸上相比於傳統的傳輸層協議(TCP)有以下優勢,導致延遲更低:

    1. 連接建立時間短, TCP 協議需要經過三次握手的過程來建立連接,而QUIC協議只需要一次握手,這樣就大大減少了連接建立的時間,提高了通信效率。
    2. 報文傳輸方式不同, TCP 協議在發送數據之前首先需要進行慢啟動過程,以逐步增加發送速率並監測網絡擁塞。 QUIC 協議通過動態地調整窗口大小和傳輸速率,使得數據傳輸更加高效。
    3. 多路復用支援度更好, QUIC 協議支援多路復用,這意味著可以在單個連接上同時傳輸多個流,從而保證更高的帶寬利用率和更低的延遲。
    4. 減少網絡服務的依賴, QUIC協議能夠在連接失效或者網絡服務不可用的情況下,進行快速恢復,從而保證了穩定的數據傳輸。

綜上所述,由於QUIC協議在連接建立、報文傳輸、多路復用和網絡故障處理等方面都有著比. TCP協議更好的表現,因此它可以提供更低的延遲,更高的速率以及更可靠的連接。另外一個使用QUIC(UDP)也需要綜合考慮一些問題,它帶來更低的延遲後,會不會有一些其他方面受到負面影響,例如拉流成功率、穩定性問題之類的。所以最終實施方案還需要做更詳細的測試權衡利弊。

6.一些思考

直播延遲問題涉及的因素較多,包括推流端和播放端的緩存設置、傳輸協議、GOP控制等方面。為了解決延遲問題,在實際開發中,為了達到更好的用戶體驗,我們需要對這些因素進行綜合考慮和優化,在不斷的實踐和實驗中尋找最佳方案,通過綜合使用這些技術方案,可以更好地提高直播平台的實時性和觀看體驗。


活動推薦:得物技術社招開始啦!點擊關注得物技術公眾號了解詳情!


本文屬得物技術原創,來源於:得物技術官網

得物技術文章可以任意分享和轉發,但請務必註明版權和來源:得物技術官網

#得物直播低延遲探索 #得物技術 #得物技術的個人空間 #科技資訊

You may also like

上海网信办对属地 46 款 App 收集使用个人信息情况开展专项检查 – 科技資訊

微信、QQ 全新 UOS 版本发布 – 科技資訊

代码层面探索前端性能 | 京东云技术团队 – 京东云开发者的个人空间 – 科技資訊

Gitee 推荐 | 为开发者打造的代码解释器 Octopus

DataSophon —— 云原生大数据管家

1-8 月我国规上互联网企业完成业务收入 9067 亿元 – 科技資訊

相关贴文:

  1. 每日一博| 淺談系統穩定性與高可用保障的幾種思路
  2. 每日一博| 得物極光藍紙箱尺寸設計實踐
  3. 得物視頻編輯工具優化全指南- 得物技術的個人空間- 科技資訊
  4. 得物雲原生全鏈路追踪Trace2.0-採集篇- 得物技術的個人空間- 科技資訊
  5. 單測在商家前端業務中的實踐- 得物技術的個人空間- 科技資訊
  6. 得物染色環境落地實踐- 得物技術的個人空間- 科技資訊
  7. 每日一博| 得物熱點探測技術架構設計與實踐
  8. 每日一博| 訂單流量錄製與回放探索實踐
Tags: OSCHINA博客, 得物技術, 得物技術的個人空間, 得物直播低延遲探索, 得物直播低延遲探索| 得物技術- 得物技術的個人空間, 科技資訊

近期文章

  • 訂單狀態控制插件用於WooCommerce
  • 客戶無法停止狂歡的WooCommerce插件! | ⭐5.0評級WooCommerce
  • Curcy – WooCommerce多貨幣 – 貨幣切換器安裝和使用
  • 如何將WooCommerce產品發佈到eBay和Etsy |教程2025
  • 最好的WooCommerce產品搜索插件,以改善用戶體驗
  • Shopify vs WooCommerce(WordPress) – 哪個更好?
  • 免費在WordPress中添加產品品牌|在品牌下出售產品
  • WooCommerce還是Shopify?初學者的全面比較|| 2025年最佳電子商務平台
  • 2024年的12個最佳打印件WooCommerce插件

標籤雲

Dropshipping ecommerce JavaScript Joomla OSCHINA博客 python REBELLION Shopify Shopify 商店設置 Shopify 直銷 Woocommerce WordPress 代發貨 刀塔2 和 商店 商業 喬姆拉 在 如何創建 Shopify 商店 如何在 如何建立 Shopify 商店 如何開始代出貨 年 店舖教學 店鋪化 店鋪培訓 教學 獲獎產品 直銷 Shopify 直銷教程 科技資訊 程式碼 網路業務 網路賺錢 臉書廣告 與 行銷 詳解 購物 跨平台 運輸船 適合初學者的 Shopify 教學課程 適合初學者的直銷 電子商務

Copyright 網絡設計教學 2025