1、推流:即构、阿里云直播、七牛云等
即构科技由腾讯QQ团队创业,是市面暂时较好的推流SDK,但是费用太高,可以先做个对比。但美颜效果,连麦功能,狼人杀模式等确实相较其他SDK有很大的优势。
阿里云直播是由阿里集团推出的SDK,免费使用,但美颜效果一直都有问题,如果不满意的话,解决策略是接入另一个三方的美颜SDK。
七牛云效果还行,能满足市面上的大部分功能,就连麦方面的话,七牛云主体是客户端合流,对网络、设备的要求较高。
总的来说,市面上推流平台各有各的特点:腾讯云直播、七牛云、金山云更偏向于娱乐性的直播,网易云信是基于他的IM系统,而阿里云偏向服务器CDN,声网更擅长多对多音视频聊天,即构科技连麦技术最强大。
2、视频播放器:IJKPlayer、AliPlayer
IJKPlayer是由B站推出的SDK,基本完全兼容所有格式下的视频文件,各种流状态的监控都提供了不同的定义;AliPlayer相较IJKPlayer而言,更为轻量,但是播放状态之类的,不是很好监控。
3、IM服务:云信、环信等
直播APP免不了需要即时通讯,融云、云信、环信等都提供了IM服务。
4、其他服务:openinstall
openinstall SDK可以获取安装参数,帮助直播间建立上下级关系,明确用户邀请来源,还能在用户打开APP后自动跳转对应直播间。
PS:普及一些音视频技术基础知识
对于刚接触音视频技术的开发者而言,理清这四个概念需要一些时间,让我们通过一组简单的示意图以及关键词来了解这几个概念:
直播:(一对多,RTMP/HLS/HTTP-FLV,CDN)直播是一种非常典型的流媒体系统,通常会分为推流端(Pusher)、拉流端(或者叫播放端,Player)以及直播流媒体中心(直播源站),通常会使用CDN进行直播的分发,因此大部分情况下使用的是通用标准的协议,如RTMP,而经过CDN分发后,播放时一般可以选择RTMP、HTTP-FLV或HLS(H5支持)等方式。直播的特点是只有一个推流端,以及多个的观看端。
实时音视频:(双人/多人通话,UDP私有协议,低延时)实时音视频(Real-Time Communication, RTC)主要应用场景是音视频通话,技术关注点是低延时通信,因而使用基于UDP的私有协议,其延迟可低于100ms,适用于双人通话或是多人群组群话,典型的场景就是QQ电话、微信电话。 腾讯云实时音视频(TRTC)覆盖各平台,除了iOS/Android/Windows之后,还支持小程序以及 WebRTC 互通,并且支持通过云端混流的方式将画面旁路直播出去。当业务对延迟敏感,通话场景要求比较高,或是需要小程序或者 H5 场景下的双人或多人音视频通话可以选择实时音视频 TRTC。
互动直播:(连麦,二对多/多对多,私有协议 标准协议,DC/OC CDN)
互动直播是在实时音视频的基础上,将实时音视频某个房间中的画面经云端混流后,通过旁路直播的方式直播出来。因此,互动直播主播与连麦者之间延迟与实时音视频一致,而主播/连麦者与普通观众之间的延时则与普通直播相同。
旁路直播(关键词:云端混流,转推,CDN)将主/副播实时音视频通话时的整个房间的画面复制一份到云端进行云端混流,并将混流后的画面推流给腾讯云直播系统的工作方式。 因为混流后的视频数据流和主/副播通话房间实际上并不是同一路流,而是在另外平行的一路,因而称为旁路,即不在主路。云端录制时,录制的流也是通过旁路的方式从流媒体中心引出,存到COS中。