为了让大家少踩笔者踩过的坑,目前将工作中搭建rtmp推流服务器的步骤总结如下:

步骤1: 下载 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

(此处注意千万不要命名为nginx-1.7.11.3-Gryphon,笔者初次搭建rtmp推流服务器时,将解压后的目录命名为nginx-1.7.11.3-Gryphon,出现局域网内的其他电脑都无法访问rtmp服务器的问题,也是花了一天的时间填坑,将主文件名改为nginx_1.7.11.3_Gryphon时,其他电脑才能正常访问。为神马会如此,笔者也是疑问,好歹问题无意间解决了)

步骤2:下载服务器状态检查程序 stat.xsl(注:直接clone到nginx-1.7.11.3-Gryphon目录下)

下载地址https://github.com/arut/nginx-rtmp-module/

此时的目录结构如下图所示:

步骤3:配置文件 conf\nginx-win-rtmp.conf 内容如下:

  1. #user nobody;
  2. # multiple workers works !
  3. worker_processes 2;
  4.  
  5. #error_log logs/error.log;
  6. #error_log logs/error.log notice;
  7. #error_log logs/error.log info;
  8.  
  9. #pid logs/nginx.pid;
  10. #worker_rlimit_nofile 100000; #更改worker进程的最大打开文件数限制
  11. #如果没设置的话, 这个值为操作系统的限制.
  12. #设置后你的操作系统和Nginx可以处理比“ulimit -a”更多的文件
  13. #所以把这个值设高, 这样nginx就不会有“too many open files”问题了
  14.  
  15. events {
  16. worker_connections 8192;#设置可由一个worker进程同时打开的最大连接数
  17. #如果设置了上面提到的worker_rlimit_nofile, 我们可以将这个值设得很高
  18. # max value 32768, nginx recycling connections+registry optimization =
  19. # this.value * 20 = max concurrent connections currently tested with one worker
  20. # C1000K should be possible depending there is enough ram/cpu power
  21. # multi_accept on;
  22. }
  23.  
  24. rtmp {
  25. server {
  26. listen 1935;#监听端口,若被占用,可以更改
  27. chunk_size 4000;#上传flv文件块儿的大小
  28. application live { #创建一个叫live的应用
  29. live on;#开启live的应用
  30. allow publish 127.0.0.1;#
  31. allow play all;
  32. }
  33. }
  34. }
  35.  
  36. http {
  37. #include /nginx/conf/naxsi_core.rules;
  38. include mime.types;
  39. default_type application/octet-stream;
  40.  
  41. #log_format main '$remote_addr:$remote_port - $remote_user [$time_local] "$request" '
  42. # '$status $body_bytes_sent "$http_referer" '
  43. # '"$http_user_agent" "$http_x_forwarded_for"';
  44.  
  45. #access_log logs/access.log main;
  46.  
  47. # # loadbalancing PHP
  48. # upstream myLoadBalancer {
  49. # server 127.0.0.1:9001 weight=1 fail_timeout=5;
  50. # server 127.0.0.1:9002 weight=1 fail_timeout=5;
  51. # server 127.0.0.1:9003 weight=1 fail_timeout=5;
  52. # server 127.0.0.1:9004 weight=1 fail_timeout=5;
  53. # server 127.0.0.1:9005 weight=1 fail_timeout=5;
  54. # server 127.0.0.1:9006 weight=1 fail_timeout=5;
  55. # server 127.0.0.1:9007 weight=1 fail_timeout=5;
  56. # server 127.0.0.1:9008 weight=1 fail_timeout=5;
  57. # server 127.0.0.1:9009 weight=1 fail_timeout=5;
  58. # server 127.0.0.1:9010 weight=1 fail_timeout=5;
  59. # least_conn;
  60. # }
  61.  
  62. sendfile off;
  63. #tcp_nopush on;
  64.  
  65. server_names_hash_bucket_size 128;
  66.  
  67. ## Start: Timeouts ##
  68. client_body_timeout 10;
  69. client_header_timeout 10;
  70. keepalive_timeout 30;
  71. send_timeout 10;
  72. keepalive_requests 10;
  73. ## End: Timeouts ##
  74.  
  75. #gzip on;
  76.  
  77. server {
  78. listen 8088;
  79. server_name localhost;
  80.  
  81. #charset koi8-r;
  82.  
  83. #access_log logs/host.access.log main;
  84.  
  85. ## Caching Static Files, put before first location
  86. #location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
  87. # expires 14d;
  88. # add_header Vary Accept-Encoding;
  89. #}
  90.  
  91. # For Naxsi remove the single # line for learn mode, or the ## lines for full WAF mode
  92. location / {
  93. #include /nginx/conf/mysite.rules; # see also http block naxsi include line
  94. ##SecRulesEnabled;
  95. ##DeniedUrl "/RequestDenied";
  96. ##CheckRule "$SQL >= 8" BLOCK;
  97. ##CheckRule "$RFI >= 8" BLOCK;
  98. ##CheckRule "$TRAVERSAL >= 4" BLOCK;
  99. ##CheckRule "$XSS >= 8" BLOCK;
  100. root html;
  101. index index.html index.htm;
  102. }
  103.  
  104. # For Naxsi remove the ## lines for full WAF mode, redirect location block used by naxsi
  105. ##location /RequestDenied {
  106. ## return 412;
  107. ##}
  108.  
  109. ## Lua examples !
  110. # location /robots.txt {
  111. # rewrite_by_lua '
  112. # if ngx.var.http_host ~= "localhost" then
  113. # return ngx.exec("/robots_disallow.txt");
  114. # end
  115. # ';
  116. # }
  117.  
  118. #error_page 404 /404.html;
  119.  
  120. # redirect server error pages to the static page /50x.html
  121. #
  122. error_page 500 502 503 504 /50x.html;
  123. location = /50x.html {
  124. root html;
  125. }
  126.  
  127. # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  128. #
  129. #location ~ \.php$ {
  130. # proxy_pass http://127.0.0.1;
  131. #}
  132.  
  133. # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  134. #
  135. #location ~ \.php$ {
  136. # root html;
  137. # fastcgi_pass 127.0.0.1:9000; # single backend process
  138. # fastcgi_pass myLoadBalancer; # or multiple, see example above
  139. # fastcgi_index index.php;
  140. # fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  141. # include fastcgi_params;
  142. #}
  143.  
  144. # deny access to .htaccess files, if Apache's document root
  145. # concurs with nginx's one
  146. #
  147. #location ~ /\.ht {
  148. # deny all;
  149. #}
  150. }
  151.  
  152. # another virtual host using mix of IP-, name-, and port-based configuration
  153. #
  154. #server {
  155. # listen 8000;
  156. # listen somename:8080;
  157. # server_name somename alias another.alias;
  158.  
  159. # location / {
  160. # root html;
  161. # index index.html index.htm;
  162. # }
  163. #}
  164.  
  165. # HTTPS server
  166. #
  167. #server {
  168. # listen 443 ssl spdy;
  169. # server_name localhost;
  170.  
  171. # ssl on;
  172. # ssl_certificate cert.pem;
  173. # ssl_certificate_key cert.key;
  174.  
  175. # ssl_session_timeout 5m;
  176.  
  177. # ssl_prefer_server_ciphers On;
  178. # ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  179. # ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:ECDH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!eNULL:!MD5:!DSS:!EXP:!ADH:!LOW:!MEDIUM;
  180.  
  181. # location / {
  182. # root html;
  183. # index index.html index.htm;
  184. # }
  185. #}
  186.  
  187. }

nginx-win-rtmp.conf

步骤4:启动服务器

nginx.exe -c conf\nginx-win-rtmp.conf

步骤5:使用推流地址

推流地址:rtmp://lP:监听端口/应用名/home,步骤3配置文件配置出的推流地址为rtmp://192.168.xxxx.xxxx:1935/live/home

通过此推流地址,便可以成功推流

步骤6:其他ngnix常用命令:

(1)终止服务器

nginx.exe -s stop

stop是快速停止nginx,可能并不保存相关信息;

nginx.exe -s quit

quit是完整有序的停止nginx,并保存相关信息。

(2)重新载入Nginx

nginx.exe -s reload

当配置信息修改,需要重新载入这些配置时使用此命令。

(3)重新打开日志文件

nginx.exe -s reopen

>>>>>>>>待续

  1.  

win10下一分钟快速搭建rtmp推流服务器的更多相关文章

  1. 在win10下使用docker快速搭建ruby开发环境

    docker在windows下发力的时候必将取代各种虚拟机,并改变程序员的开发习惯,或许还会改变infra的工作. 概要: 在Windows下搭建开发环境一直是infra(我)头疼的事情.为了解决这个 ...

  2. win10下Spark的环境搭建

    win10下Spark的环境搭建 2018-08-19  18:36:45 一.jdk 1.8.0 安装与配置 二.scala 2.11.8 安装与配置http://www.scala-lang.or ...

  3. 全网最新方法:Win10下如何安装和搭建appium自动化测试环境

    为了方便大家,下面是本人安装和搭建appium所需要的软件,自取. 链接:https://pan.baidu.com/s/1wl5Xnos4BmnSZsBRd6B5YA#list/path=%2F  ...

  4. 30分钟快速搭建Web CRUD的管理平台--django神奇魔法

    加上你的准备的时间,估计30分钟完全够用了,因为最近在做爬虫管理平台,想着快速开发,没想到python web平台下有这么非常方便的框架,简洁而优雅.将自己的一些坑总结出来,方便给大家的使用. 准备环 ...

  5. 巨杉Tech | 十分钟快速搭建 Wordpress 博客系统

    介绍 很多互联网应用程序开发人员第一个接触到的网站项目就是博客系统.而全球使用最广的Wordpress常常被用户用来快速搭建个人博客网站.默认情况下,Wordpress一般在后台使用MySQL关系型数 ...

  6. 5分钟快速搭建一个springboot的项目

      现在开发中90%的人都在使用springboot进行开发,你有没有这样的苦恼,如果让你新建一个springboot开发环境的项目,总是很苦恼,需要花费很长时间去调试.今天来分享下如何快速搭建. 一 ...

  7. 开源代码Window下搭建rtmp流媒体服务器

    合肥程序员群:49313181. 合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入) Q Q:408365330 E-Mail:egojit@qq.com 综合:有这样需求,将摄像头 ...

  8. 三分钟快速搭建分布式高可用的Redis集群

    这里的Redis集群指的是Redis Cluster,它是Redis在3.0版本正式推出的专用集群方案,有效地解决了Redis分布式方面的需求.当单机内存.并发.流量等遇到瓶颈的时候,可以采用这种Re ...

  9. 五分钟快速搭建 Serverless 免费邮件服务

    1. 引言 本文将带你快速基于 Azure Function 和 SendGrid 构建一个免费的Serverless(无服务器)的邮件发送服务,让你感受下Serverless的强大之处. 该服务可以 ...

随机推荐

  1. asciiflow

    http://asciiflow.com/ https://maxiang.io/# http://www.jianshu.com/p/19432b5e3c60

  2. requireJS使用shim注入非标准模块详解

    在javascript中定义全局变量有2种方式,本质上是等价的,都是向window对象注入属性或者方法. // global.js var g_name = "aty"; wind ...

  3. ExtJs 给grid某一单元格重新赋值

    // 司机,搬运工提成 var commissionMoney = (waybillsFtQty * commissionMoneyRatio / personCount).toFixed(2); / ...

  4. Linux vs Window

    目前国内Linux更多的是应用于服务器上,而桌面操作系统更多使用的是Window.主要区别如下: 比较 Windows Linux 界面 界面统一,外壳程序固定所有Windows程序菜单几乎一致,快捷 ...

  5. Androlid入门之文件系统操作(三)文件读写

         import java.io.*; import android.app.Activity; import android.os.Bundle; import android.view.Vi ...

  6. hdu 2222(AC自动机模版题)

    Keywords Search Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others ...

  7. heap堆&&priority_queue优先队列

    堆(heap)不是stl中的东西...它分为 max heap 和min heap. 但我不想用这些,而是采用了priority_queue,优先队列,定义在queue中.顾名思义,它的作用就是无论怎 ...

  8. B4321 queue2 dp

    这个题的dp真的恶心.首先,一开始我以为是一道数论题,但是组合数和这个题没啥关系.dp方程巨麻烦,状态是dp[i][j][0/1],代表i位连了j个,上一位是否连着.然后开始转移,证明如下: 我们先来 ...

  9. 关于sublime代码格式化

    就我接触到的,html,css,js,json,php语言来介绍. html,css,json,js这些,我感觉pretty是比较好用的,ctrl+shift+h快捷键,给人不一样的感受,不过这个插件 ...

  10. Error creating bean with name " "问题

    Spring MVC框架中使用@Autowired自动装配时出现 Error creating bean with name " "问题的解决方式在spring的xml配置文件be ...