中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用OBS和WebSockets播放視頻流

發布時間:2021-10-26 17:29:50 來源:億速云 閱讀:560 作者:小新 欄目:互聯網科技

這篇文章主要為大家展示了“怎么用OBS和WebSockets播放視頻流”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“怎么用OBS和WebSockets播放視頻流”這篇文章吧。

OBS 是現在視頻直播的主流之一。它是直播流媒體到 Twitch 的首選軟件,Twitch 是近來最受歡迎的視頻直播網站之一。有一些非常好的附加組件,可以讓流媒體人從他們的手機或另一個屏幕上進行控制,而不影響正在運行的視頻。事實證明,使用 Node-RED 和 obs-websockets 插件來構建自己的控制面板真的很容易。

怎么用OBS和WebSockets播放視頻流

我的 OBS 控制儀表盤

我知道你們很多人在想什么 —— “他在同一句話中提到了 WebSockets 和簡單?”很多人在設置和使用 WebSockets  時遇到了困難,WebSockets 允許通過 Web 服務器的單一連接進行雙向通信。Node-RED 內置了對 WebSockets  的支持,是讓這一切變得簡單的原因之一,至少與編寫自己的客戶端/服務器相比是如此。

在開始之前,請確保你已經安裝和配置了 OBS。首先下載并安裝最新穩定版的 obs-websockets插件。對于本文來說,默認的設置就可以了,但我強烈建議你之后按照說明來保護 obs-websockets 的安全。

接下來,下載并安裝 Node-RED,可以在同一個系統上,也可以在不同的系統上(比如樹莓派)。同樣,默認的安裝對我們這篇文章來說是夠了,但最好按照他們網站上的指示進行安全安裝。

現在是有趣的部分。啟動 Node-RED,打開網頁界面(默認在 http://localhost:1880),你有了一個空白的畫布。打開右邊的“漢堡”菜單,選擇“管理口味Manage Palate”。然后點擊“安裝”標簽,搜索 node-red-contrib-dashboard 和 node-red-contrib-rbe 模塊。

安裝好這些模塊后,點擊右側列表,將以下模塊拖拽到畫布上。

  • 1 Websocket Out

  • 1 Websocket In

  • 1 Debug

  • 1 Inject

  • 1 Switch

  • 1 Change

  • 2 JSON

  • 1 Catch

以下列順序連接它們:

Inject->Button->Change->JSON->Websocket Out Websocket In->JSON->Switch->RBE->Debug Catch->Debug

怎么用OBS和WebSockets播放視頻流

基本流程

當 “Button” 被按下時(或 “Inject” 節點發送一個時間戳),有效載荷通過 “change” 節點發送,從 JSON  對象轉換為字符串,然后發送到 “WebSocket Out” 節點。當 “WebSocket In” 節點收到消息后,會將其轉換為 JSON  對象,如果不是重復的,則發送到 “Debug” 節點進行輸出。而 “Catch” 節點會捕捉到任何錯誤,并將其放入 “Debug” 面板中。

那有效載荷里有什么呢?讓我們設置好一切,一探究竟。

首先,雙擊 “Button” 打開設置對話框。先使用下拉菜單將有效載荷改為 “JSON”。在該字段中,添加以下內容:

{"request-type":"GetVersion"}

啟用 “If msg arrives on input, emulate a button click” 復選框,然后點擊 “Done”  關閉 “Button” 配置。當消息從 “Inject” 節點傳來時,或者 UI 中的 “Button” 被按下,它將把 JSON  有效載荷發送到下一個節點。

怎么用OBS和WebSockets播放視頻流

設置 “Button”

現在打開 “Change” 節點。我們要將 msg.payload.message-id 設置為 msg._msgid,方法是將第一個字段從 payload改為 payload.message-id,然后使用第二個字段的下拉菜單將類型從 String 改為 msg.,然后我們將 _msgid 放入該字段。這樣就會把唯一的消息 ID 復制到 JSON 對象的有效載荷中,這樣每個請求就有一個唯一的 ID 進行跟蹤。

然后將其發送到 “JSON” 節點,以便將 JSON 對象轉換為字符串,然后傳遞給 “Websocket Out” 節點。打開 “Websocket Out” 節點,配置到 OBS 的連接。首先,將 Type 更改為 Connect to,然后單擊鉛筆圖標以創建新的連接 URL。將其設置為 ws://OBSMachine:4444/,然后關閉對話框進行保存。OBSMachine 是 OBS 和 obs-websocket 運行的機器名稱。例如,如果 Node-RED 運行在同一臺機器上,則為 ws://localhost:4444,如果是在名為 luxuria.local 的機器上,則為 ws://luxuria.local:4444。關閉并更新 “Websocket Out” 節點。這將向 OBS 中的 WebSocket 發送有效載荷文本字符串。

怎么用OBS和WebSockets播放視頻流

“Websocket Out” 節點配置

進入 “WebSocket In” 流程!打開 “WebSocket In” 節點,并對其設置 Type 為 Connect to 和我們之前定義的連接的 URL(應自動填充)。接下來是第二個 “JSON” 節點,我們可以不用管它。它接受 OBS 的輸出,并將其轉換為有效載荷對象。

接下來,我們將從中過濾出常規的心跳和狀態更新。打開 “Switch”,將 Property 值設置為 payload["update-type"]。現在從它下面的下拉菜單中選擇 Is Not Null。點擊 + 添加第二個選項,并從下拉菜單中選擇 otherwise

怎么用OBS和WebSockets播放視頻流

“Switch” 節點配置

將 “Switch” 上的新輸出直接連接到 “Debug” 節點的輸入。

RBE 節點將過濾掉重復的內容,需要告訴它要觀察什么字段。由于它應該連接到 “Switch”  的輸出,而它只發送狀態更新,所以這一點很重要,因為 obs-websocket 每隔幾秒鐘就會發送更新。默認情況下,RBE  會比較整個有效載荷對象,它將不斷變化。打開 RBE 節點,將 Property 從 payload 改為 payload.streaming。如果 payload 的 streaming值發生了變化,那么就把消息傳遞過去,否則就丟棄。

最后一步是將 “Debug” 節點的輸出從 msg.payload 改為完整的 msg 對象。這使我們能夠看到整個對象,有時在 payload 之外還有有用的信息。

現在,單擊 “Deploy” 以激活更改。希望 WebSocket 節點下面會有綠色的 Connected 消息。如果它們是紅色或黃色的,則連接 URL 可能不正確,需要更新,或者連接被阻止。請確保遠程機器上的 4444 端口是開放的、可用的,并且 OBS 正在運行!

如果沒有 RBE 節點對 streaming 值的過濾,調試面板(點擊畫布右側的“蟲子”圖標)大約現在就會被心跳消息填滿。點擊 “Inject” 節點左邊的按鈕,發送一個模擬按鈕點擊的信號。如果一切順利,你應該會看到一個對象到達,它有一個 obs-websocket 可以做的所有事情的列表。

怎么用OBS和WebSockets播放視頻流

對 “GetVersion” 的回應

現在在另一個標簽或窗口中打開 http://localhost:1880/ui。它應該顯示一個單一的按鈕。按下它! 調試面板應該會顯示和之前一樣的信息。

恭喜你!你已經發送了你的第一個(希望不是最后一個)WebSocket 消息!

這只是使用 obs-websockets 和 Node-RED 可以做的事情的起步。支持的完整文檔記錄在 obs-websockets 的 GitHub 倉庫的 protocol.md 文件中。通過一點點的實驗,你可以創建一個功能齊全的控制面板來啟動和停止流媒體、改變場景,以及更多。如果你和我一樣,在意識到之前,你就可以設置好各種控件了。

怎么用OBS和WebSockets播放視頻流

以上是“怎么用OBS和WebSockets播放視頻流”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

焦作市| 旬阳县| 平泉县| 克拉玛依市| 武义县| 惠安县| 上蔡县| 芒康县| 平谷区| 陆川县| 郓城县| 顺平县| 容城县| 兴文县| 师宗县| 津市市| 定陶县| 蒙阴县| 清丰县| 德令哈市| 赤峰市| 温宿县| 乌拉特后旗| 三亚市| 台山市| 灯塔市| 杭锦后旗| 德州市| 安福县| 彭水| 吉林省| 全南县| 塘沽区| 沙湾县| 天津市| 益阳市| 青川县| 上林县| 黎城县| 墨江| 石嘴山市|