一对一直播平台搭建从环境部署开始,这包括两方面的环境部署即服务端和客户端。
服务端
在部署服务端环境其实包含很多东西的,最常用的web服务nginx,MySQL、Nosql,api开发最多的三种选择:
java环境,需要jdk,tomcat/jboss
php环境,需要安装php,odp
lua环境,需要安装lua、luajit
考虑使用缓存技术,则主要包含redis和memcached。如果还要其他的日志统计(kafka什么的)需求则还需要更多的环境,我们这里不讨论,只是简单叙述
对于直播而言,我们需要部署两个东西,nginx(含nginx-rtmp-module)、ffmpeg,这两个是直播服务端的关键。
客户端
相对于服务端环境部署来说客户端环境部署复杂很多,尤其是在Android平台,编译导入Android studio等等过程都很复杂,ios平台还好,对于客户端主要就是编译ffmpeg。
一对一直播平台的三种搭建方式简述
方法一
FFmpeg实时推流摄像头,Nginx RTMP模块转发,VLC播放器播放实现直播(`测试通过`):
1. 推流:
1.1 查看本机电脑的设备
1.2 FFmpeg编码推送到RTMP服务器
2. 拉流 (画面中的人物请忽略 )
方法二
obs+nginx+vlc搭建流媒体直播平台
1 流服务设置
2 打开流服务:
3 obs推流设置 (这里我没有加端口号)
5 vlc拉流设置
方法三
结合业务需求,把实时风格转移,在直播流中实现(测试通过)
1. 推流
2. 实现是先拉流,然后实现风格的转移
3. 测试结果
一对一直播平台搭建中系统功能的优化
1、主播认证
一对一直播平台应该与传统直播平台一致,具有真实的主播认证页面。这里我们可以将认证功能放到用户个人中心页面,点击进入认证功能页面后,除了要上传身份证,填写相关真实信息之外,在用户资料中也要进行明确的标识。
一对一直播平台搭建,优化
2、主播列表推荐机制
假设平台有推荐主播、新人主播、关注主播三个列表。针对三个不同的列表我们可以建立以下的推荐机制:
推荐主播列表和新人主播类表,可以按照在线>活跃>在聊的顺序进行排序,如果想要遵循平台的推荐机制,首先主播必须是在线状态,其次要看一下主播的活跃度(在线时长、开播时长等因素),最后如果主播是在聊状态,那可以往后排序(毕竟是一对一直播,主播在聊状态下,其他用户就无法再发起1v1直播的请求)。如果出现同等状态(即主播在线状态、活跃值相同),可再根据主播等级进行排序,当然也可以根据平台运营的需求,在管理后台设置推荐机制,人为将主播排序提前。