一、准备工作
1、本地安装ffmpeg或OBS推流工具
2、本地安装VLC拉流工具
3、服务器安装nginx
二、安装nginx-rtmp-module
1、下载nginx-rtmp-module模块
官方github地址:https://github.com/arut/nginx-rtmp-module
我这里在git上直接克隆了,进到服务器nginx目录(我这里是/usr/local/nginx)
git clone https://github.com/arut/nginx-rtmp-module.git
如果提示git错误的,装下git
这个时候,根目录下应该会有一个 nginx-rtmp-module 文件夹
2、配置configure编译参数
进入nginx安装文件夹(注意不是nginx文件夹),我这里是nginx文件夹下的nginx-1.12.1文件夹,此文件夹下有一个configure的sh文件
输入命令配置
./configure --prefix=/usr/local/nginx --add-module=/usr/local/nginx/nginx-rtmp-module-1.2.0
prefix后面为nginx安装目录;add-module后面为nrm目录
路径错误会导致报错,成功如下
编译完成会生成一个Makefile安装文件
3、执行make&&make install自动安装nrm
三、配置rtmp
进入nginx配置文件,vim conf/nginx.conf
rtmp {
server {
listen 1935; #监听的端口
chunk_size 4000;
application live {
live on; #开启实时
hls on; #开启hls
hls_path /usr/local/m3u8File; #rtmp推流请求路径,文件存放路径
hls_fragment 5s; #每个TS文件包含5秒的视频内容
}
}
}
http {
...
}
注意rtmp模块与http模块同级
保存nginx.conf,重启nginx服务——nginx -s reload
重启成功后查看当前nginx服务
netstat -ntulp | grep nginx
1935端口就是我们刚刚添加的rtmp服务了,此时已经可以使用推流工具向服务器推流了。
推流地址为服务器ip:1935/live/秘钥,服务名live为rtmp中配置的application
例:rtmp://0.0.0.0:1935/live/123
四、配置rtmp状态监控地址
nginx-rtmp-module模块自带rtmp状态监控,可通过配置nginx在浏览器直接查看
server {
listen 80;
server_name localhost;
...
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root /usr/local/nginx/nginx-rtmp-module-1.2.0/;
}
...
}
配置完记得重启nginx,然后就可以直接访问http://0.0.0.0/stat查看服务状态了,vod是我的其他静态服务,没有可以忽略。
五、通过OBS推流
六、VLC实时观看直播
打开VLC配置网络串流直播,注意服务地址后面的秘钥要与推流秘钥一致。
此时可以在stat页面看到有一条服务的连接了
七、总结
rtmp协议直播流在web端只能在flash播放,随着flash被淘汰这种方式的直播自己搭着玩玩吧,当学习了~