實時直播:將延時降低至200~400ms
本文為您介紹如何通過超低延時直播RTS將直播延時降低至400ms以下,以便為用戶提供流暢且實時的觀看體驗。
方案簡介
實時直播方案依托阿里云GRTN(全球?qū)崟r傳輸網(wǎng)絡(luò)),采用全鏈路WebRTC協(xié)議實現(xiàn)直播端到端200~400ms的延時,同時可以無縫擴展標準直播,實現(xiàn)業(yè)務(wù)的前向兼容。
基于實時直播(RTS2.0)實現(xiàn)直播端到端200~400ms延時:
主播通過采集設(shè)備采集直播內(nèi)容后,通過推流SDK,將直播流通過RTS(WebRTC)協(xié)議推流至阿里云邊緣節(jié)點;
直播流在GRTN全球3200+節(jié)點中通過智能選路、QoS技術(shù)實時傳輸;
觀眾側(cè)通過RTS(WebRTC)協(xié)議在最近的阿里云邊緣節(jié)點進行拉流并在設(shè)備上進行播放,端到端延時200~400ms。
(可選)開啟內(nèi)部轉(zhuǎn)推,實現(xiàn)媒體處理、低延時直播(RTS 1.0)和標準直播能力:
開啟旁路轉(zhuǎn)推后,主播推流后阿里云視頻直播將自動轉(zhuǎn)封裝生成一路RTMP流;
您可以針對該流配置轉(zhuǎn)碼、錄制、截圖等媒體服務(wù);
若您希望保持低延時拉流,可以使用低延時直播(RTS 1.0方案),在觀眾側(cè)仍可使用RTS(WebRTC)拉流,獲得端到端500~1000ms的延時;
若您希望使用標準直播,則可以采用RTMP、fFLV、HLS等協(xié)議進行拉流播放。
方案實施
前提條件
您已經(jīng)開通視頻直播服務(wù)。開通方法,請參見開通服務(wù)。
您已經(jīng)配置直播推流、播流的域名,操作方法請參見快速開始視頻直播中添加推流域名和播流域名、配置CNAME和關(guān)聯(lián)推流域名和播流域名步驟。
推流、播流域名配置HTTPS證書
本文將使用瀏覽器的推拉流Demo進行演示,為推流、播流域名配置HTTPS證書是瀏覽器WebRTC的安全要求,配置HTTPS證書請參見配置HTTPS安全加速。
若您使用Native SDK進行推流和播放則無需配置HTTPS證書。
播流域名配置實時直播(RTS 2.0)
登錄視頻直播控制臺。
在視頻直播控制臺左側(cè)導航欄,單擊推/播流域名管理,進入域名管理頁面。
選擇您要配置的播流域名,單擊域名配置。
選擇
。單擊修改配置,版本選擇實時直播(RTS 2.0),應(yīng)用場景選擇直播觀看。
單擊確定。
推流域名配置實時直播(RTS 2.0)
登錄視頻直播控制臺。
在視頻直播控制臺左側(cè)導航欄,單擊推/播流域名管理,進入域名管理頁面。
選擇您要配置的推流域名,單擊域名配置。
選擇
。單擊修改配置,版本選擇實時直播推流(RTS 2.0)。
單擊確定。
生成直播推流和播放地址
在功能驗證階段您可以采用地址生成器快速生成推流、拉流地址,具體操作請參見直播地址生成器。
您也可以根據(jù)規(guī)則自定義直播推、拉流地址,具體操作請參見生成推流地址和播放地址。
主播側(cè)進行RTS推流
您可以選擇以下推流SDK其中之一進行集成:
RTS推流SDK | 相關(guān)文檔 |
Web推流SDK | |
iOS推流SDK | 說明 iOS推流SDK默認支持WebRTC推流。 |
Android推流SDK | 說明 Android推流SDK默認支持WebRTC推流。 |
Linux推流SDK | |
OBS推流插件 | |
對接標準WebRTC協(xié)議自研接入 |
本文中使用Web RTS推流Demo為您演示:
在Demo中選擇推流模式。
展開none下拉框,根據(jù)您的實際需求,選擇camera(攝像頭)或者screen(屏幕共享)。
如果您選擇camera,需要分別單擊下方的麥克風和攝像頭按鈕進行授權(quán),授權(quán)成功后,再展開選擇麥克風和選擇攝像頭下拉框,選擇對應(yīng)的設(shè)備。
輸入生成直播推流和播放地址中已生成的RTS格式推流地址,并單擊創(chuàng)建本地流。
單擊開始推流,即可完成推流。
觀眾側(cè)進行RTS播放
您可以選擇以下播放SDK其中之一進行集成:
RTS播放SDK | 相關(guān)文檔 |
Web播放SDK | |
iOS播放SDK | |
Android播放SDK | |
Mac播放SDK | |
WIndows播放SDK | |
對接標準WebRTC協(xié)議自研接入 |
本文中使用Web RTS播放Demo為您演示:
在Demo中選擇拉流模式。
輸入生成直播推流和播放地址中已生成的RTS格式播放地址。
單擊開始拉流。
(可選)配置內(nèi)部轉(zhuǎn)推
登錄視頻直播控制臺。
在視頻直播控制臺左側(cè)導航欄,單擊推/播流域名管理,進入域名管理頁面。
選擇您要配置的推流域名,單擊域名配置。
選擇
。單擊修改配置,版本選擇實時直播推流(RTS 2.0),同時開啟轉(zhuǎn)推開關(guān),并選擇另一個推流域名用于接收轉(zhuǎn)推后的RTMP流。
例如:轉(zhuǎn)推接收域名為
push.example.com
,其關(guān)聯(lián)的播放域名為pull.example.com
,需注意:轉(zhuǎn)推接收域名和其關(guān)聯(lián)的播放域名均不能開啟實時直播(RTS 2.0)。
內(nèi)部轉(zhuǎn)推將不會收取轉(zhuǎn)推費用。
(可選)基于轉(zhuǎn)推后的流配置媒體處理服務(wù)
完成轉(zhuǎn)推配置后,可基于轉(zhuǎn)推接收域名關(guān)聯(lián)的播放域名,即基于pull.example.com
進行媒體處理模板配置。
在域名管理頁面,單擊模板配置,選擇您需要的能力進行配置。
(可選)基于轉(zhuǎn)推后的流進行低延時直播(RTS 1.0) 和標準直播播放
完成轉(zhuǎn)推后,可基于轉(zhuǎn)推接收域名關(guān)聯(lián)的播放域名,即基于pull.example.com
可以同時進行低延時直播(RTS 1.0)和標準直播(RTMP/FLV/HLS)播放原始流,或云上轉(zhuǎn)碼后的流。
播放標準直播(RTMP/FLV/HLS),具體操作請參見播放標準直播。
播放低延時直播(RTS 1.0):自2022年9月1日起,播放域名默認均支持RTS 1.0的播放,僅需在播放側(cè)集成RTS SDK即可播放,具體操作請參見播放低延時直播(RTS 1.0)。