如何降低延時
更新時間 2023-08-29 09:00:36
最近更新時間: 2023-08-29 09:00:36
分享文章
本文介紹如何降低延時。
背景信息
在視頻直播場景下,主播與用戶之間延時越短,更容易進行互動。在此背景下,客戶通常希望視頻直播的分發延時越短越好,如果需要降低直播延時,可參考如下方式進行性能優化。
前提說明
影響直播延時的因素通常包含:GOP大小、主播推流器編碼、第一公里傳輸、CDN加速、視頻處理、最后一公里傳輸、使用協議、播放器buffer、播放器解碼渲染等。
優化方式一:GOP設置
- GOP(Group Of Picture)是視頻的關鍵幀的間隔,是視頻圖像編碼器和解碼器存取的基本單位。GOP由I幀開始,后面跟隨著一組B幀和P幀,直到下一個I幀之前的幀為一個GOP。當用戶第一次觀看的時候,播放器需要找到I幀才能開始播放,一般情況下直播服務器會發送緩存中最新的I幀給播放器。
- 因此,建議將直播推流端GOP設置為1~2s。縮短GOP的時長,減少播放器加載GOP的耗時來降低直播延時。
優化方式二:選擇合適的播放協議
天翼云提供FLV、HLS、RTMP三種播放協議。
- FLV
- 由Adobe公司推出,將流媒體數據封裝成FLV格式,通過HTTP協議傳輸給客戶端,格式簡單,只是在大塊的視頻幀和音視頻頭部加入一些標記頭信息。支持使用HTTPS加密傳輸,支持Android移動端和iOS移動端。
- 示例://domain/app/streamname.flv
- RTMP
- 由Adobe公司推出,傳輸的過程中消息會被拆分為更小的消息塊(Chunk)單元,再將分割后的消息塊通過TCP協議傳輸。由于其復雜的拆包和組包過程,可能導致數據傳輸不穩定。
- 示例:rtmp://domain/app/streamname
- HLS
- 由Apple公司推出,基于HTTP的流媒體傳輸協議。將視頻分成多個連續的視頻小分片,然后用m3u8索引表進行管理。一般播放器會在緩存3-4個分片后才啟動播放,假設一個分片為3s,因此總延時至少約9s~12s。但HLS可以直接在瀏覽器中播放。
- 示例://domain/app/streamname.m3u8
因此,HTTP-FLV和RTMP延時較小,適合低延時播放的場景。HLS延時較大但兼容性好,適合對延時不敏感但需要更多播放終端可以播放的場景。
優化方式三:減少對直播流的處理
如果對直播流進行轉碼操作,用戶請求的是轉碼流,通常會在原來延時的基礎上在增加1s~3s的延時。如果對延時有要求,建議是不進行對應的轉碼。
優化方式四:使用極速直播
極速直播(LIVE RTC)是天翼云視頻直播產品的全新升級,是一款超低延時、超高流暢度的直播產品。其基于天翼云優質CDN與邊緣節點,兼容標準直播功能的同時,提供更強的抗丟包能力,適用于對網絡延時要求高、互動性強的直播場景。如果客戶對延時要求極高,可以選擇極速直播產品。