在windows下搭建、配置nginx流媒体服务器,并进行rtmp流的推流、拉流测试

1、nginx

①下载包含rtmp组件的nginx

首先我们下载nginx。在nginx官网上下载的nginx是不带rtmp模块的,所以我们在http://nginx-win.ecsds.eu/download/中下载nginx 1.7.11.3 Gryphon.zip。

该版本的nginx包含rtmp组件,通过rtmp组件,才能提供流媒体服务,使nginx成为rtmp流媒体服务器。

②解压、测试是否安装成功

下载后我们解压nginx 1.7.11.3 Gryphon.zip,得到nginx 1.7.11.3 Gryphon文件夹。使用命令提示符进入解压后的路径下,输入命令:

nginx.exe -v

上述命令的作用是查看nginx版本,输入上述命令后出现版本号,表示nginx安装成功。

③新增对应的文件夹

我们在nginx 1.7.11.3 Gryphon目录下新建三个目录:m3u8File、rec、vod。

④新增并配置nginx.conf文件

然后我们进入nginx 1.7.11.3 Gryphon文件夹的conf目录下,新建一个文件“nginx.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;
        }
    }
}

然后我们通过命令提示符在nginx.exe所在的目录下输入命令:

nginx.exe -t

该命令的作用是检查nginx的配置文件是否正确。

start nginx

上述命令的作用是载入缺省./conf/nginx.conf配置文件,启动nginx。

输入完成后,在浏览器中输入nginx所在电脑的ip(该ip地址可以通过ipconfig命令查看,或者直接输入127.0.0.1,localhost,也是可以的),得到下图所示页面,则表示nginx启动成功了。

然后用户可以通过命令nginx.exe -s stop或者nginx.exe -s quit停止nginx。

启动nginx成功的另一个标志是在nginx 1.7.11.3 Gryphon文件夹的logs目录下生成nginx.pid文件。

该nginx.pid文件存放的是当前nginx主进程的ID号,打开该文件后可以看到里面存放着“3980”这个数字,这个数字就是本次启动nginx主进程的ID号(每次启动的数字都会不同的)。

参考链接:https://blog.csdn.net/u014552102/article/details/100906058

2、ffmpeg

①ffmpeg下载

ffmpeg官网https://ffmpeg.org/download.html 按照下图所示红框位置点击下载或直接到这个链接https://wws.lanzous.com/iSbuWixi7zg下载获得ffmpeg安装包,会比官网下载快些。

我们打开cmd命令行窗口,输入命令“ffmpeg –version”。窗口返回ffmpeg的版本信息,说明安装成功。接下来你就可以直接使用命令行执行ffmpeg命令进行各种媒体格式的转换了。

也可以直接下载离线包!

②ffmpeg相关命令
# 可查看摄像头和声卡设备名称
ffmpeg -list_devices true -f dshow -i dummy 

# 获取摄像头名称后,可以用下面命令获取摄像头图像
ffplay -f dshow video="USB video capture 0"


ffmpeg -i test.mp4 -f flv rtmp://127.0.0.1/live/test1
# -flvflags no_duration_filesize 这个参数是关键,这个参数告诉ffmpeg不要抛出duration_filesize警告

ffmpeg -i test.mp4 -f flv -flvflags no_duration_filesize rtmp://127.0.0.1/live/test1

ffmpeg -f dshow -i video=”icspring camera” -f rtsp rtsp://127.0.0.1/abcd.sdp

演变:
# rtmp推流摄像头命令
ffmpeg -f dshow -i video="icspring camera"  -f flv -flvflags no_duration_filesize rtmp://127.0.0.1/live/test1

接下来,可使用vcl进行拉流测试!

参考链接:

https://zhuanlan.zhihu.com/p/324472015

https://blog.csdn.net/fallenink/article/details/8556695?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242

3、vlc播放器

①安装vlc播放器

直接在vlc官网下载并安装vlc或者拷贝离线包进行安装!

②vlc rmtp 拉流测试

拉流指的是用户端从服务器拉取语音视频流到客户端播放。下面我们会通过vlc拉流nginx中的语音视频流,然后在vlc播放。执行完上述推流的步骤后,我们在windows中打开vlc,点击“打开网络串流”。

输入网络URL,如下图所示(因为是本机测试,所以IP地址填127.0.0.1,也可以填用ipconfig命令查看到的nginx所在电脑的ip)

此时,稍等片刻加载时间,可以看到在vlc中出现视频画面了,表示拉流成功了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容