跳至主要內容

OBS with SRT Server

OBS官方英文SRT教學
需要軟體Linux(WSL2)、Docker desktop、OBS
以及設定Windows防火牆、Modem設定Port Forwarding Input
port 1935 for SRT、port 4444 for OBS websocket(可選)
環境跑在WSL下,部分軟體用Container執行

整體流程大致上是

先把畫面串流透過SRT送去SRT Server
OBS則會從SRT Server拉串流下來輸出給直播平台
NOALBS則從旁邊監控bitrate狀態 , 依據情形透過OBS Websocket控制/切換BRB場景

NOALBS場景切換

obs-websocket(Github)
安裝在obs目錄下後,上方工具選單多出Websockets server setting
NOALBS場景自動轉換(Github)

apt install npm
npm install --production
設定config.json

* OBS IP不能使用localhost疑似BUG?
obs
normalScene          一般場景名稱,___Scene依此類推
highRttTrigger       RTT觸發BRB,README說比bitrate準確
refreshSceneInterval 重整場景時間
requestMs            BRB場景偵測轉換時間
rtmp
{
        "server": "srt-live-server",
        "stats": "http://127.0.0.1:8181/stats",   //stats頁面
        "publisher": "publish/live/feed1"         //依據streamid
}
twitchChat
channel              頻道名稱
botUsername          機器人名稱
oauth                填入IRC token
language             可替換zh_tw顯示中文

可用指令集
* 如果要用!raid/!host,記得要把bot設定成編輯者

OBS網頁控制(可選)

皆依據使用裝置網路環境 , 例如同主機下連接localhost:4444
故從外部控制需要對外開放OBS websocket port , 不建議使用預設4444

SRT Server

srt-live-server修改版本 (Gitlab)
Docker image版本

自行修改sls.conf

listen           srt port
latency          延遲時間不建議太小,要跟APP一致 
http_port 8181   http://127.0.0.1:8181/stats bitrate數據用來接自動轉場
domain_player    接收自訂名稱
domain_publisher 推送自訂名稱
default_sid      預設路徑如果APP不支援streamid
record_hls       是否儲存VOD
record_hls_path_prefix VOD路徑

docker run --rm -d -p 1935:1935/udp \
-p 8181:8181/tcp --name=srt --pull=always \
-v /custom_conf/sls.conf:/etc/sls/sls.conf b3ckontwitch/sls-b3ck-edit

APP推串流
srt://IP_ADDR:1935?streamid=domain_publisher_name/live/<streamkey>
OBS新增媒體來源拉串流
srt://IP_ADDR:1935?streamid=domain_player_name/live/<streamkey>

實況APP

larix broadcaster或其他支援SRT協定APP
Connections新增上述手機推串流至URL
srt://IP_ADDR:1935以及streamid
* APP Mode可以設定僅限音源/bitrate上限

啟動流程

  1. 啟動SRT Server
  2. 啟動OBS等待Websocket連接
  3. 啟動NOALBS確認BOT/OBS連接正常
  4. 啟動實況APP確認串流連接正常

Q & A

Q: 為什麼需要用到SRT Server?
A: OBS可以直接當srt listener接串流,但如果要自動轉場需要stats頁面來取得當前bitrate

測試RTMP協定用

docker run -p 1935:1935 -p 8080:8080 -e RTMP_STREAM_NAMES=live \
--rm --pull=always --name rtmp -d jasonrivers/nginx-rtmp
http://127.0.0.1:8080/stat bitrate數據用來接自動轉場
APP推串流
rtmp://IP_ADDR:1935/live/<streamkey>
OBS新增媒體來源拉串流
rtmp://IP_ADDR:1935/live/<streamkey>

分類:Linux

1 則留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

由 Compete Themes 設計的 Author 佈景主題