OBS+Nginx+VLC推拉流

Naylor發表於2024-03-13

目錄
  • 概述
  • 環境準備
    • 安裝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推流流程分為兩個部分:

  • 設定推流來源
  • 設定推流地址、音影片引數等等

設定推流來源

本文設定的來源有兩個:筆記本攝像頭和播放筆記本硬碟中一個資料夾裡面的圖片

52fe94e6d4a76471fdb97a410fb082d5.png

畫面由圖片和攝像頭畫面合成而來,圖片每2s會切換,就像幻燈片一樣。

設定推流地址

本文簡單起見,僅設定了推流地址,沒有對音影片及其它配置做修改,全部使用預設

b5677f57d6dde76e5aa2a47c61470a1e.png

  • 服務:自定義
  • 伺服器:流媒體服務端點,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

拉流地址就是推流地址,它們一一對應,如果一切正常將可以看到合成後的畫面了。

54f2610c2886343dd24bb22facae4c8f.png

附圖

https://i.iter01.com/images/4cb4a53ecf711c17b29b8e85358ecbfeb1f617de5a9f39d6b6f630ade99ce405.png

https://i.iter01.com/images/d001f087f7ca016035b7f3fce664db74c431b352812a06882a3b83f14ad7af1f.png

https://i.iter01.com/images/7b3d350dcf6bbd0cb78fa834e37d06a608540fafd16bf8b18889e1465506d72f.png

相關文章