实时直播2019大阅兵将近--如何快速搭建一个完整的一对一手机直播系统源码?

180 阅读5分钟

实时直播2019大阅兵将近--如何快速搭建一个完整的一对一手机直播系统源码?

大阅兵将近实时直播,大家都想知道如何快速搭建一个完整的一对一手机直播系统源码,现在这个互联网社会,想要拥有一套属于自己的视频直播平台,并且得程序稳定万人不卡,售后有保障,最重要的就是源码的稳定性,而且门槛不要太高了,首在传统直播APP中,由于受众过多,主播无法及时对每一个粉丝做出反馈,因此粉丝难免会希望能与主播进行一对一视频聊天,针对这种情况,为了实现一对一直播功能我们为大家详细讲解下面的功能: 一、 只允许女主播开播,女主播开播选择房间类型一对一视频直播,主播选择一对一视频直播时,弹出输入框,让主播填写每分钟的收费金额,小视频还可以设置收费

二、在app直播列表上添加一对一视频房间类型图标,方便用户直观地了解当前直播系统上的一对一视频房间。

三、用户点击列表时,要首先判断当前主播是不是正在进行一对一视频聊天,如果正在进行则提示“当前主播正忙,请稍后再试”;如果主播当前正在空闲,则提示收费以及金额,用户点击确定以后,主播端会收到“*向你发起聊天请求”,同时用户会进入等待界面。

四、女主播接受用户发起的请求以后,用户进入直播间,并立刻进行连麦,同时直播间内展示当前连麦的时长。

五、一对一视频直播系统的过程中,当用户账户余额不足两次扣费时,则提示余额不足两次扣费,提醒用户充值,充值时用户不用退出直播间;如果用户没有充值,当扣费余额不足时,会弹窗提示用户,用户点击确定则立刻退出直播间,如果用户不进行操作,则在10s以后自动退出直播。

还有就是关于操作流程方面的源码实现: 

操作流程大约是:粉丝首先对主播进行一对一直播邀请,这个邀请相当于用户获取自己的直播流将之推送云服务器(如到阿里云或者腾讯云等),尚若主播同意进行一对一直播,那么就要把用户推的流从云服务器上拉下来,下面我们以腾讯云服务器为例,讲一下这部分的流程。

首先第一步,采集,iOS是比较简单的,Android则要做些机型适配工作,PC最麻烦各种奇葩摄像头驱动,出了问题特别不好处理,建议放弃PC只支持手机主播,目前几个新进的直播平台都是这样的。

第二部,前处理,现在直播美颜已经是标配了,80%的主播没有美颜根本没法看。美颜算法需要用到GPU编程,需要懂图像处理算法的人,没有好的开源实现,要自己参考论文去研究。难点不在于美颜效果,而在于GPU占用和美颜效果之间找平衡。GPU虽然性能好,但是也是有功耗的,GPU占用太高会导致手机发烫,而手机发烫会导致摄像头采集掉帧,iPhone6尤其明显,因为iPhone6的CPU和前置摄像头很近。

第三部,编码,肯定要采用硬编码,软编码720p完全没希望,勉强能编码也会导致CPU过热烫到摄像头。硬编码兼容性又是一个大坑,android上要有人去填。编码要在分辨率,帧率,码率,GOP等参数设计上找到最佳平衡点。

第四部,传输,自己做不现实,交给CDN服务商吧,也就是贵了点,相信有志于做直播平台改变世界的你不差钱。假设2W PCU大约每月带宽费用100万左右,因为清晰流畅的720p要1.5mbps左右。CDN只提供了带宽和服务器间传输,发送和接收端的网络连接抖动缓冲还是要自己写的。不想要卡顿,必然要加大缓冲,会导致延迟高,延迟高影响互动性,要做权衡。

要想用于推流还必须把音视频数据使用传输协议进行封装,变成流数据。常用的流传输协议有RTSP、RTMP、HLS等,使用RTMP传输的延时通常在1–3秒,对于移动直播这种实时性要求非常高的场景,RTMP也成为移动直播中最常用的流传输协议。最后通过一定的Qos算法将音视频流数据推送到网络断,通过CDN进行分发。在直播场景中,网络不稳定是非常常见的,这时就需要Qos来保证网络不稳情况下的用户观看直播的体验,通常是通过主播端和播放端设置缓存,让码率均匀。另外,针对实时变化的网络状况,动态码率和帧率也是最常用的策略。

当然,在网络传输方面全部自己来做基本不现实,找提供推流服务的CDN服务商提供解决方案是最好的选择。