不知道大家平时有没有看游戏直播的习惯,我偶尔会看。目前游戏直播通常会分成网游和手游两大类,最明显的区别就是一个需要电脑一个需要手机。但这些在开发者眼中看来,直播间搭建的过程都是比较一致的。不过其中也存在需要特殊注意的几个步骤,接下来跟大家简单分享一下。
1.流媒体的发布
这一环节对于整个直播平台来说是非常重要的了,因为最终面向的是各个终端用户,并且需要提供服务的是分布在全网的各个流媒体服务器。我们也可以这样认为,流媒体服务器的稳定性及性能优劣程度决定着终端用户的产品使用体验效果和直播平台运营成本。所以在开发过程中需要进行适当的改进。
(1)采用C语言实现,以保证流媒体服务器的运行效率最高。
(2)将之前的多进程模型改为异步IO模型,从而提高服务器的并发处理性能。(在直播过程中遇到高并发情况时能够及时得到解决)
(3)在协议层上增加对RTMP和HLS协议的支撑。
(4)为了能够大规模的进行分布式部署、调度和容错,可以引入Hadoop分布式架构。
可以通过以上几点在开发过程中做出改进,使得流媒体服务器的整体性能在原有的基础上再进行增高。
2.CDN分发
这一步骤主要是对流媒体数据在全球范围内的多个节点之间,进行一个快速的分发,以提高app终端用户的体验效果。通常会选择RTMP、HTTP及UDP这三个协议,在CDN的节点服务器建设上,需要根据国内互联网的整体布局,采取中心节点—各省级节点—地市级节点的三级架构模式,将最主要的用户流量最先引到第三级的节点上,然后是第二级节点以此类推。设计这样的模式主要是为了节省直播间搭建完成之后,后期的运营成本也就是带宽费用能够降低一些。最后,为了在一定程度上保障直播平台能够流畅运行,可以将CDN系统部署在64位的Linux服务器上。
3.终端播放器
就拿游戏直播来讲,不同的用户会根据自己的喜好和习惯来选择观看的渠道。也就是PC端和手机端,手机端又分为Android和iOS两个系统。所以在终端的解码回放部分,需要分别进行。
(1)PC
基于Adobe的flashplayer来做应用层的开发,这是目前比较成熟的技术路线。在开发过程中,为了有效地缩短开发周期,也可以基于Adobe的OSMF播放器框架来进行开发。当然,这个是需要根据实际情况来灵活变通的。
(2)Android
在Android端的播放器开发过程中,最先需要考虑的就是终端的解码性能。因为解码的框架有很多可以选择的,比如ffmpeg、mediaplayer等。
(2)iOS
iOS与Android端需要考虑的问题是一致的,需要选择苹果提供的videotoolbox的开发接口,通过它能够直接调用苹果处理器中自带的硬件解码功能。这样一来,就可以大大地降低设备功耗,以达到延长电池续航时间的目的。
经过以上的内容我们可以了解到,平时我们所看到的直播平台是经过开发者通过一系列的操作步骤完成的。为了能给用户带来最佳的产品体验,在直播间搭建的过程中也是下了不少功夫。不过要是自己开发这样一个平台的话,还是略微困难了些。
本文声明原创,转载请注明出处。