这是一个名为”微直播”的微信公众号第三方直播平台插件,属于商业类型的应用
。版本为3.6.4,主要功能是提供移动端直播服务,支持多种直播源接入、互动功能
、打赏、红包等直播平台常见功能。
核心功能模块
1. 直播间管理
– 直播间创建与管理:支持创建多个直播间,设置直播间标题、封面图、描述等信息
– 直播间分类:支持对直播间进行分类管理,便于用户浏览
– 直播间设置:包括密码保护、付费观看、定时直播等功能
– 直播间样式:支持不同样式的直播间界面展示
2. 直播源接入
– 支持多种直播平台接入(如花椒直播、网易青果、YY直播、熊猫直播等)
– 提供多种视频播放格式支持(HLS、RTMP等)
3. 用户互动功能
– 弹幕评论:用户可以在直播间发送评论,支持审核机制
– 点赞功能:观众可以为直播间点赞
– 表情包:内置表情符号支持
– 禁言功能:管理员可以对用户进行禁言操作
4. 礼物与打赏系统
– 礼物系统:用户可以购买并赠送虚拟礼物
– 个人打赏:可以向特定用户打赏
– 主播打赏:可以向主播打赏
– 支付接口:集成微信支付,用于购买礼物和打赏
5. 红包功能
– 个人红包:用户可以发送个人红包
– 群红包:支持群组红包功能
– 红包规则设置:可设置红包金额范围、数量等参数
6. 推广与助力
– 分享功能:支持直播间分享
– 助力功能:用户可以通过助力获得奖励
– 邀请功能:支持邀请好友参与直播
7. 广告与推广
– 横幅广告:支持在直播间投放横幅广告
– 滚动广告:支持滚动文字广告
– 批量广告设置:支持批量设置广告
8. 数据统计与管理
– 观看人数统计:实时显示直播间观看人数
– 打赏排行榜:显示打赏金额排行榜
– 助力排行榜:显示助力次数排行榜
– 用户管理:管理直播间观众信息
技术架构
文件结构
1 wxz_wzb/
2 ├── cert/ # 微信支付证书文件
3 ├── getip/ # IP获取相关
4 ├── inc/ # 包含mobile和web子目录
5 ├── qrcode/ # 二维码相关文件
6 ├── qrcodes/ # 二维码缓存
7 ├── template/ # 前端模板文件
8 ├── tis/ # 接口相关
9 ├── emo.php # 表情包处理
10 ├── gift.php # 礼物支付回调
11 ├── grouppacket.php # 群红包功能
12 ├── limit.php # 限制功能
13 ├── manifest.xml # 模块配置文件
14 ├── module.php # 模块定义
15 ├── notify.php # 通知功能
16 ├── processor.php # 处理器
17 ├── reward.php # 打赏支付回调
18 ├── send.php # 发送功能
19 ├── site.php # 主要业务逻辑
20 └── 其他PHP文件 # 各种功能模块
数据库表结构
项目包含约50张数据表,主要包括:
– ims_wxz_wzb_banner – 横幅广告表
– ims_wxz_wzb_category – 分类表
– ims_wxz_wzb_comment – 评论表
– ims_wxz_wzb_gift – 礼物表
– ims_wxz_wzb_live_setting – 直播间设置表
– ims_wxz_wzb_user – 用户表
– ims_wxz_wzb_viewer – 观众表
– ims_wxz_wzb_red_packet – 红包表
– ims_wxz_wzb_ds – 打赏表
– 等等
前端技术
– 模板引擎:使用We7框架的模板系统
– 移动端适配:针对移动设备优化的界面
– 实时通信:通过轮询实现直播间的实时消息更新
– 支付集成:集成微信支付功能
特色功能
1. 多平台直播源支持:可以接入主流直播平台的直播流
2. 丰富的互动功能:评论、点赞、礼物、打赏、红包等多种互动方式
3. 灵活的权限管理:区分普通用户、主播、管理员角色
4. 营销推广工具:助力、分享、排行榜等营销功能
5. 安全控制:密码保护、付费观看、禁言等安全措施
6. 数据分析:提供观看数据、打赏数据等统计功能
商业价值
这是一个功能完善的直播平台解决方案,特别适合:
– 微信公众号运营者
– 需要直播功能的企业
– 教育培训机构
– 电商直播场景
– 社交直播应用
该系统提供了从直播创建、用户互动、支付变现到数据分析的完整闭环,是一个相对
成熟的直播平台解决方案。

如何搭建Rtmp服务结合uni-app开发直播APP
由于自己有一个IM类的应用,为了完善它所以决定也加上直播和短视频功能。做直播目前有两种方法,一是直接对接第三方的直播服务产品,二是自己搭服务再开发。所以这里也从这两个方法推荐简单的实现方式,阿里云和腾讯云之类的大厂产品就不安利了。
选型:
1. 第三方,PHP+Uni-App+LiveQing
2. 自己开发,PHP+Uni-app+Nginx-rtmp-module
实现流程:
1. 客户端采集视频流。(开摄像头,录屏等)
2. 客户端推流到rtmp服务器上。
3. rtmp推流到某个特定端口。
4. 其他客户端再对该视频流进行拉流,实现直播。
一、第三方方式
第三方这次推荐的是一个叫LiveQing的平台,有点是搭建快捷方便,功能完善。在服务器上运行了他们的包后除了能实现主流业务场景的直播,而且还提供短视频的点播服务。还包括API调用,通过接口实现直播的创建,删除,直播数据统计。但是是要收费,该软件包在一台物理机或云服务器上只能免费试用一个月。
1. 找到该官网,选择rtmp直播点播流媒体,下载试用把对应系统解压到自己服务器。
2. 目录如下,将start.sh授权为777。然后./start.sh 运行该文件。
3. 运行前可以打开liveqing.ini进行设置,比如后台登录密码,端口号等。
4. 默认需要开启10080和10085,所以需要用防火墙放行,操作如下。
systemctl start firewalld.service // 开启防火墙
firewall-cmd add-port=10080/tcp –permanent
firewall-cmd add-port=10082/tcp –permanent
firewall-cmd –reload // 重启
firewall-cmd –list-ports // 查看放行的所有端口
5. 端口放行,然后在运行start.sh出现下面图标表示成功。
6. 浏览器输入服务器的外网IP:10080,就可以进入控制面板了。
7. 创建一个直播,设置名称和ID,然后选择编辑获取推流地址。
8. 为了测试可以本地下载一个OBS软件推流到该地址,只要一推流,直播状态就会显示直播中并且点击编辑可以获取拉流的地址。
9. 同样为了方便可以使用VLS软件进行拉流或者wowza在线网站测试直播。
二、代码实现
不使用第三方的话,就需要搭建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 包名 #解压各个包源码
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/
6. 检查成功会出现如下,然后make编译一下。
7. make install 安装
8. 以上操作后表示Nginx编译安装完成,然后cd到根目录,/usr/local/nginx/sbin,如果要测试Nginx是否可以访问。先放行80端口重启防火墙,在sbin下输入./nginx启动Nginx服务。浏览器访问IP地址:80,出现以下表示成功。
9. 在nginx配置文件中配置rtmp服务,记住rtmp服务是和http服务是平级,所以我们需要在和http配置平级的位置另起rtmp服务。
vi /usr/local/nginx/conf/nginx.conf #修改配置文件
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
}
application live2 {
live on;
record off;
}
application vod {
play /var/flvs;
}
application vod_http {
play http://服务器的ip/vod;
}
application hls {
live on;
hls on;
hls_path /tmp/hls;
}
}
}
/usr/local/nginx/sbin/nginx -s reload #修改配置文件重启nginx服务
10. 上面rtmp服务的端口是1935,所以也需要按之前方法给1935端口放行,检查云服务器的安全组是否也放行,然后再重启防火墙。
11. 本地电脑测试1935是否开启,可以cmd命令telnet 服务器IP地址 端口号,如果出现一下界面说明端口已经通了 。
12. 接下来也可以通过OBS推流到该地址,然后用WOWZA拉流进行测试。
rtmp://你的服务器ip:端口(1935)/live #URL填写流的地址