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

最近参加一个小项目的开发,要求实现直播功能,因此就采纳了师兄的建议,搭建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)。

在局域网内使用OBS将视频推向nginx-rtmp流媒体服务器_第1张图片

2、在nginx的解压目录下配置./configure,并用make和make install安装带有nginx-rtmp-module的nginx

首先,我在/opt目录下创建了/nginx-rtmp目录,并将实现下载好的压缩包解压到目录下,用到的指令如下所示,解压zip要用到unzip;(此处那两个压缩包也可以用 wget 加下载地址下载,下载地址在环境中给出了)

在局域网内使用OBS将视频推向nginx-rtmp流媒体服务器_第2张图片

然后,配置./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张图片

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流媒体服务器_第4张图片

2、配置推流服务,测试推流效果

这里先要在左下角创建场景,然后配置来源,点击“+”号,我添加的是“媒体源”,然后新建,指向一个自己有的视频文件,点击确定然后就自动开始播放了。

在局域网内使用OBS将视频推向nginx-rtmp流媒体服务器_第5张图片

接下来,配置串流,点击最右边的“设置”,配置串流,新建自定义流媒体服务器,在路由器设置中,查看Ubuntu系统的IP,并将刚刚设置好的rtmp服务的地址记牢,我的服务器IP是192.168.1.105,端口号1935,服务地址是/live,因此,我的推流URL是“rtmp://192.168.1.105:1935/live”,点击确定完成配置。

在局域网内使用OBS将视频推向nginx-rtmp流媒体服务器_第6张图片

接下来,先后点击右侧的,“开始录制”和“开始串流”,直播就配置完成了,我们接下来可以在浏览器中输入上述URL地址,浏览器会打开流媒体播放器,播放正在录制的直播,效果如下所示:

在局域网内使用OBS将视频推向nginx-rtmp流媒体服务器_第7张图片

为了保证声音的效果,建议只保留“媒体源”,关闭其他声音,排除干扰。这样,就大功告成了。

参考博客

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

在此向上述博客博主致谢。

转载于:https://my.oschina.net/u/2996336/blog/785598

你可能感兴趣的:(在局域网内使用OBS将视频推向nginx-rtmp流媒体服务器)