為提升ApsaraVideo for Live在弱網環境下的推流效果,推流SDK在傳統的RTMP推流協議基礎上新增了基於RTC的RTS推流。本文介紹不同網路環境下兩種推流協議的資料對比,可以發現RTS推流相對於RTMP推流穩定性和抗弱網有顯著提升,建議使用者優先使用RTS推流。推流SDK內部已做了自動降級處理,當RTS推流出現問題時,會自動降級到RTMP推流。
正常網路和弱網環境下推流效果對比
測試情境
主播使用直播SDK推流,觀眾通過CDN拉流觀看。在主播端設定各種弱網限制,觀察觀眾端的播放效果。主播側的弱網限制只限制主播上行網路,不限制下行網路。
推流參數
RTMP推流和RTS推流使用相同的推流參數:
類型 | 參數資訊 |
解析度 | 720 X 1280 |
幀率 | 20 |
碼率 | 2 Mbps |
網路限制
類型 | 參數說明 |
上行丟包20% | 上行發送10個資料包丟失2個。 |
上行頻寬500k | 每秒鐘最多發送500 kb的資料。 |
上行延時500ms | 資料包需要經過500 ms後才被網路發送出去。 |
視訊卡頓率
幾種不同網路環境下的視訊卡頓率對比如下,下圖中值越大代表視頻越卡頓,從圖中可以看出,RTS在弱網環境下的視訊卡頓比RTMP好。
視頻畫質
幾種不同網路環境下的視頻畫質對比如下,下圖中值越大代表畫質評分越高,畫質越好,從圖中可以看出,RTS在弱網環境下的視頻畫質比RTMP好。
使用推流SDK進行RTS推流
前提條件
已開通ApsaraVideo for Live服務,完成網域名稱添加和推拉流網域名稱關聯。具體操作,請參見快速開始ApsaraVideo for Live。
推流網域名稱開啟RTS推流。自2022年09月01日起,新添加的推流網域名稱預設開啟RTS推流,您無需額外配置。若您的網域名稱是在2022年09月01日之前添加的,需要手動開通。
在左側導覽列選擇推/播流網域名稱管理,進入網域名稱管理頁面。
單擊指定推流網域名稱操作列的網域名稱配置,進入網域名稱管理頁面。
選擇
。開啟RTS推流開關。
產生推流地址,RTS推流地址和RTMP推流地址除開始的協議頭不同之外,其他建置規則相同。使用RTS推流需要使用
artc://
開頭的協議地址。具體請參見產生推流地址和播放地址。
RTS推流
使用推流SDK進行RTS推流時,和使用推流SDK進行RTMP推流的方法相同,只需要在調用startPush介面的時候將RTS格式的推流地址傳遞給推流SDK即可,其他的不需要做改動。具體操作,請參見Android推流SDK功能使用或iOS推流SDK功能使用。
RTS推流僅支援音視頻推流,即流中必須包含音頻和視頻。如果您的使用情境為純音頻或純視頻推流,則需要同步輸入對應的視頻或音頻資料。
直播播放
使用RTS推流的直播,在播放端可以使用RTMP、FLV、HLS協議流進行標準直播播放,也可以使用ARTC協議流進行超低延時直播播放。關於超低延時直播播放,請參見超低延時直播播放。