OBS+Nginx+VLC推拉流

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 【2月更文挑战第6天】推拉流分为推流和拉流。推流就是将client端的视频画面推送到流媒体服务器;拉流就是另外一个client端从流媒体服务器获取视频画面。

[toc]

概述

推拉流分为推流和拉流。推流就是将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://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

目录
相关文章
|
9天前
|
应用服务中间件 nginx Windows
ffmpeg推流到nginx服务器,并使用vlc播放rtmp视频
ffmpeg推流到nginx服务器,并使用vlc播放rtmp视频
|
Web App开发 应用服务中间件 PHP
Nginx搭建RTMP推拉流服务器
如题,今天就来实现一个推拉流服务器,模拟下推流后被客户端拉流看到效果。 详细步骤如下 - 安装Nginx - 安装FFmpeg - 安装VLC客户端 安装Nginx 在Mac上有一个很好用的包管理插件,名为homebrew。
3504 0
|
9天前
|
移动开发 前端开发 JavaScript
前端vue2、vue3去掉url路由“ # ”号——nginx配置(一)
前端vue2、vue3去掉url路由“ # ”号——nginx配置
64 0
|
9天前
|
JavaScript 前端开发 应用服务中间件
angular引入包、路由权限配置、打包问题与nginx配置问题(简单部署)
angular引入包、路由权限配置、打包问题与nginx配置问题(简单部署)
26 0
|
9天前
|
前端开发 JavaScript 应用服务中间件
前端vue2、vue3去掉url路由“ # ”号——nginx配置(二)
前端vue2、vue3去掉url路由“ # ”号——nginx配置
72 0
|
3天前
|
负载均衡 前端开发 应用服务中间件
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400
|
3天前
|
负载均衡 前端开发 应用服务中间件
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400(2)
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400(2)
|
4天前
|
负载均衡 安全 应用服务中间件
nginx配置ssl和反向代理的配置代码
【5月更文挑战第2天】nginx配置ssl和反向代理的配置代码
23 3
|
7天前
|
负载均衡 应用服务中间件 nginx
解决nginx配置负载均衡时invalid host in upstream报错
在Windows环境下,配置Nginx 1.11.5进行负载均衡时遇到问题,服务无法启动。错误日志显示“invalid host in upstream”。检查发现上游服务器列表中,192.168.29.128的主机地址无效。负载均衡配置中,两个服务器地址前误加了"http://"。修正方法是删除上游服务器列表和proxy_pass中的"http://"。问题解决后,Nginx服务应能正常启动。
48 4
解决nginx配置负载均衡时invalid host in upstream报错
|
9天前
|
应用服务中间件 nginx
nginx配置集群轮训策略
nginx配置集群轮训策略
428 0