最近参加一个小项目的开发,要求实现直播功能,因此就采纳了师兄的建议,搭建nginx-rtmp服务,这篇博文算是一篇技术可行性的探索,下面首先介绍开发环境。
开发环境
Win10 x64,OBS推流所在的系统;
Ubuntu 14.04 x64,nginx-rtmp服务器所在的系统,内核版本(Linux version 4.2.0-27-generic)最近实测Debian系统完全按照这种方法也是可以实现的;
OBS版本是0.16.3,这一项当然是越新越好,不用保持版本的一致;
nginx的版本是1.10.2,目前的最新稳定版,http://nginx.org/download/nginx-1.10.2.tar.gz;
nginx的插件nginx-rtmp-module,是有arut维护的github开源项目,https://github.com/arut/nginx-rtmp-module/archive/master.zip。
(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
获取了最新系统和软件的机器可以不用这种方法,直接用atp-get。(“最新”定义:最近使用过atp-get update 和 apt-get upgrade)。
2、在nginx的解压目录下配置./configure,并用make和make install安装带有nginx-rtmp-module的nginx
首先,我在/opt目录下创建了/nginx-rtmp目录,并将实现下载好的压缩包解压到目录下,用到的指令如下所示,解压zip要用到unzip;(此处那两个压缩包也可以用 wget 加下载地址下载,下载地址在环境中给出了)
然后,配置./configure
cd /opt/nginx-rtmp/nginx-1.10.2
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
make
make install
上面的指令都是分别执行的,按照上面的步骤来,不会报错。
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,安装好后的启动界面如下图:
2、配置推流服务,测试推流效果
这里先要在左下角创建场景,然后配置来源,点击“+”号,我添加的是“媒体源”,然后新建,指向一个自己有的视频文件,点击确定然后就自动开始播放了。
接下来,配置串流,点击最右边的“设置”,配置串流,新建自定义流媒体服务器,在路由器设置中,查看Ubuntu系统的IP,并将刚刚设置好的rtmp服务的地址记牢,我的服务器IP是192.168.1.105,端口号1935,服务地址是/live,因此,我的推流URL是“rtmp://192.168.1.105:1935/live”,点击确定完成配置。
接下来,先后点击右侧的,“开始录制”和“开始串流”,直播就配置完成了,我们接下来可以在浏览器中输入上述URL地址,浏览器会打开流媒体播放器,播放正在录制的直播,效果如下所示:
为了保证声音的效果,建议只保留“媒体源”,关闭其他声音,排除干扰。这样,就大功告成了。
参考博客
https://www.vultr.com/docs/setup-nginx-rtmp-on-ubuntu-14-04
http://blog.csdn.net/xdwyyan/article/details/43198985
http://www.cnblogs.com/wainiwann/p/3866254.html
http://man.linuxde.net/nano
http://blog.sina.com.cn/s/blog_4ad7c2540101duql.html
在此向上述博客博主致谢。