直播平台软件开发中关于直播技术的架构问题-阿里云开发者社区

开发者社区> 开发与运维> 正文

直播平台软件开发中关于直播技术的架构问题

简介: 在直播平台软件开发中,需要关注的点有很多。但是我们并不能把关注点只是放在客户端如何去采集音频数据,或者是客户端的推拉流的相关内容,而是应该先了解一下直播技术的架构问题。这样一来,对于直播技术的运转流程理解起来也就更加容易了。

一.简单的音视频直播架构
1、在直播平台软件开发中这种架构相对比较简单,可以利用已有的CDN,比如阿里、腾讯、百度等,然后再自己搭建一个服务器并完成服务层的搭建。这个时候,可以先向这一服务器(我们可以叫做信令服务器)发送共享音视频指令,然后通过摄像头采集相关的音视频数据,编码之后通过RTMP的协议将音视频流推送到CDN 。
part-00492-780.jpg

2、接收端向信令服务器发送指令从而获取所共享的音视频流的名称,再通过这个名称从CDN中拉取音视频流,经过解码之后渲染在屏幕上。
二.实时交互的音视频直播架构
1、在直播平台软件开发中相比起上面的直播架构,这一种直播架构相对来说比较复杂。它们之间的主要区别就是:增加了自有网络。客户端通过UDP进行数据传输,这样可以大大的减少由于网络和CDN结构所导致的音视频延迟的问题。在共享音视频的时候,都是通过UDP协议上传到各自的网络服务器上,这时候如果有其他人要参与实时互动的话,参与者也会通过UDP连接到这个网络,从而达到实时互动的效果。
2、其中,音视频数据上传到自有的网络上之后,还需要通过专门的服务将数据流转化成为RTMP流并推向CDN,这样一来,大多数不参与实时互动的用户就可以在CDN上直接获取音视频的数据了。这一架构的优点就是:既可以满足实时互动的需求,又可以满足大批用户只看不互动的需求。
u=1222292741,175633609&fm=26&gp=0.jpg

三.解决高负载和并发问题
1、在直播平台软件开发中为了能够解决实时互动负载过大和高并发的问题,就需要增加资源管理服务器从而实时监测各个服务的资源。在共享音视频时,资源管理器可以分配最佳的服务器给用户使用,而且服务器的资源是可以根据需求来进行横向扩容的。为了增加它的执行效率,服务端通常会使用C或C++语言进行编写。
2、总体来看,在直播平台软件开发中实时互动直播已经成为直播最主要的发展趋势。在直播开发的过程中,不仅需要了解客户端的采集、推拉流等方面的问题,还可以从直播技术的架构方面入手去详细了解直播运行过程中的相关问题。在了解直播架构问题之后,关于直播其他方面的知识相对起来也就更加容易理解了。

本文转载自网络,感谢(爱吃五花肉吗)的分享,转载仅为分享干货知识,如有侵权欢迎联系云豹科技进行删除处理

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章