自架 IRL 戶外直播伺服器 - (IRL RTMP SERVER TO OBS)

超雷貧血前端開發工程師
8 min readAug 13, 2020

--

將戶外實況的影像串流回家中的伺服器再透過OBS推播到Twitch

2022 11月更新
這裡推薦一篇更好的方法,
只要在伺服器上花一點租金就可以有穩定的SRT訊號。
https://hitorigs.live/cloud-srt-irl-server-setting-up/

對於自架主機苦手的朋友請不要再往下看了

0. 前言

常見的在家中開 twitch 實況,就是一台電腦使用 OBS 或 streamlabs 打上 twitch 串流設定。

開戶外實況也很簡單,下載 streamlabs app 然後使用 Twitch 帳號登入後就可以開了。當然可能還是需要把其他細節設定完成,如聊天視窗,抖內通知訊息等等。

在戶外實況使用手機網路的關係,可能會因為環境因素使網速不順,導致直播中斷,觀眾流失,vod 分成好幾段等等困擾情形。

這個方法使用自家的電腦成為伺服器端串流到平台,家裡網路相對容易保持暢通,所以這樣的實況等於是不會中斷的。並且可以在手機短暫斷訊時,自動切換設定好的待機畫面作為通知。

1. 基本環境需求

  1. 4G網路的手機 1 台
    安裝 : steamlabs app
  2. 網路順暢,直播效能中上的家用主機 1 台
    安裝 : obs , VLC player, nignx , 設定連接埠
    系統環境 : window 10
  3. 能設定自動撥號上網及虛擬伺服器的家用路由器 1 台

補充加分: 攜帶型網路分享器 讓戶外網路更順暢

2. [伺服器端] 隨開即用 Nginx RTMP server

下載已經設定好的 Nginx 伺服器壓縮包,內容是已經把開設串流伺服器會用到的 1935 port 設定好了。

進入後,在code按鈕找到Download Zip下載
https://github.com/illuspas/nginx-rtmp-win32

一般是建議把壓縮好的資料夾放在沒有中文字的路徑下,例如C:/Nginx。
裡面有很多檔案,點擊 nginx.exe 即可執行伺服器,點擊 stop.bat 停止伺服器,如果想自行更改連接埠設定可以用編輯器開啟 conf/nginx.conf 修改。

直接點擊 nginx.exe 開啟伺服器。在瀏覽器輸入http://127.0.0.1 或 http://127.0.0.1:8080,如果有頁面,這階段就算是執行成功了。

nginx 啟動成功時的歡迎頁面

3. [伺服器端] 防火牆設定

  1. 允許應用程式通過防火牆
    打開 win10 的控制台 [設定] -> [更新與安全性] -> [Windows 安全性] -> [防火牆與網路防護] -> [允許應用程式通過防火牆] -> [變更設定] -> [允許其他應用程式] 找到剛剛上一步的資料夾,如果你是放在C槽,請找到 C:/Nginx 的 niginx.exe。
防火牆設定步驟
  1. 進階設定 : 開啟 1935 與 4444 連接埠
    打開 win10 的控制台 [設定] -> [更新與安全性] -> [Windows 安全性] -> [防火牆與網路防護] -> [進階設定] -> [具有進階安全性的的Windows Defender 防火牆] -> [輸入規則] -> [新增規則]。
    開始設定 [新增輸入規則精靈] -> [連接埠]下一步 -> [TCP][特定本機連接埠輸入1935]下一步 -> [允許連線] -> [三個都打勾] -> [取名稱例如T1935] -> 完成。
    以同樣步驟再次設定連接埠 4444。
[防火牆與網路防護] -> [進階設定]
[輸入規則] -> [新增規則]。
[連接埠]下一步
[TCP][特定本機連接埠輸入1935]下一步
[允許連線]
[三個都打勾]
[取名稱] -> 完成。
  1. 路由器設定 : 虛擬伺服器 或 DMZ
    一般不建議直接設定 DMZ,因為這樣會把自己電腦所有的連接埠(port)都開放到網路上,容易有安全疑慮。
    可以的話,請使用有可以設定虛擬伺服器功能的路由器,只需將自己的內網 IP (如:192.168.0.100)的 1935 與 4444 設定為開啟即可。
    ※通常如果家裡網路是直接使用中華電信的路由器上網,將會沒有以上這個功能。
    這時就需要另外購買路由器。配線方式是直接將中華電信路由器接一條網路線連接到新的路由器,然後新的路由器設定 pppoe 硬體撥號(第一次需設定撥號的帳號密碼),再設定開啟。
    一般家用的路由器價位大概是台幣700元。
    通常路由器官方網站會提供各個型號的操作介面,讓你知道有沒有該功能。
路由器的虛擬伺服器功能

4. [伺服器端] VLC Player

至官網下載並安裝 VLC Player,安裝好放著即可,這個之後要在OBS作擷取來自手機的訊號。
https://www.videolan.org/vlc/index.zh-TW.html

下載安裝VLC PLAYER

5. [手機] 軟體設定

手機安裝 steamlabs app,第一次會要求登入 Twitch 帳號,目前不知道有沒有登入有什麼差別,先登入吧。

設定串流的部分:
點擊畫面左上的三條線 -> [Settings] -> [Streaming Platform] -> 選[custom RTMP server] 有兩格,上面輸入電腦位置,下面輸入一組金鑰(可自行設定,一開始輸入test就好)。
參考格式如下:
rtmp://220.xxx.xxx.xxx:1935/live
test
設定好按ok回到畫面,按下中間紅色按鈕,如果順利連接到電腦,螢幕畫面右下會出現連線訊號指示。
當然這時只是代表有訊號送出,但是電腦那邊還沒有接收串流。

steamlabs app [Settings] -> [Streaming Platform]

6. [串流] OBS

回到電腦,打開OBS,按+號新增VLC視訊來源,設定或點兩下出現設定視窗,播放行為[不可見時停止,可見時重新開始],播放清單輸入自己電腦內網ip,[rtmp://192.168.0.xxx:1935/live/test],

剛剛的test就是應用在這,如果不想被別人猜到ip後連入電腦,可以把test設定成很難猜到的密碼。

看內網ip的方式是 ,[命令提示字元] -> 輸入ipconfig -> 查看乙太網路卡 IPv4 位址。

按+號新增VLC視訊來源
輸入自己電腦內網ip

6. 參考資源整理

實作在家裡自架 IRL 戶外直播伺服器
https://hitorigs.live/irl-server-setting-up/

【黑儀】直播教學
https://www.youtube.com/watch?v=dAXgWm5mV40

7. 後記: 重點還是在於網路是否順暢

架設戶外伺服器並不是解決連線問題用的,其目的主要還是為了輔助在戶外直播的時候產生斷線的一個小備案,前提還是得著重網路連線品質。

也就是說到了戶外的時候,除了無可避免的斷線環境之外(如 : 電梯或地下室),其它任何事後還是得想辦法保持順暢連線。

--

--