windows中obs+nginx-http-flv-module的流媒体服务搭建

深入解析nginx-http-flv-module:从编译到跨域配置的全流程指南 本文提供了一份从编译到配置nginx-http-flv-module的完整指南。该模块能将Nginx转变为支持低延迟HTTP-FLV协议的流媒体服务器,兼容现代浏览器且无需插件。文章详细讲解了在Windows环境下的编译步骤、核心配置文件的编写,并重点解决了前端播放时常见的跨域问题,帮助开发者快速搭建稳定的直播服务。 阅读详情

obs+nginx-http-flv-module的流媒体服务搭建

一、编译带nginx-http-flv-module的nginx

个人编译好的:链接:https://pan.baidu.com/s/1XKkyYvK5W6yZA1w2mPaAfg
提取码:3ug6

nginx.zip文件夹

1 下载相关源码

1.1 nginx源代码下载

在这里插入图片描述

点击zip下载文件

1.2 下载nginx-http-flv-module

github地址:https://github.com/winshining/nginx-http-flv-module

1.3 下载 PCRE

下载地址:http://www.pcre.org/

备用:https://udomain.dl.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.zip

1.4 下载zlib

下载地址:http://zlib.net/

备用:https://udomain.dl.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz

1.5 下载OpenSSL

下载地址:https://www.openssl.org/

2 编译准备

2.1 将nginx解压到nginx文件夹

在这里插入图片描述

2.2 新建objs

在nginx目录西面新建objs文件夹,并在objs文件夹下面建lib文件夹,创建好后将nginx-http-flv-module,PCRE,zlib,OpenSSL解压到lib文件夹下面。

在这里插入图片描述

2.3 准备软件
  1. MSYS:https://www.msys2.org/
  2. visual studio: https://visualstudio.microsoft.com/zh-hans/
  3. perl:https://www.perl.org/get.html

3 编译开始编译

3.1 MSYS工具

打开MSYS2 MSYS,使用cd命令来到nginx文件夹下,执行以下命令(注意:objs文件夹下的路径要写对,如果下载版本和我的不一致,需要对应修改文件名)

auto/configure \
    --with-cc=cl \
    --with-debug \
    --prefix= \
    --conf-path=conf/nginx.conf \
    --pid-path=logs/nginx.pid \
    --http-log-path=logs/access.log \
    --error-log-path=logs/error.log \
    --sbin-path=nginx.exe \
    --http-client-body-temp-path=temp/client_body_temp \
    --http-proxy-temp-path=temp/proxy_temp \
    --http-fastcgi-temp-path=temp/fastcgi_temp \
    --http-scgi-temp-path=temp/scgi_temp \
    --http-uwsgi-temp-path=temp/uwsgi_temp \
    --with-cc-opt=-DFD_SETSIZE=1024 \
    --with-pcre=objs/lib/pcre-8.45 \
    --with-zlib=objs/lib/zlib-1.2.11 \
    --with-openssl=objs/lib/openssl-1.1.0i \
    --with-openssl-opt=no-asm \
    --add-module=objs/lib/nginx-http-flv-module \
    --with-http_ssl_module  \
Administrator@DESKTOP-VJ9LQ7M MINGW64 ~
# cd /d/a_devApp/z_nginx_1/dic/nginx/

Administrator@DESKTOP-VJ9LQ7M MINGW64 /d/a_devApp/z_nginx_1/dic/nginx
# auto/configure \
    --with-cc=cl \
    --with-debug \
    --prefix= \
    --conf-path=conf/nginx.conf \
    --pid-path=logs/nginx.pid \
    --http-log-path=logs/access.log \
    --error-log-path=logs/error.log \
    --sbin-path=nginx.exe \
    --http-client-body-temp-path=temp/client_body_temp \
    --http-proxy-temp-path=temp/proxy_temp \
    --http-fastcgi-temp-path=temp/fastcgi_temp \
    --http-scgi-temp-path=temp/scgi_temp \
    --http-uwsgi-temp-path=temp/uwsgi_temp \
    --with-cc-opt=-DFD_SETSIZE=1024 \
    --with-pcre=objs/lib/pcre-8.45 \
    --with-zlib=objs/lib/zlib-1.2.11 \
    --with-openssl=objs/lib/openssl-1.1.0i \
    --with-openssl-opt=no-asm \
    --add-module=objs/lib/nginx-http-flv-module \
    --with-http_ssl_module  \
> ;
checking for OS
 + MINGW64_NT-10.0-18363 3.2.0-340.x86_64 x86_64
 + using Microsoft Visual C++ compiler
 + cl version:
auto/cc/msvc: line 117: [: : integer expression expected
checking for MINGW64_NT-10.0-18363 specific features
configuring additional modules
adding module in objs/lib/nginx-http-flv-module
 + ngx_http_flv_live_module was configured
creating objs/Makefile

Configuration summary
  + using PCRE library: objs/lib/pcre-8.45
  + using OpenSSL library: objs/lib/openssl-1.1.0i
  + using zlib library: objs/lib/zlib-1.2.11

  nginx path prefix: ""
  nginx binary file: "/nginx.exe"
  nginx modules path: "/modules"
  nginx configuration prefix: "/conf"
  nginx configuration file: "/conf/nginx.conf"
  nginx pid file: "/logs/nginx.pid"
  nginx error log file: "/logs/error.log"
  nginx http access log file: "/logs/access.log"
  nginx http client request body temporary files: "temp/client_body_temp"
  nginx http proxy temporary files: "temp/proxy_temp"
  nginx http fastcgi temporary files: "temp/fastcgi_temp"
  nginx http uwsgi temporary files: "temp/uwsgi_temp"
  nginx http scgi temporary files: "temp/scgi_temp"


Administrator@DESKTOP-VJ9LQ7M MINGW64 /d/a_devApp/z_nginx_1/dic/nginx
#

3.2 nmake编译

点击windows图标,进入开始界面,找到“x86 Native Tools Command Pro…”并打开它,进入nginx文件夹。

在这里插入图片描述

在这里插入图片描述

如果出现如下信息则表明编译成功,这个时候在nginx西面创建好html,logs,temp文件夹并且将objs文件夹西面的nginx.exe复制到nginx西面以后就能启动 使用了。

注意:

  1. sed命令找不到:可以去安装的git下面查找有没有对应的sed.exe文件如果有的话,直接配置对应路径的环境变量,错误就能解决。
  2. 中间还配置了vscode studio下面的rc.exe的环境变量才能编译完成

在这里插入图片描述

二 做obs推流到nginx,并且实现h5播放

1 nginx配置

在http的server中加入如下配置

# 在http的server中加入
location /live {
    flv_live on; #当HTTP请求以/live结尾,匹配这儿,这个选项表示开启了flv直播播放功能
    chunked_transfer_encoding  on; #HTTP协议开启Transfer-Encoding: chunked;方式回复

    add_header 'Access-Control-Allow-Origin' '*'; #添加额外的HTTP头
    add_header 'Access-Control-Allow-Credentials' 'true'; #添加额外的HTTP头
}

在外层加入如下配置

rtmp {
    server {
        listen 1935; #Nginx监听的RTMP推流/拉流端口
        application live {
            live on; #当推流时,RTMP路径中的APP(RTMP中一个概念)匹配myapp时,开启直播
            record off; #不记录视频
            gop_cache off;
        }
    }
}

2 obs配置

  1. 在电脑上面下载安装obs
  2. 添加采集器

在这里插入图片描述

  1. 设置加推流
    在这里插入图片描述

    服务器地地址:rtmp:[ip]:[port]/live ip:是nginx的ip地址port 是配置文件中配置的地址 live也是配置文件中配置。

3 编写html

  1. flv.js下载地址:https://github.com/bilibili/flv.js/releases/download/v1.5.0/flv.min.js

  2. html代码

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
        <title>flv.js demo</title>
        <style>
            .mainContainer {
                display: block;
                width: 1024px;
                margin-left: auto;
                margin-right: auto;
            }
    
            .urlInput {
                display: block;
                width: 100%;
                margin-left: auto;
                margin-right: auto;
                margin-top: 8px;
                margin-bottom: 8px;
            }
    
            .centeredVideo {
                display: block;
                width: 100%;
                height: 576px;
                margin-left: auto;
                margin-right: auto;
                margin-bottom: auto;
            }
    
            .controls {
                display: block;
                width: 100%;
                text-align: center;
                margin-left: auto;
                margin-right: auto;
            }
        </style>
    </head>
    
    <body>
    
    <p class="mainContainer">
        <video name="videoElement" id="videoElement" class="centeredVideo" controls muted autoplay width="1024"
               height="576">
            Your browser is too old which doesn't support HTML5 video.
        </video>
    </p>
    
    <script src="js/flv.min.js"></script>
    
    <script>
    
        function start() {
            if (flvjs.isSupported()) {
                var videoElement = document.getElementById('videoElement');
                var flvPlayer = flvjs.createPlayer({
                    type: 'flv',
                    url: 'http://172.16.90.102/live?port=1935&app=live&stream=035c73f7-bb6b-4889-a715-d9eb2d1925cc'
                });
                flvPlayer.attachMediaElement(videoElement);
                flvPlayer.load();
                flvPlayer.play();
            }
        }
    
        document.addEventListener('DOMContentLoaded', function () {
            start();
        });
    </script>
    
    </body>
    
    </html>
    
    

在这里插入图片描述

参考文档:
https://blog.youkuaiyun.com/byna11sina11/article/details/117735684
https://blog.youkuaiyun.com/flyawayl/article/details/108218807

从零搭建HTTP-FLV直播服务器:nginx-http-flv-module全流程配置指南 本文提供了一份从零搭建HTTP-FLV直播服务器的全流程配置指南。详细介绍了如何编译集成nginx-http-flv-module模块,配置Nginx以支持低延迟的HTTP-FLV直播流,并涵盖推流、拉流测试、性能调优及常见问题排查,帮助开发者快速构建稳定高效的直播服务。 阅读详情

相关推荐

Windows平台Nginx HTTP-FLV模块一键部署与实战推流指南

本文详细介绍了在Windows平台下部署Nginx HTTP-FLV模块的完整流程与实战技巧。通过预编译版本快速搭建流媒体服务器,配置优化参数实现1-3秒超低延迟直播,并提供了OBS/FFmpeg推流测试方案及常见问题解决方案,是构建实时视频服务的实用指南。

weixin_28455801的博客 373

Windows 源码编译 nginx (加入nginx-http-flv-module)

Windows 源码编译 nginx (加入nginx-http-flv-module)

像我这样的人 3551

告别OBS!用JavaCV+FFmpeg+nginx-http-flv-module搭建个人直播服务器(Windows版保姆级教程)

本文详细介绍了如何使用JavaCV+FFmpeg+nginx-http-flv-module在Windows平台搭建个人直播服务器,实现从视频采集、RTMP推流到Web端播放的全流程。该方案无需依赖OBS等专业软件,适合需要定制化直播功能的开发者,特别整合了直播和web端播放等关键技术。

weixin_27303545的博客 305

windows下编译nginx-http-flv-moudle

windows下编译nginx-http-flv-moudle一: 编译前准备1:msys(1.0.11内含mingw命令行工具)2:perl (ActivePerl 5.28,草莓版好像会编译出错,具体原因不知)3:nasm(2.11.02)4:sed5:nginx-http-flv-moudle6:zlib(1.2.11,Zlib是一个压缩和解压模块)7:openssl(1.1.1d,加密)8:pcre(8.3.4perl语言兼容正则表达式)二:开始编译1:windows先安装vs,若已安装跳过。未安装

tian_tang_g的博客 2412

Windows上搭建Nginx-http-flv实现rtsp视频流推流到rtmp流媒体服务器并转换和前端拉取http-flv视频流

上面两篇文章实现将本地视频文件模拟上传至rtmp流媒体服务器并转换为http-flv视频流格式在前端进行播放,如果是要对接摄像头实现rtsp视频流格式视频上传,并可进行拉取和前端播放。

BADAO_LIUMANG_QIZHI的博客 3213

Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流

前面使用Vue播放RTMP流时,需要借助于flash。这种方式对于flash插件的安装与后续浏览器支持等都不是很好。可以采用将rtmp的视频流转换成HTTP-FLV的方式,然后前端通过bilibili的flv.js实现播放。

BADAO_LIUMANG_QIZHI的博客 9319

Nginx-HTTP-FLV-Module 使用指南

Nginx-HTTP-FLV-Module 是一个基于 Nginx 的媒体流服务器扩展,它在 Nginx-RTMP-Module 的基础上添加了更多功能,如 HTTP-FLV 视频流的 GOP 缓存、虚拟主机支持(允许多个域名绑定同一IP)以及以JSON格式提供的统计信息。此模块使Nginx能够高效地处理实时流媒体传输,特别适用于直播场景。 ## 项目快速启动 ### 环境准备 确保你的系统...

gitblog_00250的博客 914

Windows环境下Nginx-RTMP与HTTP-FLV直播服务搭建实战

Nginx 是一款轻量级、高性能的 Web 服务器与反向代理服务器,广泛应用于高并发、低延迟的网络服务中。其事件驱动架构使其在处理大量并发连接时表现出色,特别适合用于直播流媒体服务的部署。在直播系统中,Nginx 不仅可以作为静态资源服务器,还可通过模块扩展支持 RTMP、HTTP-FLV 等流媒体协议,实现推流、拉流、转码、分发等关键功能。借助其灵活的配置方式与模块化设计,Nginx 成为了搭建低成本、高可用直播平台的首选工具之一。

weixin_42588555的博客 1356

六、nging-http-flv-module的使用

1. 前言 前面几章我们已经把基础环境都已经搭建完成,这一章我们通过使用 nginx-http-flv-module 搭建一个可以通过HTTP请求并且通过flv.js实现在HTML网页播放实时视频的应用场景。 2. 安装nginx-http-flv-module模块 2.1 简述 nginx-http-flv-module是基于nginx-rtmp-module 的流媒体服务器。它具备了所有nginx-rtmp-module的功能,并且新增多种新功能,功能对比如下。 功能 nginx-http-fl

Aarstg的博客 7409

win环境使用nginx的nginx-http-flv-module.zip

在windows 7 64位 环境下使用nginx的nginx-http-flv-module搭建flv视频流播放所有的安装包,参考:https://blog.youkuaiyun.com/qq_33071429/article/details/102628008

nginx-http-flv-module(windows版)

已编译好的nginx-http-flv-molule(windows版) 基于: --> openssl-1.1.1g --> pcre-8.44 --> zlib-1.2.11 --> nginx-http-module-v1.2.10 --> nginx-1.21.6 ======================== 在网上查找半天都只有教程,没有可免费下载的版本,深知没有积分遍地找资源的痛苦,无奈之下只好自己按照教程一步一个坑编译出来的,供大家免费下载使用。(无毒放心使用)

Nginx流媒体服务器从零搭建一次就成功:nginx-http-flv-module完整安装配置与避坑指南

先别急着复制命令,我想先说一段自己的经历:两年前我第一次部署直播服务时,被"推流成功却拉流黑屏"折磨了整整一个下午,最后才发现只是播放器不支持某种传输格式。如果你也在搭流媒体服务器,那么 nginx-http-flv-module 很可能是你的答案——这是一款基于 nginx-rtmp-module 二次开发的流媒体服务器模块,核心卖点就是**让直播流可以直接通过 HTTP-FLV 协议在浏览器里

gitblog_00498的博客 1066

windows下nginx-http-flv-module一键部署 非常方便

windows下nginx-http-flv-module一键部署 非常方便

nginx-http-flv-module 技术文档

--- ## 安装指南 ### 前提条件 确保您的系统满足以下依赖条件: - GNU make (对于类 Unix 系统) - GCC 或 MSVC (Windows) - GDB(可选) - FFmpeg 或 OBS 用于发布流 - VLC 或 flv.js 用于播放流 - PCRE库(如果需要正则表达式支持) - OpenSSL库(如果需要HTTPS支持) - zlib库(如果需要压缩支...

gitblog_01238的博客 918

nginx带nginx-http-flv模块windows编译版rtmp

nginx带nginx-http-flv模块,包含所有rtmp功能,我自己在windows下编译的,直接可用,用的是最新版的1.19.4版本

5G LDPC编码实战:从校验矩阵到Matlab代码实现(附完整源码)

本文深入解析5G NR标准中的LDPC编码工程实现,聚焦于从3GPP协议中的QC-LDPC校验矩阵到高效Matlab代码的转换。文章详细阐述了基础矩阵(BG1/BG2)选择、提升因子确定以及利用双对角结构的快速编码算法,并提供了完整的、可优化的Matlab源码,旨在帮助通信算法工程师和开发者快速构建5G LDPC编码仿真原型,为硬件实现奠定基础。

table的专栏 376

nginx搭建rtmp-flv流媒体服务

nginx搭建rtmp-flv流媒体服务及测试

Spring_possible的博客 1211

PWM调节DCDC参数计算原理

SOC芯片的核电压、GPU电压、NPU电压、GPU电压等,都会根据性能和实际应用场景来进行电压和频率的调整。 即动态电压频率调整DVFS(Dynamic Voltage and Frequency scaling),优化性能和功耗。

电子绿洲的博客 3158

5步搭建Windows RTMP服务器:快速搭建流媒体服务的终极指南

想在Windows平台上快速搭建自己的流媒体服务吗?无论你是个人主播、教育机构还是企业用户,Nginx-RTMP-Win32都能为你提供一个专业级的Windows RTMP服务器解决方案。这款专为Windows优化的RTMP流媒体服务器让你轻松实现直播推流、视频点播和实时监控功能,只需5步即可完成部署。 ## ✨ 核心功能亮点 **🎯 一站式解决方案** - **RTMP直播服务**:支持O

gitblog_00161的博客 912

从零开始:Basler相机与pylon Viewer的工业视觉入门指南

本文详细介绍了Basler相机与pylon Viewer在工业视觉系统中的入门指南,涵盖硬件连接、软件安装、核心功能解析及实战案例。通过pylon Viewer的全面控制和参数调整功能,帮助新手快速掌握工业视觉检测技术,提升生产效率。

julia4scientist的博客 1134

STM32F103xx / STM32F429VET6最小系统原理图

心血来潮想试一下STM32F4系列和F1系列在编程上有什么差别,手头没有开发板,本着能勤俭节约的原则自己先做一块看看能不能成,看了一下STM32F429VET6的芯片在F429xx中最便宜,对照着数据手册绘制了原理图画了PCB,目前打板中,焊接完如果跑不通回来修改文章。这里我们可以看到,VDD是标准工作电压,VDDA是模拟工作电压,且VDDA必须与VDD等电位,VBAT是备份工作电压,一般接纽扣电池电源,如果存在VREF+引脚,则要求VDDA-VREF+ < 1.2V。截图下来比较糊,不知道为什么。

m0_51294753的博客 1万+

5分钟搭建Windows RTMP流媒体服务器:Nginx-RTMP-Win32完全指南

想在Windows平台上快速搭建自己的流媒体服务器吗?Nginx-RTMP-Win32正是你需要的解决方案!这款专为Windows优化的RTMP流媒体服务器让你轻松实现直播推流、视频点播和实时监控功能。无论你是个人主播、教育机构还是企业用户,这个开源项目都能帮你快速搭建专业的流媒体服务,无需复杂的配置和昂贵的硬件投入。 ## 🚀 快速入门:5分钟搭建直播服务器 ### 第一步:下载与安装

gitblog_00335的博客 921

1、vectorCast单元测试常用操作

进入软件主页面,点击file,选择set working directory,随便选择一个保存该项目的目录即可。

weixin_59334478的博客 2155
上一篇: 配置IP和主机名映射
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值