实验环境
系统环境
1
2wujianjun@wujianjun-work ~ $ uname -a
Linux wujianjun-work 4.10.0-37-generic #41~16.04.1-Ubuntu SMP Fri Oct 6 22:42:59 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux软件环境
OBS(Open Broadcaster Software) v20.0.1 (Linux)nginx version: nginx/1.13.6
built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5)
built with OpenSSL 1.0.2g 1 Mar 2016
TLS SNI support enabled
configure arguments: –with-pcre=pcre-8.38 –add-module=nginx-rtmp-module-1.1.11
Nginx+obs安装及配置
安装obs
1 | wujianjun@wujianjun-work ~ $ sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next |
nginx加装rtmp模块
nginx-rtmp-module (https://github.com/arut/nginx-rtmp-module)
1 | wujianjun@wujianjun-work ~ $ sudo apt-get install build-essential |
增加rtmp协议配置
1 | wujianjun@wujianjun-work ~/nginx-1.13.6 $ sudo vi /usr/local/nginx/conf/nginx.conf |
在nginx.conf文件末尾增加以下rtmp协议的配置1
2
3
4
5
6
7
8
9
10
11rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
}
}
}
启动&测试
启动nginx
1
wujianjun@wujianjun-work ~/nginx-1.13.6 $ sudo /usr/local/nginx/sbin/nginx
启动OBS
打开刚安装的OBS软件,在来源处配置图像的推送来源(我这里选择窗口捕获),点击右下角”设置”,进行如下图配置流推送地址
配置完成后,点击”开始推流”
启动支持网络流播放的视频播放器(演示使用vlc播放器)
配置网络流播放的地址,如下图:当点击”播放”后,稍等几秒,即可看到播放器显示了obs捕获的图像了。
由于视频流需要通过网络进行传输,所以直播图像会有几秒的延迟。
http访问直播视频
1、更改nginx.conf中配置,增加hls配置(hls是在流媒体服务器中用来存放流媒体的文件夹),再次hls所在目录设置为http协议访问目录即可,更改后的配置如下: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
26rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
hls on;
hls_path /usr/share/nginx/html/hls;
hls_fragment 5s;
}
}
}
http {
server {
listen 80;
.....
location / {
#root html;
root /usr/share/nginx/html;
index index.html index.htm;
}
.....
}
}
注意: hls所在目录nginx的用户必须有写入权限。
2、obs软件配置录制流名称
在配置obs推送流URL的下方有一个设置”流名称”的地方,这里可以随意填写一个名称(我这里示例填入”test”)
3、重启一下nginx与obs软件,我们即可在手机浏览器中输入 http://ip/hls/test.m3u8 即可通过手机播放直播视频。(直播延迟有点大,后续出文章优化)
观点仅代表自己,期待你的留言。