Windows下利用nginx流媒体服务器rtmp推拉流测试

时光怂恿深爱的人放手 提交于 2020-02-05 15:36:21

转载自Hello爱微玩-在家搭个直播平台:Windows下利用nginx流媒体服务器rtmp推拉流测试

一、nginx的安装配置

http://nginx-win.ecsds.eu/download/中下载nginx 1.7.11.3 Gryphon.zip并解压。

在解压好的nginx 1.7.11.3 Gryphon目录下新建三个文件夹:m3u8File、rec、vod

进入nginx 1.7.11.3 Gryphon文件夹的conf目录下,新建一个文件“nginx.conf”,复制下面的内容进去并保存:

worker_processes  1;   #Nginx进程数,建议设置为等于CPU总核数

events {
    worker_connections  1024;  #工作模式与连接数上限
}

rtmp_auto_push on;

#RTMP服务
rtmp{
    server{
        listen 1935;        #服务端口
        chunk_size 4096;    #数据传输块的大小

        application vod{
            play ./vod;     #视频文件存放位置
        }

        application live{
            live on;             #开启直播
            hls on;              #开启hls直播。这个参数把直播服务器改造成实时回放服务器
            #wait_key on;        #对视频切片进行保护,这样就不会产生马赛克了
            hls_path ./m3u8File;         #切片视频文件存放位置(HLS,m3u8文件存放位置)
            hls_fragment 2s;             #每个视频切片的时长
            hls_playlist_length 16s;
            recorder myRecord{
                record all manual;
                record_suffix _.flv;
                record_path ./rec;
            }
            #hls_continuous on;          #连续模式
            #hls_cleanup on;             #对多余的切片进行删除
            #hls_nested on;              #嵌套模式
        }
    }
}

#HTTP服务
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile      on;
    keepalive_timeout  65;
    server {
        listen       80;
        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;
        }
    }
}

接下来用CMD进入nginx 1.7.11.3 Gryphon目录,并执行 start nginx 命令,启动nginx服务。怎么看启动成功没有呢,用浏览器访问http://127.0.0.1如果出现Welcome to nginx!就ok了。

二、推流测试

有了这个电脑做服务器,就可以用手机拍东西并实时上传了。手机上需要装一个推流APP,可以用杏林推流apk,非常简洁。

进去以后,填写推流URL:

注意啊,手机和电脑需要在同一个局域网下(同一WIFI或开热点都行)。

再就是URL的格式,rtmp://服务器(Windows电脑)的IP地址/live/test1(此处test1可以改,不过和后续的实验步骤要统一)

三、拉流测试

也就是收看直播,这里需要使用支持rtmp协议的播放器,我用的PotPlayer

填入要拉取的流媒体URL,格式为rtmp://127.0.0.1/live/test1

可以看到在PotPlayer中出现视频画面了,表示拉流成功了(会有几秒钟延迟).

四、状态监测

这一步不是必需的,只是对视频流的接受情况作监测。

https://github.com/arut/nginx-rtmp-module/,下载nginx-rtmp-module-master.zip,解压后复制到目录:nginx 1.7.11.3 Gryphon下,如图:

然后我们在浏览器中输入http://127.0.0.1/stat。如下图所示,在下面的页面中我们就可以进行直播状态监测了

 五、思维发散

只是在家中的一个最简单的直播平台实现,原理在这了,怎么用就各家有各家的高招了。

我想到了几个可用的案例,比如把旧手机改造成监控摄像头,放到你想监控的地方,用PC来进行录像;利用无人机和无线网络,向地面实时传送视频流;本地PC接收多个视频流,经过剪辑软件合成,再统一渲染,或者再推流给更高一级的流媒体服务器;为了降低功耗,还可以利用树莓派等低功耗的设备做服务器等等。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!