怎麼利用 OBS 推送 webrtc 流 ( whip/whep ) 到 smart rtmpd

superconvert發表於2024-10-16

webrtc whip 推流 & whep 拉流簡介

RFC 定義

通用的 webrtc 對於 SDP 協議的交換已經有對應的 RFC 草案出爐了。這就是 WHIP( push stream ) & WHEP ( pull stream ) .
WHIP RFC Link: https://www.ietf.org/archive/id/draft-ietf-wish-whip-01.html
WHEP RFC Link: https://www.ietf.org/archive/id/draft-murillo-whep-03.html

環境準備

要搭建 whip 和 whep 的整體演示環境需要準備 WHEP 推流端,sfu 伺服器端,whep 拉流端。這裡採用 OBS 實現 WHIP , smart rtmpd 實現 SFU, WEB player 實現 WHEP 。

  1. OBS 準備
    OBS 支援 webrtc 的 WHIP 推流版本是 >= 30.0, 本文采用的是 Windows 版本的 30.2.3。下載地址為: https://obsproject.com/download
    image

只有版本符合的才支援 whip 推流

  1. SFU 準備
    smart rtmpd 支援 webrtc 的 WHIP/WHEP 版本是 >= 2024.10.10 ,本文采用的是 Windows 版本的 2024.10.10。下載地址為:https://github.com/superconvert/smart_rtmpd/blob/master/rtmpd.zip
    image

smart rtmpd 的版本是以日期命名的,格式是:年月日 時分秒

  1. Web player 準備
    smart rtmpd 自帶的演示頁面內就有 webrtc 的 WHEP 播放器,執行 smart rtmpd 後,只需輸入 http://伺服器地址:埠 就會進入 smart rtmpd 自帶的主頁面。
    image

上圖中 whip 列表包含所有的 whip 推流,點選其中一路,whep 播放器就會播放 webrtc 流

OBS 推流

  1. 新增媒體源
    image

選擇一個 mp4 檔案新增到視窗
2. whip 設定
image

點選 <設定> 按鈕,進入設定主介面,點選 <直播> 按鈕,選擇 <服務> 為 "WHIP", <伺服器> 一欄填寫 WHIP URL: "http://192.168.0.10:8080/whip/v1?app=live&name=stream"
3. whip 推流
image

點選 <開始直播> 按鈕

推流成功標誌

image

伺服器日誌有 webrtc://192.168.0.10:8080/live/stream 的字樣,基本上就表明推流成功了, live 就是 app 分類, stream 就是流的名字 name

Web player 拉流

image

訪問 smart rtmpd 自帶的主頁面,最下面就會有 WHIP 列表,因為可能存在多路 webrtc 的 whip 推流,展開 WHIP 列表, 找到剛才的推流,點選就會透過 whep 播放 webrtc 的影片了。

影片演示

B站: https://www.bilibili.com/video/BV1Tp2dYbEfR/?spm_id_from=333.337.search-card.all.click
抖音:https://www.douyin.com/user/MS4wLjABAAAAWHrvSz-DdJeb8-RgzWZRZOAb52fjdiKaAIuIWVHTl7ZhX6wIOrL4T_MzYkCnWgGm?from_tab_name=main&modal_id=7425917377214221631&vid=7278584962377403683

相關文章