博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
直播开发过程中关于直播技术的架构问题
阅读量:5947 次
发布时间:2019-06-19

本文共 934 字,大约阅读时间需要 3 分钟。

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

1.简单的音视频直播架构
这种架构相对比较简单,可以利用已有的CDN,比如阿里、腾讯、百度等,然后再自己搭建一个服务器并完成服务层的搭建。这个时候,可以先向这一服务器(我们可以叫做信令服务器)发送共享音视频指令,然后通过摄像头采集相关的音视频数据,编码之后通过RTMP的协议将音视频流推送到CDN 。接收端向信令服务器发送指令从而获取所共享的音视频流的名称,再通过这个名称从CDN中拉取音视频流,经过解码之后渲染在屏幕上。
2.实时交互的音视频直播架构
相比起上面的直播架构,这一种直播架构相对来说比较复杂。它们之间的主要区别就是:增加了自有网络。客户端通过UDP进行数据传输,这样可以大大的减少由于网络和CDN结构所导致的音视频延迟的问题。在共享音视频的时候,都是通过UDP协议上传到各自的网络服务器上,这时候如果有其他人要参与实时互动的话,参与者也会通过UDP连接到这个网络,从而达到实时互动的效果。其中,音视频数据上传到自有的网络上之后,还需要通过专门的服务将数据流转化成为RTMP流并推向CDN,这样一来,大多数不参与实时互动的用户就可以在CDN上直接获取音视频的数据了。这一架构的优点就是:既可以满足实时互动的需求,又可以满足大批用户只看不互动的需求。
5

3.解决高负载和并发问题

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

你可能感兴趣的文章
宜人贷CTO段念:透明与面向目标是管理理念的核心
查看>>
理解HTTPS
查看>>
linux环境下apache配置虚拟站点
查看>>
ACM — 辗转相除法(Euclidean algorithm)求最大公因数(GCD)
查看>>
实例讲解async的generator实现
查看>>
Friday Q&A 2016-02-19: 什么是安全区域?
查看>>
vertx的一些问题
查看>>
将json字符串转化为json对象(需要引入json2.js框架)[转]
查看>>
python常用的包
查看>>
[译] 学习如何构建自动化、跨浏览器的 JavaScript 单元测试
查看>>
根治JavaScript中的this-ECMAScript规范解读
查看>>
协议与代理之间的阐述
查看>>
Kubernetes 1.2.0 发布,Docker集群管理驶入快车道
查看>>
在CentOS下,利用FFMPEG对视频进行转码
查看>>
SublimeText3系列(3)- HTML-CSS-JS Prettify美化代码&Markdown Preview写作
查看>>
理解 Redux
查看>>
填一填用了半个月 ionic 遇到的坑
查看>>
[译] 用 Haskell 写简单的 Monadic Parser
查看>>
bling_hash——Node.js 字符串哈希的包
查看>>
谷歌 .dev 顶级域名正式开放
查看>>