windows下编译基于nginx插件的rtmp流媒体服务nginx-rtmp
1 概述
rtmp流媒体服务器,开源方案有多种,包括srs,red5,crtmpserver,fms,nginx插件等。本文描述了基于nginx插件的方式来实现rtmp流媒体服务器nginx-rtmp,该插件可以基于开源的nginx-rtmp-module。
本文是基于windows 10 x64操作系统下编译出32位的nginx-rtmp,即相关编译环境是32位的。
相关开源项目如下:
nginx(https://github.com/nginx/nginx)
nginx-rtmp-module(https://github.com/arut/nginx-rtmp-module)
2 准备
介绍编译所需要的第三方工具、第三方库、源码库、IDE。
2.1 第三方工具
2.1.1 perl
perl安装包,运行ActivePerl-5.24.3.2404-MSWin32-x64-404865.exe,默认安装即可,安装完成,在cmd下使用perl -v测试perl是否安装成功。
2.1.2 mingw
MinGW环境安装包,主要是提供MSYS环境,运行mingw-get-setup.exe安装MinGW,默认安装即可,安装完成运行,勾选mingw32-base.bin、msys-base.bin功能,选择菜单Installation-Apply Changes。
2.1.3 sed
sed安装包,运行sed-4.2.1-setup.exe,默认安装即可,安装完成,将默认安装目录C:\Program Files (x86)\GnuWin32\bin添加到系统环境变量Path。
2.2 第三方库
2.2.1 openssl
openssl-1.0.1u,高版本的OpenSSL库编译会报错。
2.2.2 pcre
pcre-8.34。
2.2.3 zlib
zlib-1.2.11。
2.2.4 rtmp插件
nginx-rtmp-module,github下载目前最新的版本。
2.3 源码库
2.3.1 nginx
nginx-1.15.8,github下载目前最新的版本。
2.4 IDE
2.4.1 VS2013
基于VC2013编译环境,需要安装VS2013 IDE。安装包,vs2013.2_ult_chs.iso。
3 目录结构
创建根目录nginx-rtmp,将nginx源码解压到该目录。如下图所示:
在nginx-rtmp目录创建build、build/obj和build/lib两级目录,并将openssl,pcre,zlib,rtmp库拷到build/lib目录,如下图所示:
并在源码目录下创建build.bat,内容如下:
auto/configure --with-cc=cl --builddir=build/obj --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=build/lib/pcre-8.34 \ --with-zlib=build/lib/zlib-1.2.11 --with-openssl=build/lib/openssl-1.0.1u \ --with-select_module --with-http_ssl_module \ --add-module=build/lib/nginx-rtmp-module |
4 编译
4.1 配置OpenSSL环境
打开cmd,切到openssl所在目录nginx-rtmp\build\lib\openssl-1.0.1u\,执行如下命令:
perl Configure VC-WIN32
ms\do_ms
4.2 MSYS环境
转到目录C:\MinGW\msys\1.0\,执行msys.bat,进入msys环境,如下图所示:
切到nginx-rtmp目录
运行build.bat,生成Makefile
执行完成,nginx-rtmp\build\obj生成如下文件:
打开VC2013命令行工具,切到nginx-rtmp目录,执行nmake /f build/obj/Makefile
编译完成,在nginx-rtmp\build\obj生成nginx.exe。
5 测试
在目录nginx-rtmp\build\obj\创建nginx.exe运行所需的目录:conf、logs、temp,将nginx-rtmp\build\lib\nginx-rtmp-module\test\nginx.conf拷贝至nginx-rtmp\build\obj\conf目录,双击运行nginx.exe(停止运行nginx命令为nginx.exe –s stop)。可以通过ffmpeg推流到指定rtmp流地址,通过vlc播放器来播放该rtmp流。
ffmpeg将本地mp4视频文件推流命令行如下:
ffmpeg.exe -re -i test.mp4 -f flv rtmp://localhost:1935/live/test
windows下编译基于nginx插件的rtmp流媒体服务nginx-rtmp的更多相关文章
- windows下编译调试nginx
typora-copy-images-to: image windows下编译调试nginx linux使用gdb跟踪代码效率不高,在通过跟踪代码进行源码分析,与定位复杂逻辑问题时,如果有一个简单易用 ...
- windows下用eclipse+goclipse插件+gdb搭建go语言开发调试环境
windows下用eclipse+goclipse插件+gdb搭建go语言开发调试环境 http://rongmayisheng.com/post/windows%E4%B8%8B%E7%94%A ...
- osg for android学习之一:windows下编译(亲测通过)【转】
1. 首先需要一个OSG for android的环境 (1)NDK 现在Eclipse 对NDK已经相当友好了,已经不需要另外cygwin的参与,具体可以参考 Android NDK开发篇(一):新 ...
- [分享]windows下编译squid的经验(转)
squid是什么我这里就不说了,这不是本文的重点,总之它是一个集:代理.加速.缓存.负载均衡.防盗链.访问控制等多功能的一个超牛X开源软件,如今已经广泛应用于很多领域.对于缓存和加速这一领域,如今各大 ...
- [转] Windows下编译OpenSSL
简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...
- windows下使用火狐浏览器插件AutoProxy+MyEnTunnel+SSH访问海外站点(转)
windows下使用火狐浏览器插件AutoProxy+MyEnTunnel+SSH访问海外站点 平时需要查阅一些技术资料,光走VPN太浪费流量,所以这儿教大家一种使用火狐浏览器的插件 AutoPr ...
- Windows下编译objective-C
Windows下编译objective-C 2011-08-31 14:32 630人阅读 评论(0) 收藏 举报 windowscocoa工具objective clibraryxcode 目录 ...
- 在windows下用eclipse + pydev插件来配置python的开发环境
在windows下用eclipse + pydev插件来配置python的开发环境 一.安装 python 可以到网上下个Windows版的python,官网为:https://www.python. ...
- 在Windows下编译FFmpeg详细说明
MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...
随机推荐
- 阿里实人认证 .net 准备工作
1.H5+服务端接入 认证方案 https://help.aliyun.com/document_detail/61362.html?spm=a2c4g.11186623.2.37.35247556k ...
- python统计喜欢的小说主角出场次数
这周老师布置了一项作业,让我们回去将自己喜欢的小说里面的主角出场次数统计出来,我对这个充满了兴趣,但我遇到了三个问题: (1)一开始选了一部超长的小说(最爱之一),但是运行时老是不行,老是显示下图错误 ...
- Python爬虫抓取某音乐网站MP3(下载歌曲、存入Sqlite)
最近右胳膊受伤,打了石膏在家休息.为了实现之前的想法,就用左手打字.写代码,查资料完成了这个资源小爬虫.网页爬虫, 最主要的是协议分析(必须要弄清楚自己的目的),另外就是要考虑对爬取的数据归类,存储. ...
- 【CSS】 布局之圣杯布局
在看众多大神的css布局指南时,经常看到一个布局:圣杯布局(也有称为双飞翼布局的).今天我们也来剖析一下. 其实,对于众多css布局,我们只要明确理解了3种技术,那么基本上大多数布局都难不倒我们了: ...
- oracle connect by用法
先用scott用户下的emp表做实验.emp表有个字段,一个是empno(员工编号),另一个是mgr(上级经理编号)下面是表中所有数据 1 select * from emp start with e ...
- ubuntu系统之难
声明 笔者最近意外的发现 笔者的个人网站http://tiankonguse.com/ 的很多文章被其它网站转载,但是转载时未声明文章来源或参考自 http://tiankonguse.com/ 网站 ...
- idea maven install 卡住,无报错排查。
今天使用idea打包,执行install,看控制台日志,卡主了(意思是日志不继续在控制台输打印了,卡主了,也看不到错误),也没有报错,然后进行排查. 进入dos命令,进入到项目的根目录,使用 运行 m ...
- mysql 5.6 windows7 解压缩版安装的坑
从官网下载了解压缩版的mysql ,解压缩后,配置好环境变量,运行安装命令,提示我 缺失ddl文件,然后百度,找到了一个windows 系统组件扫描安装缺失组件的程序,然后继续安装,遇到了 初始化密码 ...
- 持续集成:TeamCity 的安装和使用
TeamCity 本文初衷 让大家了解持续集成(CI),以及入门了解 JetBrains 家的 TeamCity 的一些简单实用. TeamCity 的一些复杂使用我暂时也不会,一样也是要看文档的,所 ...
- Golang教程:循环语句
循环语句用于重复执行一段代码. for 语句是 Go 中唯一的循环语句.Go 没有提供其他语言(如 C)中的 while 和 do while 语句. for 语句语法 for 语句的语法如下: fo ...