红联Linux门户
Linux帮助

在局域网内使用OBS将视频推向nginx-rtmp流媒体服务器

发布时间:2016-11-11 11:21:04来源:开源中国社区作者:SunwardTree
最近参加一个小项目的开发,要求实现直播功能,因此就采纳了师兄的建议,搭建nginx-rtmp服务,这篇文章算是一篇技术可行性的探索,下面首先介绍开发环境。
 
开发环境
Win10 x64,OBS推流所在的系统;
Ubuntu 14.04 x64,nginx-rtmp服务器所在的系统,内核版本(Linux version 4.2.0-27-generic);
OBS版本是0.16.3,这一项当然是越新越好,不用保持版本的一致;
nginx的版本是1.10.2(http://nginx.org/download/nginx-1.10.2.tar.gz),目前的最新稳定版;
nginx的插件nginx-rtmp-module(https://github.com/arut/nginx-rtmp-module),是有arut维护的github开源项目。
(nginx安装在linux系统下,为了方便解决依赖问题,我们需要在linux系统下安装aptitude,具体用法稍后介绍;同时为了解压zip的包,需要安装unzip,这两个都可以在根用户模式通过apt-get来安装)
 
步骤简述
[在Ubuntu下]
1、安装nginx和nginx-rtmp-module的依赖环境(用aptitude install);
2、在nginx的解压目录下配置./configure,并用make和make install安装带有nginx-rtmp-module的nginx;
3、用nano配置nginx的文件,增加rtmp支持;
4、注册并启动nginx服务;
 
[在Win10下]
1、安装OBS,直接使用网上的安装包完成;
2、配置推流服务,测试推流效果。
 
详细步骤(图文)
 
[在Ubuntu下]
1、安装nginx和nginx-rtmp-module的依赖环境(用aptitude install)
使用aptitude命令,自动解决依赖问题,aptitude是Debian系linux解决依赖问题的神器,它会自动生成解决方案,用户只用做出选择即可,完美解决依赖问题。做这些系统操作之前,最好开启根用户权限,具体方法其他博主有详细介绍,请读者自行查找,以下命令,默认在su下运行。
aptitude install build-essential libpcre3 libpcre3-dev libssl-dev
在局域网内使用OBS将视频推向nginx-rtmp流媒体服务器
2、在nginx的解压目录下配置./configure,并用make和make install安装带有nginx-rtmp-module的nginx
首先,我在/opt目录下创建了/nginx-rtmp目录,并将实现下载好的压缩包解压到目录下,用到的指令如下所示,解压zip要用到unzip;
在局域网内使用OBS将视频推向nginx-rtmp流媒体服务器
然后,配置./configure
cd /opt/nginx-rtmp/nginx-1.10.2
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
make
make install
上面的指令都是分别执行的,按照上面的步骤来,不会报错。
在局域网内使用OBS将视频推向nginx-rtmp流媒体服务器
3、用nano配置nginx的文件,增加rtmp支持
nano /usr/local/nginx/conf/nginx.conf
打开nginx的配置文件,用nano将下面的配置参数添加到文件末尾,这里创建了live这个rtmp应用,监听的端口是1935。
rtmp {    
server {    
listen 1935;           
application live {    
live on;    
}  
}    
}
4、注册并启动nginx服务
wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx
chmod +x /etc/init.d/nginx
update-rc.d nginx defaults
在shell界面,输入上述命令,完成服务的注册,然后,启动服务。
#启动
service nginx start
至此,nginx服务配置完成。
 
[在Win10下]
1、安装OBS,直接使用网上的安装包完成
我的版本是0.16.3,安装好后的启动界面如下图:
在局域网内使用OBS将视频推向nginx-rtmp流媒体服务器
2、配置推流服务,测试推流效果
这里先要在左下角创建场景,然后配置来源,点击“+”号,我添加的是“媒体源”,然后新建,指向一个自己有的视频文件,点击确定然后就自动开始播放了。
在局域网内使用OBS将视频推向nginx-rtmp流媒体服务器
接下来,配置串流,点击最右边的“设置”,配置串流,新建自定义流媒体服务器,在路由器设置中,查看Ubuntu系统的IP,并将刚刚设置好的rtmp服务的地址记牢,我的服务器IP是192.168.1.105,端口号1935,服务地址是/live,因此,我的推流URL是“rtmp://192.168.1.105:1935/live”,点击确定完成配置。
在局域网内使用OBS将视频推向nginx-rtmp流媒体服务器
接下来,先后点击右侧的,“开始录制”和“开始串流”,直播就配置完成了,我们接下来可以在浏览器中输入上述URL地址,浏览器会打开流媒体播放器,播放正在录制的直播,效果如下所示:
在局域网内使用OBS将视频推向nginx-rtmp流媒体服务器
为了保证声音的效果,建议只保留“媒体源”,关闭其他声音,排除干扰。这样,就大功告成了。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/25921.html