个人如何搭建Rtmp服务结合uni-app开发直播APP

前言:由于自己有一个IM类的应用,为了完善它所以决定也加上直播和短视频功能 。做直播目前有两种方法,一是直接对接第三方的直播服务产品,二是自己搭服务再开发 。所以这里也从这两个方法推荐简单的实现方式,阿里云和腾讯云之类的大厂产品就不安利了 。
 
选型:1. 第三方,php+Uni-App+LiveQing
2. 自己开发,PHP+Uni-app+Nginx-rtmp-module

个人如何搭建Rtmp服务结合uni-app开发直播APP

文章插图
 

个人如何搭建Rtmp服务结合uni-app开发直播APP

文章插图
 

个人如何搭建Rtmp服务结合uni-app开发直播APP

文章插图
 
实现流程:1. 客户端采集视频流 。(开摄像头,录屏等)
2. 客户端推流到rtmp服务器上 。
3. rtmp推流到某个特定端口 。
4. 其他客户端再对该视频流进行拉流,实现直播 。
 
一、第三方方式第三方这次推荐的是一个叫LiveQing的平台,优点是搭建快捷方便,功能完善 。在服务器上运行了他们的包后除了能实现主流业务场景的直播,而且还提供短视频的点播服务 。还包括API调用,通过接口实现直播的创建,删除,直播数据统计 。但是是要收费,该软件包在一台物理机或云服务器上只能免费试用一个月 。
1. 找到该官网,选择rtmp直播点播流媒体,下载试用把对应系统解压到自己服务器 。
个人如何搭建Rtmp服务结合uni-app开发直播APP

文章插图
 
2. 目录如下,将start.sh授权为777 。然后./start.sh 运行该文件 。
个人如何搭建Rtmp服务结合uni-app开发直播APP

文章插图
 
3. 运行前可以打开liveqing.ini进行设置,比如后台登录密码,端口号等 。
个人如何搭建Rtmp服务结合uni-app开发直播APP

文章插图
 
4. 默认需要开启10080和10085,所以需要用防火墙放行,操作如下 。
systemctl start firewalld.service// 开启防火墙firewall-cmd add-port=10080/tcp --permanentfirewall-cmd add-port=10082/tcp --permanentfirewall-cmd --reload// 重启firewall-cmd --list-ports// 查看放行的所有端口5. 端口放行,然后在运行start.sh出现下面图标表示成功 。
个人如何搭建Rtmp服务结合uni-app开发直播APP

文章插图
 
6. 浏览器输入服务器的外网IP:10080,就可以进入控制面板了 。
个人如何搭建Rtmp服务结合uni-app开发直播APP

文章插图
 
7. 创建一个直播,设置名称和ID,然后选择编辑获取推流地址 。
个人如何搭建Rtmp服务结合uni-app开发直播APP

文章插图
 
8. 为了测试可以本地下载一个OBS软件推流到该地址,只要一推流,直播状态就会显示直播中并且点击编辑可以获取拉流的地址 。
个人如何搭建Rtmp服务结合uni-app开发直播APP

文章插图
 
9. 同样为了方便可以使用VLS软件进行拉流或者wowza在线网站测试直播 。
个人如何搭建Rtmp服务结合uni-app开发直播APP

文章插图
 
二、代码实现不使用第三方的话,就需要搭建rtmp服务,配置Nginx,APP视频采集推流,拉流等等 。如果是大型平台,需要进行分流集群等 。流媒体服务器依赖的服务,1.nginx 服务器;2.nginx服务器安装需要依赖的服务 OpenSSL、pcre、zlib、 c++、gcc等,服务器环境是centos 7.3 64 位 。
1. 进入根目录,mkdir source #创建源码目录,后面的源码都放在这个目录 。cd source进入该目录 。
2. 下载git,yum -y install git,然后通过网络下载需要的包 。
git clone https://github.com/nginx/nginx.git#从github服务器上将nginx的源代码下载下来git clone https://github.com/arut/nginx-rtmp-module.git#将rtmp模块的源码下载下来wget https://www.openssl.org/source/openssl-1.1.0.tar.gz#下载OpenSSL源码包wget https://ftp.pcre.org/pub/pcre/pcre-8.39.tar.gz#下载pcre源码包wget http://www.zlib.net/zlib-1.2.11.tar.gz#下载zlib包源码3. tar -zxvf 包名 #解压各个包源码
个人如何搭建Rtmp服务结合uni-app开发直播APP

文章插图
 
4. 在将nginx和需要的包编译前需要先安装gcc,安装过可以省过 。
yum -y install gcc#确保依赖的gcc安装yum -y install gcc-c++#确保依赖的c++已经安装5. 然后cd命令进入source下的nginx目录,输入下面命令 。
./auto/configure --prefix=/usr/local/nginx--with-pcre=../pcre-8.39--with-openssl=../openssl-1.1.0--with-zlib=../zlib-1.2.11--with-http_v2_module--with-http_flv_module--with-http_mp4_module--add-module=../nginx-rtmp-module/


推荐阅读