精华内容
下载资源
问答
  • windows下使用Nginx搭建Rtmp流媒体服务器
    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的cmd; > cd nginx-1.7.11.3-Gryphon > nginx.exe -c conf\nginx-win-rtmp.conf //使用该配置文件!!
  • Windows 平台 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的视频直播和点播系统
  • rtmp模块的windowsnginx,带rtmp模块的windowsnginx.
  • 但由于项目需要在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:43
    Windows下使用的nginx+rtmp整合包,下载后直接解压使用。 conf配置文件配置路径为d:\nginx-rtmp\record;hls路径为d:\nginx-rtmp\hls
  • nginx-rtmp-module.zip

    2020-08-04 15:06:01
    windows上可用的搭载rtmpnginx服务,自定义配置修改nginx.conf文件即可。备份包可不用理会
  • nginxWindows版,自带rtmp服务模块

    热门讨论 2016-08-07 18:28:43
    nginxWindows版,自带rtmp服务模块,需要放在c盘根目录下面使用。
  • 这是公司做得直播服务器的代码,里面包含 已经移植到WINDOWSNGINXRTMP,HLS 代码,vs2013 打开解决方案直接编译就可以通过,DLL我都放里面了,CONF配置文件也在里面,直接运行都可以,外面推流进去就可以实现...
  • ffmpeg+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:50
    windows下搭建nginx-rtmp服务器 文章目录windows下搭建nginx-rtmp服务器编译nginxnginx-rtmp环境搭建效果测试最后说明 最近因为接...

    windows下搭建nginx-rtmp服务器



    这是编译好的下载地址,可自行下载 https://download.csdn.net/download/zqw_4181/11049655

    最近因为接触直播相关的技术工作,使用的也是基于高并发和高性能的nginx,首先需要做的当然是搭建一个nginx服务器。

    对于linux上nginx服务器的搭建此处就不再赘述,按照操作指引来的话一般都能顺理成章搭建起来。

    对于linux操作不熟练的手残党来说,当然是希望能在windows下也能用上这一套。刚开始在windows下搭建环境的时候遇到了很多问题,后面逐个解决花费不少功夫,怕以后忘了,就把我在windows下编译nginx和搭建RTMP直播服务器的过程记录下来,权当做个备忘。


    ##准备工作

    • ###安装MinGW###
      在这些准备工作之前,你的电脑上至少安装有一款IDE,我的是VS2008。
      首先安装MinGW,后面的nginx编译需要先在msys环境下进行。
      安装方式可以有在线安装和离线安装两种方式,离线安装的话过程很繁琐,需要自己下载各种包解压、配置路径等等操作,所以此处采用无脑式的在线安装进行说明。

      由于MinGW的很多资源包都是在sourceforge上下载的,国内虽然能访问,但是速度奇慢,在线安装过程中经常会出现下载组件失败,强烈建议翻墙安装。
    1. MinGW找到MinGW安装引导程序mingw-get-setup.exe的链接地址并下载,下载的文件不到100KB。执行安装工具,开始选择安装路径时要注意,不要将MinGW安装到带有空格或者中文路径的目录下!!
      MinGW安装器

    2. 默认情况下,在下载完成后会在桌面生成一个MinGW Installer快捷图标,如果没有,也可以去MinGW安装目录中找到, $MinGW安装目录\libexec\mingw-get\guimain.exe。接下来运行安装之后的快捷图标,选择要在线安装的组件,此处只需选择Basic Setup下msys及gcc相关组件就行了。
      然后,选择Installation菜单中Apply Changes进行在线下载和安装,整个过程可能会持续十几分钟。
      当然后续有需要可以再利用这个安装界面进行组件的更改或者删除
      安装勾选项
      如果安装过程中出现组件下载失败的情况,直接确定继续往下,安装程序会在所有的依赖包下载完成之后进行解压安装,执行完成后,在不关闭安装界面的前提下,回到上面的第二个步骤再来一遍,一直到没有安装错误。

    3. 至此,MinGW的成功安装后,勾选的项目会变成浅绿色填充。
      MinGW安装完成
      MinGW的安装目录下也会有msys的目录,进入该目录里面,会看到有个批处理文件 msys.bat,可以把它创建到桌面作为快捷方式,双击进去就进入msys环境了。使用上和linux终端类似,不过是个精简版的,命令没有linux下的全,可以使用mingw-get命令进行在线安装某些包,比如,要安装gdb,直接输入命令 mingw-get install gdb
      mingw在线安装附加包
      MinGW正常安装的话,一般会自动将路径加入到环境变量。如果在使用中出现问题,检查下是不是因为路径设置的原因,手动将 $MinGW安装目录\bin$MinGW安装目录\msys\1.0\bin 加入到windows的PATH环境变量。

    • ###安装Mercurial###
      Mercurial是一个版本管理工具,后面我们需要用它下载windows下的nginx源码。
    1. Mercurial下载windows版并安装。
      下载Mercurial

    2. 安装时最好将安装目录选择在没有空格和中文目录的路径下。安装完成后,在cmd中执行命令 hg,如果有以下显示则表示安装成功了。
      安装Mercurial

    • ###安装strawberryperl###
      Strawberry Perl是Windows环境的Perl环境,包含了运行和开发Perl应用程序所需的全部内容,它的目的是尽可能接近UNIX系统上的Perl环境,后面在编译nginx及其依赖库的时候需要用到。
    1. Strawberry Perl下载并安装windows下的安装程序,选择安装路径时最好选择在没有空格和中文目录的路径下。
    • ###安装nasm###
      NASM全称The Netwide Assembler,是一款基于80x86和x86-64平台的汇编语言编译程序,其设计初衷是为了实现编译器程序跨平台和模块化的特性,至于为什么要安装这货,后面再说。
    1. NASM下载安装程序安装即可。
    2. 安装完成后,将其安装路径加入到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

    1. 将上述下载好的五个源码包拷贝到msys目录下 $MinGW安装目录\msys\1.0\home\$USERNAME\

    2. 打开msys批处理文件,分别解压之前下载的源码包。

    3. 进入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

    4. 此时执行该批处理文件,稍稍等待几秒钟,会出现nginx配置完成的信息。
      nginx编译-1
      这里会发现有一个异样的提示,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"
      nginx编译-1.1
      到这里为止,msys的使命就完成了。

    5. 打开Visual Studio 2008 命令提示,在命令提示符中进入到nginx源码目录,执行命令 nmake /f objs\MakeFile ,会发现编译报错。
      nginx编译-2
      此时,之前安装的NASM就该登场了。
      打开文件 $nginx源码目录\auto\lib\openssl\makefile.msvc,将其中的
      ms\do_ms
      修改为
      ms\do_nasm
      然后,删除openssl源码目录中的out32和tmp32两个临时目录,重新启动Visual Studio 2008 命令提示,再次执行前面的第五步就可以了

    6. 成功编译之后,最终会有以下打印信息,并且在nginx源码目录的objs目录中可以看到最终生成的nginx.exe文件。
      nginx编译-3

    nginx-rtmp环境搭建

    1. 可以在msys的根目录 / 下新建一个nginx目录,然后将生成的nginx.exe,nginx源码目录下的conf目录以及docs目录下的html目录都拷贝到当前目录,并手动新建logs和temp两个目录,形成最终的目录结构。
      nginx环境目录结构

    2. 随后修改conf/nginx.conf,关于如何配置和修改不在本文范畴内,so,略过~。
      在当前nginx目录中,启动windows命令行,运行 start /b nginx.exe -c conf\nginx.conf 这样nginx服务就在后台启动了。在浏览器中输入地址进入到nginx服务的主页,如果可以看到如下内容,说明整个环境已经OK,接下来可以使用推流和拉流看看实际效果了。最后使用命令 nginx.exe -s stop 优雅地终止nginx服务。
      nginx环境OK

    效果测试

    接下来的效果测试,对环境稍微做了一点点改动,使用nginx-rtmp-module中提供的JWPlayer的Play页面进行拉流或者Record页面进行推流。

    1. 首先是在nginx/html/目录下新建一个文件夹 nginx-rtmp-module,将之前解压的nginx-rtmp-module-1.1.11目录下的stat.xsl文件以及test文件夹拷贝到新建的目录nginx-rtmp-module下。

    2. 修改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服务会在后台运行。
      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也可以看到当前的服务运行状态。
      nginx服务运行状态

    • 使用JWPlayer的Record页面采集摄像头和麦的数据推流到nginx服务,在SRS播放器页面拉流,由于前面配置的Record页面推流的名字是mystream,所以此处输入 rtmp://192.168.100.2/live/mystream
      采集摄像头推流
      nginx服务运行状态2

    • 最后说明

      本来还试着在移动端试试播放效果,不过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>
      
    展开全文
  • 此资源为在windows环境编译包含rtmp功能的nginx可执行程序,所有的源码依赖包都包含在其中。考虑到压缩包体积太大,所以把依赖库源码删除了,编译之前需要重新解压到源码。 需仔细阅读README.md说明文档。 详细...
  • nginx-rtmp-module-master.zip

    2021-09-01 10:00:00
    nginx rtmp模块
  • windows上架设流媒体服务器,nginx+rtmp+obs推流+vlc拉流解决方案。 Nginx是一款轻量级的Web 服务器/反向代理服务器,nginx-rmtp-module是Nginx服务器的流媒体插件。nginx通过rtmp模块提供rtmp服务, obs推送一个rtmp...
  • win7+VS2015编译好的带nginx-rtmp-module模块的Nginx 64位
  • 在前面 [阿里云服务器搭建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
    

    image-20211201140743878

    启动成功后打开浏览器访问Nginx是否正常

    image-20211201140817567

    四、RTMP 推流拉流测试

    1.ffmpeg本地视频推流测试

    ffmpeg -re -i .\设计讲义.mp4 -vcodec libx264 -acodec aac -f flv  rtmp://127.0.0.1:1935/live/test
    

    image-20211201141035070

    2.使用ffplay拉流测试,拉流成功

    ffplay rtmp://127.0.0.1:1935/live/test
    

    image-20211201141300578

    3.使用VLC拉流,拉流成功

    打开VLC,媒体 -> 打开网络串流 -> 网络

    rtmp://127.0.0.1:1935/live/test
    

    image-20211201141809676

    如果你觉得文章还不错,可以给个"三连",文章同步到以下个人微信公众号[加班猿]

    我是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下搭建基于nginxrtmp服务器
  • windows下Nginx+RTMP部署

    千次阅读 2019-11-01 11:20:18
    windows下部署参考博客:https://blog.csdn.net/l1028386804/article/details/80022437 参考这个部署完成后,一般没有什么问题,可以看到视频,细节问题在上面的博客里的评论中都已经写出来了。下面主要说我...
  • nginxnginx-http-flv模块,包含所有rtmp功能,我自己在windows下编译的,直接可用,用的是最新版的1.19.4版本
  • 介绍推流服务器的搭建
  • 目录安装 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:15
    Nginx-RTMP Windows二进制下载,
  • NGINX下RTSP转RTMP

    2018-12-17 13:58:53
    Windows 使用NGINX,搭建RTMP流媒体服务器,包含使用说明,下载就可使用。
  • 我一开始直接在文件夹打开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 ...
  • 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 2. 下载服务器状态检查程序 stat.xsl...
  • Windows编译Nginxnginx-rtmp-module

    千次阅读 2019-12-16 12:31:14
    最近因处理漏洞问题重新编译了WindowsNginx,有一些坑记录下来,以便以后回查。 大部分流程参考上面的这个文章。 源码下载最好是http://hg.nginx.org/nginx/在这里下载。用hg也可以,只是个人觉得不方便。 所用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,073
精华内容 829
关键字:

windows下nginx安装rtmp