在直播开发过程中,需要关注的点有很多。但是我们并不能把关注点只是放在客户端如何去采集音频数据,或者是客户端的推拉流的相关内容,而是应该先了解一下直播技术的架构问题。这样一来,对于直播技术的运转流程理解起来也就更加容易了。
1.简单的音视频直播架构
这种架构相对比较简单,可以利用已有的CDN,比如阿里、腾讯、百度等,然后再自己搭建一个服务器并完成服务层的搭建。这个时候,可以先向这一服务器(我们可以叫做信令服务器)发送共享音视频指令,然后通过摄像头采集相关的音视频数据,编码之后通过RTMP的协议将音视频流推送到CDN 。接收端向信令服务器发送指令从而获取所共享的音视频流的名称,再通过这个名称从CDN中拉取音视频流,经过解码之后渲染在屏幕上。
2.实时交互的音视频直播架构
相比起上面的直播架构,这一种直播架构相对来说比较复杂。它们之间的主要区别就是:增加了自有网络。客户端通过UDP进行数据传输,这样可以大大的减少由于网络和CDN结构所导致的音视频延迟的问题。在共享音视频的时候,都是通过UDP协议上传到各自的网络服务器上,这时候如果有其他人要参与实时互动的话,参与者也会通过UDP连接到这个网络,从而达到实时互动的效果。其中,音视频数据上传到自有的网络上之后,还需要通过专门的服务将数据流转化成为RTMP流并推向CDN,这样一来,大多数不参与实时互动的用户就可以在CDN上直接获取音视频的数据了。这一架构的优点就是:既可以满足实时互动的需求,又可以满足大批用户只看不互动的需求。
3.解决高负载和并发问题
为了能够解决实时互动负载过大和高并发的问题,就需要增加资源管理服务器从而实时监测各个服务的资源。在共享音视频时,资源管理器可以分配最佳的服务器给用户使用,而且服务器的资源是可以根据需求来进行横向扩容的。为了增加它的执行效率,服务端通常会使用C或C 语言进行编写。
总体来看,实时互动直播已经成为直播最主要的发展趋势。在直播开发的过程中,不仅需要了解客户端的采集、推拉流等方面的问题,还可以从直播技术的架构方面入手去详细了解直播运行过程中的相关问题。在了解直播架构问题之后,关于直播其他方面的知识相对起来也就更加容易理解了。
本文声明原创,转载请注明出处.