-
2021-09-13 19:52:49
一、环境介绍
操作系统:win10 64位系统Linux下搭建Nginx搭建Rtmp流媒体服务器方法请看这里:https://blog.csdn.net/xiaolong1126626497/article/details/105378894
二、流媒体服务器介绍
流媒体服务器的主要功能是以流式协议(RTP/RTSP、MMS、RTMP等)将视频文件传输到客户端,供用户在线观看;也可从视频采集、压缩软件接收实时视频流,再以流式协议直播给客户端。nginx服务器是开源的高性能的http服务器,反向代理服务器,在国内许多公司应用比较多。
rtmp是实时消息传输协议(real time messaging protocol),主要应用在流媒体传输,实时音视频通信的协议。
三、搭建流媒体服务器
3.1 下载Nginx
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx 下载地址:http://nginx-win.ecsds.eu/download/
CSDN下载地址: https://download.csdn.net/download/xiaolong1126626497/13736098
我这里在电脑D盘建立了一个Nginx文件夹,然后将下载的nginx 1.7.11.3 Gryphon.zip文件解压在Nginx文件夹下(我这里解压,选择的是解压到当前目录)。
3.2 配置nginx.conf文件
接下来在D:\Nginx\conf 目录下新建一个nginx.conf文件。写入以下代码:
worker_processes 1; #Nginx进程数,建议设置为等于CPU总核数
events {
worker_connections 1024; #工作模式与连接数上限
}
rtmp_auto_push on;
#RTMP服务
rtmp {
server {
listen 8888;
application live {
live on;
}
}
}
#HTTP服务
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8099;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location /live_hls{
types{
#m3u8 type设置
application/vnd.apple.mpegurl m3u8;
#ts分片文件设置
video/mp2t ts;
}
#指向访问m3u8文件目录
alias ./m3u8File;
add_header Cache-Control no-cache; #禁止缓存
}
location /control{
rtmp_control all;
}
location /stat{
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl{
root ./nginx-rtmp-module-master;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
需要注意的地方:上面配置文件里,有两个地方设置了端口号,一个是HTTP(8099),一个是RTMP(8888),这两个端口号必须是系统当前没有使用的,如果被占用,下面3.4的步骤就会报错。3.3 建立工作目录
在D:\Nginx 目录下新建三个目录:m3u8File、rec、vod 。3.4 检查配置是否正确
打开windows命令行终端,进入到D:\Nginx 目录下,运行nginx.exe -t 。 出现以下结果,就表示成功。Microsoft Windows [版本 10.0.18363.778]
(c) 2019 Microsoft Corporation。保留所有权利。
D:\Nginx>nginx.exe -t
nginx: the configuration file D:\Nginx/conf/nginx.conf syntax is ok
nginx: configuration file D:\Nginx/conf/nginx.conf test is successful
D:\Nginx>
3.5 启动Nginx服务器
在命令行,继续运行启动命令。start nginx
启动之后,用户可以通过命令nginx.exe -s stop或者nginx.exe -s quit停止nginx。接下来,打开浏览器,输入地址:http://127.0.0.1:8099/ ,查看nginx启动状态,看到下面页面就表示启动成功了,。
四、推流、拉流测试
在Nginx的配置文件里,设置RTMP服务器的端口号是8888,下面使用编写的推流软件进行测试。因为是在本地测试,我这里就使用本地IP地址:127.0.0.1
根据上面的配置说明,那么本机Nginx服务器的推流和拉流的地址就是:rtmp://127.0.0.1:8888/live/video01
上面地址里“live”是在配置文件里设置的,“video01”是随意写,是服务器创建的临时目录。
接下来打开Vlc软件,测试下拉流效果。 拉流地址和推流地址是一样的:rtmp://127.0.0.1:8888/live/video01
至此:推流服务器搭建完毕。
————————————————
版权声明:本文为CSDN博主「DS小龙哥」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xiaolong1126626497/article/details/106391149/更多相关内容 -
windows下搭建基于nginx的rtmp服务器
2017-11-17 10:13:50象征性的拿两个积分吧 很简单的东西 自己已经配置好了,懒得动手的同学可以下载过来运行一下 ,进入windows的cmd; > cd nginx-1.7.11.3-Gryphon > nginx.exe -c conf\nginx-win-rtmp.conf //使用该配置文件!! -
Windows 平台 Nginx Rtmp模块
2017-09-08 14:28:30Windows 平台 Nginx Rtmp模块编译后的文件,nginx版本是nginx-1.12.1,自测可用 Windows 平台 Nginx Rtmp模块编译后的文件,nginx版本是nginx-1.12.1,自测可用 -
windows-nginx-rtmp.zip
2020-04-16 15:52:06该资源为Windows系统下的nginx版本,并在nginx.conf中配置rtmp模块,可实现视频的点播与直播功能,通过该工具可在Windows下搭建基于nginx的视频直播和点播系统 -
nginx-rtmp-win32-master.zip带rtmp模块的windows版nginx
2019-09-01 13:36:39带rtmp模块的windows版nginx,带rtmp模块的windows版nginx. -
Windows上nginx-openresty添加rtmp模块
2021-10-14 09:13:38但由于项目需要在Windows上使用nginx,无奈只好自己去找资料,在Windows上编译nginx-openresty同时加入rtmp模块。本资源是Windows上生成好的openresty-1.19.3.1+nginx-rtmp-module的包,同时包含win32、win64版本。 -
nginx+rtmp_win.zip
2020-03-04 11:36:43Windows下使用的nginx+rtmp整合包,下载后直接解压使用。 conf配置文件配置路径为d:\nginx-rtmp\record;hls路径为d:\nginx-rtmp\hls -
nginx-rtmp-module.zip
2020-08-04 15:06:01windows上可用的搭载rtmp的nginx服务,自定义配置修改nginx.conf文件即可。备份包可不用理会 -
nginxWindows版,自带rtmp服务模块
2016-08-07 18:28:43nginxWindows版,自带rtmp服务模块,需要放在c盘根目录下面使用。 -
Windows版本的Nginx+rtmp+hls服务器代码
2018-07-26 10:52:04这是公司做得直播服务器的代码,里面包含 已经移植到WINDOWS的 NGINX 和 RTMP,HLS 代码,vs2013 打开解决方案直接编译就可以通过,DLL我都放里面了,CONF配置文件也在里面,直接运行都可以,外面推流进去就可以实现... -
ffmpeg+nginx+nginx-rtmp-module搭建个人直播平台
2020-10-22 17:31:37ffmpeg+nginx+nginx-rtmp-module搭建个人直播平台。 使用说明(ffmpeg+nginx+rtmp-module已经整合,支持HTTP,具体配置查看conf/nginx.conf): 1.解压后,运行nginx_start.bat。(查看监控状态 ... -
windows下nginx配置rtmp模块
2020-12-06 10:40:32使用的是windows下的nginx 1.7.11.3 Gryphon版本,进行windows下nginx配置rtmp模块。一、下载地址
使用的是windows下的nginx 1.7.11.3 Gryphon版本
下载地址:windows版本nginx1.7+rtmp模块-直播技术文档类资源-CSDN下载
二、nginx.conf配置如下
#user nobody; # multiple workers works ! worker_processes 2; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 8192; # max value 32768, nginx recycling connections+registry optimization = # this.value * 20 = max concurrent connections currently tested with one worker # C1000K should be possible depending there is enough ram/cpu power # multi_accept on; } rtmp { server { listen 1935; chunk_size 4000; application live { live on; # record first 1K of stream #record all; #record_path /tmp/av; #record_max_size 1K; # append current timestamp to each flv #record_unique on; # publish only from localhost allow publish 127.0.0.1; deny publish all; #allow play all; } } } http { #include /nginx/conf/naxsi_core.rules; include mime.types; default_type application/octet-stream; #log_format main '$remote_addr:$remote_port - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; # # loadbalancing PHP # upstream myLoadBalancer { # server 127.0.0.1:9001 weight=1 fail_timeout=5; # server 127.0.0.1:9002 weight=1 fail_timeout=5; # server 127.0.0.1:9003 weight=1 fail_timeout=5; # server 127.0.0.1:9004 weight=1 fail_timeout=5; # server 127.0.0.1:9005 weight=1 fail_timeout=5; # server 127.0.0.1:9006 weight=1 fail_timeout=5; # server 127.0.0.1:9007 weight=1 fail_timeout=5; # server 127.0.0.1:9008 weight=1 fail_timeout=5; # server 127.0.0.1:9009 weight=1 fail_timeout=5; # server 127.0.0.1:9010 weight=1 fail_timeout=5; # least_conn; # } sendfile off; #tcp_nopush on; server_names_hash_bucket_size 128; ## Start: Timeouts ## client_body_timeout 10; client_header_timeout 10; keepalive_timeout 30; send_timeout 10; keepalive_requests 10; ## End: Timeouts ## #gzip on; server { listen 8818; server_name localhost; location /stat { rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl { root nginx-rtmp-module/; } location /control { rtmp_control all; } #charset koi8-r; #access_log logs/host.access.log main; ## Caching Static Files, put before first location #location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { # expires 14d; # add_header Vary Accept-Encoding; #} # For Naxsi remove the single # line for learn mode, or the ## lines for full WAF mode location / { #include /nginx/conf/mysite.rules; # see also http block naxsi include line ##SecRulesEnabled; ##DeniedUrl "/RequestDenied"; ##CheckRule "$SQL >= 8" BLOCK; ##CheckRule "$RFI >= 8" BLOCK; ##CheckRule "$TRAVERSAL >= 4" BLOCK; ##CheckRule "$XSS >= 8" BLOCK; root html; index index.html index.htm; } # For Naxsi remove the ## lines for full WAF mode, redirect location block used by naxsi ##location /RequestDenied { ## return 412; ##} ## Lua examples ! # location /robots.txt { # rewrite_by_lua ' # if ngx.var.http_host ~= "localhost" then # return ngx.exec("/robots_disallow.txt"); # end # '; # } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # single backend process # fastcgi_pass myLoadBalancer; # or multiple, see example above # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl spdy; # server_name localhost; # ssl on; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_timeout 5m; # ssl_prefer_server_ciphers On; # ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:ECDH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!eNULL:!MD5:!DSS:!EXP:!ADH:!LOW:!MEDIUM; # location / { # root html; # index index.html index.htm; # } #} }
三、推拉流测试
obs设置:
播放路径/串码流自己定义,我写了123
vlc播放路径:
rtmp://127.0.0.1/live/123
效果如下:
四、windows下使用ffmpeg、linux下搭建可参考
windows下搭建nginx-rtmp服务器 https://www.cnblogs.com/lidabo/p/9077938.html Windows 搭建 nginx rtmp服务器 https://www.cnblogs.com/sntetwt/p/11435564.html 安装nginx-rtmp-module模块与配置 https://www.cnblogs.com/juanxincai/p/12886598.html Nginx学习之配置RTMP模块搭建推流服务 https://www.cnblogs.com/smallSevens/p/8191238.html
-
windows下编译安装nginx_rtmp
2019-06-21 15:20:50windows下搭建nginx-rtmp服务器 文章目录windows下搭建nginx-rtmp服务器编译nginxnginx-rtmp环境搭建效果测试最后说明 最近因为接...最近因为接触直播相关的技术工作,使用的也是基于高并发和高性能的nginx,首先需要做的当然是搭建一个nginx服务器。
对于linux上nginx服务器的搭建此处就不再赘述,按照操作指引来的话一般都能顺理成章搭建起来。
对于linux操作不熟练的手残党来说,当然是希望能在windows下也能用上这一套。刚开始在windows下搭建环境的时候遇到了很多问题,后面逐个解决花费不少功夫,怕以后忘了,就把我在windows下编译nginx和搭建RTMP直播服务器的过程记录下来,权当做个备忘。
##准备工作
- ###安装MinGW###
在这些准备工作之前,你的电脑上至少安装有一款IDE,我的是VS2008。
首先安装MinGW,后面的nginx编译需要先在msys环境下进行。
安装方式可以有在线安装和离线安装两种方式,离线安装的话过程很繁琐,需要自己下载各种包解压、配置路径等等操作,所以此处采用无脑式的在线安装进行说明。
由于MinGW的很多资源包都是在sourceforge上下载的,国内虽然能访问,但是速度奇慢,在线安装过程中经常会出现下载组件失败,强烈建议翻墙安装。
-
到MinGW找到MinGW安装引导程序mingw-get-setup.exe的链接地址并下载,下载的文件不到100KB。执行安装工具,开始选择安装路径时要注意,不要将MinGW安装到带有空格或者中文路径的目录下!!。
-
默认情况下,在下载完成后会在桌面生成一个MinGW Installer快捷图标,如果没有,也可以去MinGW安装目录中找到,
$MinGW安装目录\libexec\mingw-get\guimain.exe
。接下来运行安装之后的快捷图标,选择要在线安装的组件,此处只需选择Basic Setup下msys及gcc相关组件就行了。
然后,选择Installation菜单中Apply Changes进行在线下载和安装,整个过程可能会持续十几分钟。
当然后续有需要可以再利用这个安装界面进行组件的更改或者删除
如果安装过程中出现组件下载失败的情况,直接确定继续往下,安装程序会在所有的依赖包下载完成之后进行解压安装,执行完成后,在不关闭安装界面的前提下,回到上面的第二个步骤再来一遍,一直到没有安装错误。 -
至此,MinGW的成功安装后,勾选的项目会变成浅绿色填充。
MinGW的安装目录下也会有msys的目录,进入该目录里面,会看到有个批处理文件msys.bat
,可以把它创建到桌面作为快捷方式,双击进去就进入msys环境了。使用上和linux终端类似,不过是个精简版的,命令没有linux下的全,可以使用mingw-get命令进行在线安装某些包,比如,要安装gdb,直接输入命令mingw-get install gdb
。
MinGW正常安装的话,一般会自动将路径加入到环境变量。如果在使用中出现问题,检查下是不是因为路径设置的原因,手动将$MinGW安装目录\bin
和$MinGW安装目录\msys\1.0\bin
加入到windows的PATH环境变量。
- ###安装Mercurial###
Mercurial是一个版本管理工具,后面我们需要用它下载windows下的nginx源码。
-
到Mercurial下载windows版并安装。
-
安装时最好将安装目录选择在没有空格和中文目录的路径下。安装完成后,在cmd中执行命令
hg
,如果有以下显示则表示安装成功了。
- ###安装strawberryperl###
Strawberry Perl是Windows环境的Perl环境,包含了运行和开发Perl应用程序所需的全部内容,它的目的是尽可能接近UNIX系统上的Perl环境,后面在编译nginx及其依赖库的时候需要用到。
- 到Strawberry Perl下载并安装windows下的安装程序,选择安装路径时最好选择在没有空格和中文目录的路径下。
- ###安装nasm###
NASM全称The Netwide Assembler,是一款基于80x86和x86-64平台的汇编语言编译程序,其设计初衷是为了实现编译器程序跨平台和模块化的特性,至于为什么要安装这货,后面再说。
- 到NASM下载安装程序安装即可。
- 安装完成后,将其安装路径加入到PATH环境变量。
- ###下载nginx相关的源码包###
搭建nginx-rtmp服务器需要下载nginx源码和nginx-rtmp-module源码。以及nginx依赖的组件。 后面将要在msys下进行配置,不像linux下直接可以使用yum install xxx-devel的形式安装依赖的组件包头。所以需要将nginx相关的源码包悉数下载好,注意是源码包,因为nginx编译时需要引用这些依赖库的开发标头。 - nginx
linux下的nginx源码包可以直接去nginx网站下载,但是上面的源码包只有linux的,源码的os文件夹下仅有unix平台的。而windows只有编译好的文件。这里就需要使用Mercurial下载带有win32平台的nginx源码包。
在cmd中执行命令hg clone http://hg.nginx.org/nginx nginx-win32-src
下载最新的nginx代码,耐心等待源码down到本地,也可以下载指定的版本,具体参考hg help
。 - nginx-rtmp-module
作为nginx外接的扩展模块,将用作后面搭建RTMP直播环境的一部分
使用Git或者SVN等工具或者直接去GitHub上下载nginx-rtmp-module
以下是我使用的几个源码包的版本:
nginx-release-1.31.1 tag
nginx-rtmp-module-1.1.11.tar.gz
pcre-8.40.tar.gz
zlib-1.2.11.tar.gz
openssl-1.0.2l.tar.gz
编译nginx
-
将上述下载好的五个源码包拷贝到msys目录下
$MinGW安装目录\msys\1.0\home\$USERNAME\
。 -
打开msys批处理文件,分别解压之前下载的源码包。
-
进入nginx源码目录。新建一个configuration-nginx.bat文件,里面内容如下,后面的将几个依赖包加入的配置代码根据实际情况填写不同路径。
auto/configure --with-cc=cl --builddir=objs --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
–with-cc-opt=-DFD_SETSIZE=1024
–with-select_module
–with-debug
–with-http_ssl_module
–with-pcre=…/pcre-8.40 --with-zlib=…/zlib-1.2.11 --with-openssl=…/openssl-1.0.2l
–add-module=…/nginx-rtmp-module-1.1.11
-
此时执行该批处理文件,稍稍等待几秒钟,会出现nginx配置完成的信息。
这里会发现有一个异样的提示,auto/cc/msvc: line 117: [: : integer expression expected ,只要修改文件$nginx源码目录\auto\cc\msvc
即可,在echo " + cl version: $NGX_MSVC_VER"
的前面加入一行NGX_MSVC_VER=15.00
,当然不修改也不会影响后续的编译。
如果需要指定后续编译nginx时禁用优化,则将其中的CFLAGS="$CFLAGS -O2"
修改为CFLAGS="$CFLAGS -Od"
。
到这里为止,msys的使命就完成了。 -
打开Visual Studio 2008 命令提示,在命令提示符中进入到nginx源码目录,执行命令
nmake /f objs\MakeFile
,会发现编译报错。
此时,之前安装的NASM就该登场了。
打开文件$nginx源码目录\auto\lib\openssl\makefile.msvc
,将其中的
ms\do_ms
修改为
ms\do_nasm
然后,删除openssl源码目录中的out32和tmp32两个临时目录,重新启动Visual Studio 2008 命令提示,再次执行前面的第五步就可以了。 -
成功编译之后,最终会有以下打印信息,并且在nginx源码目录的objs目录中可以看到最终生成的nginx.exe文件。
nginx-rtmp环境搭建
-
可以在msys的根目录
/
下新建一个nginx目录,然后将生成的nginx.exe,nginx源码目录下的conf目录以及docs目录下的html目录都拷贝到当前目录,并手动新建logs和temp两个目录,形成最终的目录结构。
-
随后修改conf/nginx.conf,关于如何配置和修改不在本文范畴内,so,略过~。
在当前nginx目录中,启动windows命令行,运行start /b nginx.exe -c conf\nginx.conf
这样nginx服务就在后台启动了。在浏览器中输入地址进入到nginx服务的主页,如果可以看到如下内容,说明整个环境已经OK,接下来可以使用推流和拉流看看实际效果了。最后使用命令nginx.exe -s stop
优雅地终止nginx服务。
效果测试
接下来的效果测试,对环境稍微做了一点点改动,使用nginx-rtmp-module中提供的JWPlayer的Play页面进行拉流或者Record页面进行推流。
-
首先是在nginx/html/目录下新建一个文件夹 nginx-rtmp-module,将之前解压的nginx-rtmp-module-1.1.11目录下的stat.xsl文件以及test文件夹拷贝到新建的目录nginx-rtmp-module下。
-
修改nginx/html/nginx-rtmp-module/test/nginx.conf文件,关闭nginx的守护和master-worker模式,由于本机有SVN占据了80端口,所以修改http的服务端口为8080,同时将nginx服务的访问目录修改为刚才nginx-rtmp-module中指向的index文件。再加入RTMP模块的配置,最终的配置文件内容如下:
worker_processes 1; daemon off; master_process off;
error_log logs/error.log info;
events {
worker_connections 1024;
}rtmp {
server {
listen 1935;application live { live on; } }
}
http {
server {
listen 8080;location /stat { rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl { root html/nginx-rtmp-module/; } location /control { rtmp_control all; } location /rtmp-publisher { root html/nginx-rtmp-module/test; } location / { root html/nginx-rtmp-module/test/www; } }
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
-
配置拉流名字,修改nginx/html/nginx-rtmp-module/test/www/index.html文件,将
file: "rtmp://localhost/myapp?carg=1/mystream?sarg=2"
修改为
file: "rtmp://localhost/live?carg=1/test?sarg=2"
以保持和上面的配置文件一致。 -
配置推流名称,修改nginx/html/nginx-rtmp-module/test/www/record.html文件,将开始的
'streamer': 'rtmp://localhost/myapp',
修改为
'streamer': 'rtmp://localhost/live'
以保持和上面的配置文件一致。 -
在msys下进入nginx目录,执行
nginx.exe -c html/nginx-rtmp-module/test/nginx.conf &
nginx服务会在后台运行。
-
推流,推流的手段有很多,此处使用ffmpeg将本地的文件流化并推到nginx服务。
ffmpeg -re -i "F:\TDDownload\BBC记录片\BBC理查德哈蒙德:看不见的世界BD中字-cd1.mkv" -vcodec copy -f flv rtmp://192.168.100.2/live/test
-
拉流,拉流方式也很多,浏览器中打开nginx服务的主页面192.168.100.2:8080,可以看到出现的视频播放窗口,点击Play即可拉流,此时的流地址就是上面配置好的
rtmp://192.168.100.2/live/test
,也可在SRS播放器页面
输入流地址rtmp://192.168.100.2/live/test
拉流,还可利用ffplay rtmp://192.168.100.2/live/test
拉流。
-
打开nginx服务的统计页面192.168.100.2:8080/stat也可以看到当前的服务运行状态。
-
使用JWPlayer的Record页面采集摄像头和麦的数据推流到nginx服务,在SRS播放器页面拉流,由于前面配置的Record页面推流的名字是mystream,所以此处输入
rtmp://192.168.100.2/live/mystream
。
最后说明
本来还试着在移动端试试播放效果,不过JWPlayer貌似是不支持直接在html页面进行rtmp直播,不过可以下载一个app(易推流)进行rtmp的直播测试。
有关nginx-rtmp服务器的搭建过程到此就算全部完成了,在此过程中当然也不全是靠我自己的摸索,也参考了前辈或同行的经验,在此感谢那些曾经的贡献者,参考资料如下:
http://blog.csdn.net/felixking/article/details/51981794
http://nginx.org/en/docs/howto_build_on_win32.html</div> <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-e44c3c0e64.css" rel="stylesheet"> </div>
- ###安装MinGW###
-
windows编译nginx(包含rtmp)可执行程序源码包
2019-03-03 12:53:07此资源为在windows环境下编译包含rtmp功能的nginx可执行程序,所有的源码依赖包都包含在其中。考虑到压缩包体积太大,所以把依赖库源码删除了,编译之前需要重新解压到源码下。 需仔细阅读README.md说明文档。 详细... -
nginx-rtmp-module-master.zip
2021-09-01 10:00:00nginx rtmp模块 -
windows上架设流媒体服务器,nginx+rtmp+obs推流+vlc拉流解决方案
2020-11-20 15:16:03windows上架设流媒体服务器,nginx+rtmp+obs推流+vlc拉流解决方案。 Nginx是一款轻量级的Web 服务器/反向代理服务器,nginx-rmtp-module是Nginx服务器的流媒体插件。nginx通过rtmp模块提供rtmp服务, obs推送一个rtmp... -
带nginx-rtmp-module模块的Nginx
2019-01-19 22:29:14win7+VS2015编译好的带nginx-rtmp-module模块的Nginx 64位 -
音视频系列六:Windows搭建Nginx+rtmp推流服务器
2021-12-01 14:38:53在前面 [阿里云服务器搭建Nginx+rtmp推流服务器](https://blog.csdn.net/m0_37824357/article/details/121356387) 中,我们已经配置把阿里云的rtmp推流服务搭建好了,用的是PC软件OBS来进行推流到阿里云服务器转发...title: 音视频系列六:Windows搭建Nginx+rtmp推流服务器
categories:[ffmpeg]
tags:[音视频编程]
date: 2021/12/01
作者:hackett微信公众号:加班猿在前面 阿里云服务器搭建Nginx+rtmp推流服务器 中,我们已经配置把阿里云的rtmp推流服务搭建好了,用的是PC软件OBS来进行推流到阿里云服务器转发然后本地拉流。Windows也是大同小异,现在是用Windows进行推流服务的搭建,本地ffmpeg命令行推流,本地ffplay拉流播放/VLC拉流播放。
方式采用nginx Gryphon + nginx-rtmp-module 的方式搭建,由于Windows的Nginx没有对rtmp模块进行编译,有兴趣的可以自己去编译尝试。
一、前期准备
操作系统:Windows
Nginx版本:nginx-1.7.11.3-Gryphon
RTMP模块:nginx-rtmp-module
推流工具:OBS-Studio/VLC/ffmpeg 命令
拉流工具:VLC/ffplay 播放
官方ffmpeg下载地址:http://ffmpeg.org/download.html
官方nginx下载地址:http://nginx.org/en/download.html
官方nginx 1.7.11.3 Gryphon下载地址:http://nginx-win.ecsds.eu/download
官方nginx-rtmp-module下载地址:https://github.com/arut/nginx-rtmp-module
官方vlc media player下载地址:https://www.videolan.org/vlc
二、搭建环境
1.ffmpeg安装
选择Windows的版本,跳转到GitHub下载地址:https://github.com/BtbN/FFmpeg-Builds/releases
下载最新的带share版本的,就是已经编译好了的,不用自己再编译 ffmpeg-n4.4.1-2-gcc33e73618-win64-gpl-shared-4.4.zip
解压出来放到安装软件的盘符,添加环境变量即可 D:\ffmpeg-n4.4.1-2-gcc33e73618-win64-gpl-shared-4.4\bin
不重启使Windows环境变量生效,cmd,输入 set path = D:\ffmpeg-n4.4.1-2-gcc33e73618-win64-gpl-shared-4.4\bin
重启命令提示符终端,测试效果: cmd,输入 ffmpeg -version得到如下效果即为成功安装
2.Nginx安装
下载带 rtmp 模块的 nginx 版本,这里用nginx 1.7.11.3 Gryphon,下载地址为:http://nginx-win.ecsds.eu/download
下载完成后解压,解压后目录名带空格,注意重命名一下(不然可能会失败),nginx 1.7.11.3 Gryphon 重命名为 nginx-1.7.11.3-Gryphon
nginx-rtmp-module下载解压后复制到nginx-1.7.11.3-Gryphon目录下
3.编辑配置文件conf\nginx-win.conf
用记事本或者sublime text打开,在文本开头加入下面代码保存
rtmp { server { listen 1935; chunk_size 4000; application live { live on; } } }
三、启动Nginx服务
进入nginx-1.7.11.3-Gryphon目录,输入命令启动Nginx rtmp服务
nginx.exe -c conf\nginx-win.conf
启动成功后打开浏览器访问Nginx是否正常
四、RTMP 推流拉流测试
1.ffmpeg本地视频推流测试
ffmpeg -re -i .\设计讲义.mp4 -vcodec libx264 -acodec aac -f flv rtmp://127.0.0.1:1935/live/test
2.使用ffplay拉流测试,拉流成功
ffplay rtmp://127.0.0.1:1935/live/test
3.使用VLC拉流,拉流成功
打开VLC,媒体 -> 打开网络串流 -> 网络
rtmp://127.0.0.1:1935/live/test
如果你觉得文章还不错,可以给个"三连",文章同步到以下个人微信公众号[加班猿]
我是hackett,我们下期见
-
nginx+rtmp+http-flv
2018-06-03 10:38:08基于nginx-1.8.1+nginx-rtmp-module的基础上增加以下功能: 1.http-flv流,默认缓冲最后一个关键帧。 经测试与rtmp拉流延时相差一帧; rtmp的拉时延时在600--800ms之间; 外网在1200ms左右; 2.HLS增加token认证及... -
windows下搭建基于nginx的rtmp服务器.docx
2021-06-16 23:52:30windows下搭建基于nginx的rtmp服务器 -
windows下Nginx+RTMP部署
2019-11-01 11:20:18在windows下部署参考博客:https://blog.csdn.net/l1028386804/article/details/80022437 参考这个部署完成后,一般没有什么问题,可以看到视频,细节问题在上面的博客里的评论中都已经写出来了。下面主要说下我... -
nginx带nginx-http-flv模块windows编译版rtmp
2020-11-07 19:04:22nginx带nginx-http-flv模块,包含所有rtmp功能,我自己在windows下编译的,直接可用,用的是最新版的1.19.4版本 -
直播系统开发:基于Nginx与Nginx-rtmp-module.zip
2020-04-03 14:53:30介绍推流服务器的搭建 -
【服务器】Windows 下搭建 Nginx 服务器,并配置 rtmp 模块
2022-04-26 16:05:33目录安装 Nginx 服务器安装 nginx-rtmp-module编辑配置文件conf\nginx-win.conf启动Nginx服务RTMP 推流拉流测试 安装 Nginx 服务器 下载带 rtmp 模块的 nginx 版本(选择后缀为 Gryphon 的版本); 安装 nginx-... -
nginx-rtmp-win32-master.zip
2020-01-08 15:04:15Nginx-RTMP Windows二进制下载, -
NGINX下RTSP转RTMP
2018-12-17 13:58:53Windows 下使用NGINX,搭建RTMP流媒体服务器,包含使用说明,下载就可使用。 -
windows下nginx的rtmp配置加载问题 unknown directive “rtmp
2021-07-20 09:09:48我一开始直接在文件夹下打开powershell,然后输入命令就报这个,以为是配置问题,但是没检查出什么 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210720090327734.png?x-oss-process=image/ 解决: 不要... -
nginx-rtmp-win32.rar
2019-12-03 16:42:28* Nginx-Rtmp-Module: 1.2.1 * openssl-1.0.2p * pcre-8.42 * zlib-1.2.11 推流ffmpeg -re -i http://替换成可使用的直播源.m3u8 -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -acodec copy -f ... -
Windows下nginx的rtmp服务器搭建
2020-02-07 20:56:151. 下载 nginx 1.7.11.3 Gryphon 下载链接: http://nginx-win.ecsds.eu/download/nginx 1.7.11.3 Gryphon.zip,下载完成后解压,将解压后的目录命名为 nginx-1.7.11.3-Gryphon 2. 下载服务器状态检查程序 stat.xsl... -
Windows编译Nginx及nginx-rtmp-module
2019-12-16 12:31:14最近因处理漏洞问题重新编译了Windows的Nginx,有一些坑记录下来,以便以后回查。 大部分流程参考上面的这个文章。 源码下载最好是http://hg.nginx.org/nginx/在这里下载。用hg也可以,只是个人觉得不方便。 所用...