- 概述
- 環境準備
- 安裝Nginx
- 安裝OBS
- 安裝VLC
- 操作步驟
- Nginx新增rtmp配置
- 使用OBS推流
- 設定推流來源
- 設定推流地址
- 開始直播
- 使用VLC拉流
- 附圖
概述
推拉流分為推流和拉流。推流就是將client端的影片畫面推送到流媒體伺服器;拉流就是另外一個client端從流媒體伺服器獲取影片畫面。
本文中,使用OBS軟體作為推流客戶端,使用Nginx作為流媒體伺服器,使用VLC作為拉流客戶端。
整個推拉流過程:
- 流媒體服務設定推拉流url,推流和拉流使用同一個url
- OBS獲取攝像頭畫面,並推送到推拉流url
- VLC串流推拉流url
- OBS這邊獲取到什麼畫面,VLC就可以看到什麼畫面,大概有2-4s延遲
環境準備
本文用到了兩個裝置:
- CentOS:安裝Nginx,作為流媒體伺服器
- Windows11:安裝有OBS和VLC,既作為推流客戶端,也作為拉流客戶端
安裝Nginx
nginx本身不可以作為流媒體伺服器使用,需要藉助rtmp模組。此模組屬於非預設安裝的功能,需要編譯安裝。
可參考:https://www.cnblogs.com/Naylor/p/18070047
安裝OBS
參考官網:https://obsproject.com/
安裝VLC
參考官網:https://www.videolan.org
操作步驟
Nginx新增rtmp配置
前提需要先安裝了 nginx-rtmp-module 模組
rtmp配置和http配置並列,本文放到了 /usr/local/nginx/conf/nginx.conf 最後
rtmp {
server {
listen 1935; #監聽的埠
chunk_size 4000;
application hls { #rtmp推流請求路徑
live on;
}
}
}
這裡的hls是作為整個流媒體伺服器的端點,並不是某一個推拉流的端點。我們可以同時開啟多個推拉流,比如 :
- rtmp://192.168.1.xxx:1935/hls/room1
- rtmp://192.168.1.xxx:1935/hls/default
- rtmp://192.168.1.xxx:1935/hls/test
使用OBS推流
OBS推流流程分為兩個部分:
- 設定推流來源
- 設定推流地址、音影片引數等等
設定推流來源
本文設定的來源有兩個:筆記本攝像頭和播放筆記本硬碟中一個資料夾裡面的圖片
畫面由圖片和攝像頭畫面合成而來,圖片每2s會切換,就像幻燈片一樣。
設定推流地址
本文簡單起見,僅設定了推流地址,沒有對音影片及其它配置做修改,全部使用預設
- 服務:自定義
- 伺服器:流媒體服務端點,rtmp://192.168.1.xxx:1935/hls
- 推流碼:home。推流端點,這個值用來唯一區分某一個直播間,可以任意定義,拉流的時候將這個值拼接到rtmp://192.168.1.xxx:1935/hls後面就可以。推拉流端點需要保持一致
開始直播
如果設定都正確,此時可以點選開始直播按鈕進行推流了。
推流完整地址:rtmp://192.168.1.xxx:1935/hls/home
使用VLC拉流
VLC--媒體--開啟網路串流,然後輸入拉流地址
rtmp://192.168.1.xxx:1935/hls/home
拉流地址就是推流地址,它們一一對應,如果一切正常將可以看到合成後的畫面了。
附圖
https://img2024.cnblogs.com/blog/718864/202403/718864-20240313105213077-577164247.png
https://img2024.cnblogs.com/blog/718864/202403/718864-20240313105212960-709759029.png
https://img2024.cnblogs.com/blog/718864/202403/718864-20240313105213953-1808463517.png