4.4. 在APP中请求PHP提供的接口获取推流和拉流地址 7
搭建直播服务器
Nginx的rtmp插件:
官网参考:https://github.com/arut/nginx-rtmp-module
Srs直播服务器:
官网参考:https://github.com/ossrs/srs
中文文档参考:https://github.com/ossrs/srs/wiki/v3_CN_Home
下载srs代码至服务器
git clone https://github.com/ossrs/srs.git
编译安装直播服务器
注意:在编译安装的时候,需要关闭防火墙:
=》cd /trunk
=》./configure –prefix=/www/server/srs –with-ffmpeg
//–prefix=/www/server/srs指定安装位置
//–with-ffmpeg编译ffmpeg模块
=》make -j2 //编译srs程序
//-j2 可选项指定是使用的CPU核数指有CPU有多少核,用来加快编译速度
=》make install
或者:
./configure –prefix=/www/server/srs –with-ffmpeg && make -j2 && make install
启动srs服务器
搭建一个简单的推流和拉流地址管理
创建一个用于保存推流和拉流地址的表
建表语句:
CREATE TABLE applive.live
(
id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
push_url VARCHAR(255) COMMENT ‘推流地址’,
pull_url VARCHAR(255) COMMENT ‘拉流地址’
);
CREATE UNIQUE INDEX live_push_url_uindex ON applive.live (push_url);
CREATE UNIQUE INDEX live_pull_url_uindex ON applive.live (pull_url);
ALTER TABLE applive.live COMMENT = ‘保存直播的推流和拉流的表’;
使用Yii2创建一个项目
参考官网最新的文档:http://www.yiiframework.com/doc-2.0/guide-start-installation.html
下载Yii2源代码:
如果没有安装composer:
curl -sS https://getcomposer.org/installer | ph
mv composer.phar /usr/local/bin/composer
进入到可以通过web访问的目录
=》composer global require “fxp/composer-asset-plugin:^1.2.0”
创建一个项目:
composer create-project –prefer-dist yiisoft/yii2-app-basic AppLive
Yii2框架的手册要点
启动Yii2项目的测试服务器
=》cd /wokers/AppLive 进入项目目录
=》php yii serve/index
修改数据库配置
修改默认的数据库以及数据库用户名和密码
由于Yii框架默认配置了数据库以及数据库的用户名和密码信息,所以需要修改成自己的数据库配置信息:
使用gii生成live表的增删改查
多学一招:线上部署如果想使用gii需要单独配置IP白名单
生成live表对应的模型
生成增删改查
使用srs提供有效的推流和拉流地址
使用srs启动一个rtmp协议的直播服务
由于需要以rtmp协议进行直播服务,所以要使用rtmp直播服务的对应配置文件来启动srs
=》cd /www/server/srs //切换到程序安装目录
=》./objs/src -c ./conf/rtmp.conf
获取推流和拉流的默认地址并进行测试
rtmp默认的推流地址:rtmp://服务器IP地址/live/livestream
rtmp默认的拉流地址:rtmp://服务器IP地址/live/livestream
例如:我的srs服务器对应的推流和拉流地址
推流地址:rtmp://116.62.60.90/live/livestream
拉流地址:rtmp://116.62.60.90/live/livestream
将推流和拉流地址分别存入数据库live表中
使用apicloud创建直播APP
注册apicloud账号
创建一个APP
将APP的初始代码检出到本地
注意:检出的用户名是注册时候的邮箱
在APP中请求PHP提供的接口获取推流和拉流地址
编写PHP接口提供数据
使用yii提供的gii代码生成工具生成输出直播数据的控制器
编写代码输出数据
访问上面生成的ApiController中的index方法
http://0.0.0.0:8080/?r=api/index
在APP端通过接口获取对应数据
注意:安卓模拟器中,无法直接访问localhost:8080
脚下留心:默认发送post请求时必须携带csrf token验证,否则报错,这里需要设置白名单:enableCsrfValidation=false