OBS+Nginx+VLC推拉流

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
可观测可视化 Grafana 版,10个用户账号 1个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 【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

目录
相关文章
|
5月前
|
应用服务中间件 Linux nginx
FFmpeg开发笔记(四十)Nginx集成rtmp模块实现RTMP推拉流
《FFmpeg开发实战》书中介绍了如何使用FFmpeg向网络推流,简单流媒体服务器MediaMTX不适用于复杂业务。nginx-rtmp是Nginx的RTMP模块,提供基本流媒体服务。要在Linux上集成rtmp,需从官方下载nginx和nginx-rtmp-module源码,解压后在nginx目录配置并添加rtmp模块,编译安装。配置nginx.conf启用RTMP服务,监听1935端口。使用ffmpeg推流测试,如能通过VLC播放,表明nginx-rtmp运行正常。更多详情见书本。
135 0
FFmpeg开发笔记(四十)Nginx集成rtmp模块实现RTMP推拉流
|
7月前
|
网络协议 应用服务中间件 Apache
Nginx直播服务器搭建及推拉流测试
Nginx直播服务器搭建及推拉流测试
273 2
|
7月前
|
应用服务中间件 nginx Windows
ffmpeg推流到nginx服务器,并使用vlc播放rtmp视频
ffmpeg推流到nginx服务器,并使用vlc播放rtmp视频
388 0
|
Web App开发 应用服务中间件 PHP
Nginx搭建RTMP推拉流服务器
如题,今天就来实现一个推拉流服务器,模拟下推流后被客户端拉流看到效果。 详细步骤如下 - 安装Nginx - 安装FFmpeg - 安装VLC客户端 安装Nginx 在Mac上有一个很好用的包管理插件,名为homebrew。
3561 0
|
23天前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
55 7
|
2月前
|
应用服务中间件 BI nginx
Nginx的location配置详解
【10月更文挑战第16天】Nginx的location配置详解
|
2月前
|
缓存 负载均衡 安全
Nginx常用基本配置总结:从入门到实战的全方位指南
Nginx常用基本配置总结:从入门到实战的全方位指南
308 0
|
19天前
|
缓存 负载均衡 算法
如何配置Nginx反向代理以实现负载均衡?
如何配置Nginx反向代理以实现负载均衡?
|
23天前
|
存储 负载均衡 中间件
Nginx反向代理配置详解,图文全面总结,建议收藏
Nginx 是大型架构必备中间件,也是大厂喜欢考察的内容,必知必会。本篇全面详解 Nginx 反向代理及配置,建议收藏。
Nginx反向代理配置详解,图文全面总结,建议收藏
|
10天前
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
31 3