本文介紹使用 OBS 實現超低延時直播推流的詳細內容。
背景資訊
RTMP:相容性好,OBS 通過「自訂」服務即可填入推流網域名稱與串流資訊,適合沿用既有 RTMP 工具鏈的情境。
WHIP(WebRTC-HTTP ingestion protocol):基於 HTTP POST 將即時音視頻送入伺服器的輕量協議,便於與 WebRTC 採集鏈路對接;WHIP 為 WebRTC 生態常見接入方式,具有低延時、易整合的特點。
準備工作
-
完成超低延時直播網域名稱配置並跑通Demo。
-
下載並安裝OBS推流工具(OBS版本不低於29.1.0)。下載地址,請參見OBS Studio。
-
確認本次推流使用RTMP或WHIP其中一種即可,無需同時配置兩種方式。
使用OBS推流
步驟一:視頻編碼最佳實務(RTMP 與 WHIP 均需配置)
在 OBS 中選擇檔案 > 設定 > 輸出,將視頻編碼調整為下列推薦組合,用於去除 B 幀、控制 GOP、降低端到端延時。該配置對 RTMP 推流與 WHIP 推流均適用。
-
輸出模式:進階
-
主要畫面格間隔(秒,0=自動):1
說明主要畫面格間隔設定不超過3秒,此處推薦設定為1秒。
-
CPU使用預設(高=較少的CPU佔用):veryfast
-
配置(Profile):baseline
-
微調(Tune):zerolatency
在輸出頁簽的串流子選項卡中,將編碼器設為 x264,碼率控制設為 CBR,位元速率設為 2500 Kbps。
步驟二:使用地址產生器產生推流地址
在ApsaraVideo for Live控制台使用地址產生器擷取推流資訊。請按後續選用的方式只準備其中一種:RTMP推流需複製 RTMP 地址(見下方樣本);WHIP推流需複製 RTS 的 artc://地址,供步驟四轉換為 HTTP(S) 入口。也支援自訂拼接,具體操作請參見方法二:自訂拼接。
-
RTMP樣本(以控制台實際產生為準):
rtmp://push.example.com/live/live?auth_key=****** -
ARTC(供 WHIP 轉換)樣本:
artc://al.yun.com/live/live?auth_key=******
- 登入ApsaraVideo for Live控制台。
-
在左側導覽列選擇。
-
在產生器中完成網域名稱、AppName、StreamName、鑒權等配置,查看並複製本次推流所需的RTMP或ARTC推流地址。
單擊開始產生,頁面將同時產生推流地址和原畫播放地址(ARTC 格式,以
artc://開頭)。
步驟三(可選):使用 RTMP 推流
-
運行 OBS,選擇檔案 > 設定 > 直播:
-
服務:選擇自訂。
-
伺服器與串流密鑰:填入步驟二中複製的 RTMP 資訊(按控制台展示拆分或合并;若頁面提供完整 URL,可按 OBS 要求拆分為伺服器與密鑰兩段)。單擊確定儲存。
-
步驟四(可選):使用 WHIP 推流
-
將步驟二中複製的 ARTC 推流地址轉換為 WHIP 可用的 HTTP(S) URL。
-
將協議頭由 ARTC 切換為 HTTP(S),樣本:
-
原地址為:
artc://al.yun.com/live/live?auth_key=******。 -
修改為:
https://al.yun.com/live/live?auth_key=******。
-
-
若使用 HTTPS 推流,需按環境配置認證。具體請參見配置HTTPS安全加速。
-
-
在 OBS 中配置 WHIP。
-
運行 OBS。
-
選擇檔案 > 設定 > 直播。
-
按如下參數填寫後單擊確定。
參數
描述
服務
選擇WHIP。
伺服器
輸入步驟2修改後的WHIP協議URL。
Bearer Token
串流密鑰為空白。
-
步驟五:開始推流並驗證
-
在 OBS 主介面來源地區添加音視頻來源後,單擊開始推流。
-
在直播控制台流管理中確認線上流。
-
在ApsaraVideo for Live控制台左側導覽列選擇流管理。
-
選擇待查詢的網域名稱,輸入AppName和StreamName。
單擊線上流頁簽,單擊查詢按鈕查看推流狀態。
-
單擊查詢,查看當前即時線上流。
-
-
使用 Web 端播放 RTS 流做快速驗證。
-
進入RTS Web播放器。
-
單擊拉流頁簽。
-
輸入已開通超低延時直播的播流地址URL。
在RTS Web播放器Demo頁面選擇拉流Tab頁簽,確認已勾選訂閱音頻和訂閱視頻,在拉流地址輸入框中輸入播流地址,然後單擊開始拉流。
-
單擊開始拉流,播放 RTS 直播流。
-