首页 > 系统相关 >OBS+Nginx+VLC推拉流

OBS+Nginx+VLC推拉流

时间:2024-03-13 11:01:29浏览次数:19  
标签:VLC Nginx 推拉 rtmp 拉流 推流 OBS

目录

概述

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

附图

/i/l/?n=24&i=blog/718864/202403/718864-20240313105213077-577164247.png

/i/l/?n=24&i=blog/718864/202403/718864-20240313105212960-709759029.png

/i/l/?n=24&i=blog/718864/202403/718864-20240313105213953-1808463517.png

标签:VLC,Nginx,推拉,rtmp,拉流,推流,OBS
From: https://www.cnblogs.com/Naylor/p/18070157

相关文章

  • 46_docker-compose_nginx
    1.安装Docker-composecurl-L"https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-$(uname-s)-$(uname-m)"-o/usr/local/bin/docker-composechmod+x/usr/local/bin/docker-composeln-s/usr/local/bin/docker-compose/usr/b......
  • Nginx安装nginx-rtmp-module模块
    简介nginx中的模块虽然就是类似插件的概念,但是它无法像VsCode那样轻松的安装扩展。nginx要安装其它模块必须同时拿到nginx源代码和模块源代码,然后手动编译,将模块打到nginx中,最终生成一个名为nginx的可执行文件。流程查看当前nginx的版本(假设安装位置为:/usr/local/nginx)下......
  • Rust 构建开源 Pingora 框架可以与nginx媲美
    一、概述Cloudflare为何弃用Nginx,选择使用Rust重新构建新的代理Pingora框架。Cloudflare成立于2010年,是一家领先的云服务提供商,专注于内容分发网络(CDN)和分布式域名解析。它提供一系列安全和性能优化服务,包括防火墙、DDoS防护、SSL/TLS加密和威胁分析。二、Pingora......
  • 如何下载Nginx,部署并设置自启动
    Nginx安装:将程序里的Nginx压缩包进行解压,并将里面的conf文件进行替换将前端打好的包,放在Nginx目录下的html文件夹下面,并在conf文件配置好root的路由地址例如:nginx-1.24.0/html/life/dist需要创建在原来Nginxhtml目录下创建一个life文件夹,然后将前端打包的dist放进去配......
  • 利用Nginx正向代理实现局域网电脑访问外网
    引言在网络环境中,有时候我们需要让局域网内的电脑访问外网,但是由于网络策略或其他原因,直接访问外网是不可行的。这时候,可以借助Nginx来搭建一个正向代理服务器,实现局域网内电脑通过Nginx转发访问外网的需求。在工作中我遇到了一个类似的情况:在公司网络中,由于管理要求,局域网......
  • Nginx 学习
    1.1Nginx是什么?什么场景需要?Nginx到底是什么?是高性能HTTP和反向代理的web服务器Nginx做什么事情?主流应用,HTTP服务器,Web服务器。(性能高,非常注重效率,能够经受高负载考验,支出5w并发数,CPU占用、内存占用低)反向代理服务器负载均衡服务器动静分离(url和前端)Nginx特点占用内......
  • Nginx应用场景及配置
    目录一、Web服务器1.HTTP2.HTTPS二、反向代理三、负载均衡四、重定向1.老域名跳转新域名2.路径重定向五、防盗链六、手机端重定向PC端七、基于请求路径转发不同服务一、Web服务器1.HTTPserver{listen80;server_name_;location/{root/data;......
  • 深入理解 Nginx:原理和基础介绍
    简介Nginx(发音为"engine-x")是一个高性能的开源Web服务器,它也可以用作反向代理服务器、负载均衡器、HTTP缓存以及作为邮件代理服务器。它的灵活性、高性能和可扩展性使其成为许多互联网公司和网站的首选服务器软件。本文将介绍Nginx的原理、基础知识以及其在互联网架构中的......
  • nginx 从一个路径访问另一个路径怎么跳转
    访问stap的路径跳转到根目录下,并且带上之前的参数#rewrite^/stap/(.*)$/$1permanent;访问stap目录代理到下面目录#location/stap/{#rewrite^/stap/(.*)$https://abgg.fxxxuuuppppmppyyai.com/$1permanent;#}访问stap目录代理到下面目录#location/s......
  • 每天进步一点点-nginx.conf配置文件解析转载
    #nginx.conf文件#定义Nginx运行的用户和用户组userwwwwww;#nginx进程数,建议设置为等于CPU总核心数。worker_processes8;#全局错误日志定义类型,[debug|info|notice|warn|error|crit]error_log/usr/local/nginx/logs/error.loginfo;#进程pid文件pid/u......