早就不维护了。来这里立个墓碑🪦
Numbcube是一个集放映、互动、直播一体的综合系统,原本是小群体互动娱乐使用,后来不断附加需求,使得本系统不断完善,功能不断增加,越来越趋近于商业化模式,不再适用于朋友间的娱乐,所以已停止使用并把它开源出来,希望给有类似需求的朋友提供些思路。整个项目比较繁杂,使用的语言也较多,希望各位朋友包含。
- 官方后台自动推流放映影片
- 用户自行推流直播
- 弹幕聊天交流(类似时下热门直播平台)
- 完整的财务系统(点播、购票等,充值模块已剥除,如需使用请自行嵌入支付平台)
Numbcube这个项目经历了几次重生,最初开始于2015年,当时的名字叫ixibi,发展至今大概可以分为这五个阶段,中间还有细节升级便不再描述:
- Stage 1 (基础流媒体直播)- 采用FMS(Adobe Flash Media Server)作为流媒体服务器、官方Flash作为rtmp播放器,实现最简单的直播功能。
- Stage 2 (加入弹幕功能)- 依旧采用FMS作为流媒体服务器,但在之前基础上开发了FMS的通信功能,且修改编译了JWplayer播放器,实现了聊天以及弹幕功能。
- Stage 3 (重新开发)- 摒弃之前全部代码,重新开发,使用Nginx作为流服务器,videojs作为播放器。
- Stage 4 (web升级)- 采用Html5重写前端页面,二次开发videojs融入弹幕功能,采用socketio通信,nodejs作为后端弹幕服务器。
- Stage 5 (功能分化及自动化)- 直播系统分化为用户直播间和官方放映厅,用户直播间由用户自己推流,官方放映厅由用户点播硬盘,后台程序(也是使用nodejs)实时监控并推流,全程实现无人值守。
- web前端:用户界面(基于Blade、Layui)
- web后端:接口(基于laravel)
- 流服务器:核心服务器,所有流都推到该服务器(Nginx)
- 后端监控及推流:监控放映厅场次,到时间自动推流(nodejs、FFmpeg)
- 后端弹幕服务器:socketio通信服务器(nodejs)
- 用户推流工具(非必须):简化用户操作,一键调用FFmpeg推流(C#)
- 部分管理员界面未完成(如用户管理,审核直播间等)
- 部分鉴权未完善(如拉流,用户推流,推流到cdn等)
- 系统结构及部分代码编写时未考虑商业化特征,不够严谨,请未优化前不要商用
- 系统可负载压力未达到商用规模(未严格测试)
- 部署Nginx:Nginx-rtmp(Windows rtmp版)你可以直接下载这个配置好了rtmp的nginx,也可以自己去Nginx官网下载并配置好rtmp流,部署好之后用自带的串流拉流工具是否可正常运行
- 部署Web:安装php7.0,mysql5.7,并导入sql数据,另外本系统web部分基于laravel,所以你要安装composer请参看文档安装,配置好指向本系统web目录,尝试是否可以正常访问
- 部署监控模块:详见NumbCube-autoplay
- 部署弹幕服务器模块:详见NumbCube-barrageserver
- 短信模块配置:如果你使用阿里云短信服务,那么只需要修改
\config\alisms.php
和\vendor\hyperbolaa\alisms\src\configconfig.php
(不太记得这个需不需要改了)里面对应的信息就行了 - 邮件模块配置:如果你用mailgun的话只需要修改(如没有请添加).env中的MAILGUN_SECRET
MAILGUN_DOMAIN=mail.onsigma.com MAILGUN_SECRET=key-8d37afc543b18f5a1111111111111111
- (附加工具)一键推流工具Numbcube-pusher:本repository带了一个编译好的完整程序,如果你想重新编译请前往NumbCube-pusher
- P.S.本系统默认管理员账号Kiros,密码123456
- P.S.本系统所以模块可独立运行,不一定要安装在同一服务器上,只要保证互相之间http和rtmp通信成功即可,原系统运行于2台主机上。
演示为节省空间,本视频多次压缩(39.91M),可能造成比特率过低。
- 前半部分为整体流程演示
- 结尾部分为模块后台演示,以及弹幕演示
- P.S. 本视频涉及影片为测试使用,部分内容已模糊处理
- 点映影片:用户登录后台在有余额的情况下可直接点播影片在指定时间播放(推流过程由后台自动完成)
- 观看影片:用户直接进入对应放映厅,登录并自动提示购票,购票后可直接观看
- 直播:用户在后台页面申请直播间,管理员审核通过后,用户即可在直播间设置界面设置直播间信息及获取推流地址,用户可自行选择推rtmp流工具,这里提供了一个C#编写调用ffmpeg推流的工具
- 观看直播:用户进入直播间即可直接观看
- 由于之前numbcube域名配置了ssl证书,所有页面内所有链接都应为https,包括弹幕socketio和stream拉流地址,否则可能造成无法正常播放和发送接收弹幕
- 本系统原架设服务器网络出口为电信,所以配置了使用百度地图api判断运营商,若播放者的运营商为电信则不从CDN拉流,如不需要可去除对应代码,如需要判断运营商请注册百度开发者将对应API的ak替换为自己的,谢谢
- 请尊重版权法,不要非法传播影视作品
- 如果服务面向全国,尽量使用cdn或云直播服务
- 推流拉流链接尽量加入鉴权
数据库表:
- bill - 用户充值消费订单表
- ip_lock - 多次输错密码锁定表
- liveroom - 放映厅表
- movie - 影片表
- notice - 通知私信表
- numbcube_room - 直播间表
- numbcube_temp - 网站配置信息
- numbcube_ticket - 购票信息表
- scene - 场次表
- sms_temp - 手机验证码缓存表
- user_data 用户信息附加表
- FFmpeghttps://github.com/FFmpeg/FFmpeg
- videojshttps://github.com/videojs/videojs-contrib-hls
- html弹幕https://github.com/bestvist/barrage-div
- 验证码https://github.com/vicens/captcha
- 阿里云短信https://github.com/hyperbolaa/Alisms
See LICENSE for details.