直播源码架构,直播开发不得不说的重要组成
直播的推流和拉流主要是由五个部分组成的,分别是:(音视频)采集、(数据)编码、(数据)传输、解码(数据)、播放显示。开发直播 app,直播源码是一个非常重要的存在。直播架构在开发过程中也是一件非常重要的事情,如果架构的设立不能从根本上解决问题或防止问题的发生,那么在前端app运行时就会出现一定的运行错误。关于直播架构,给大家分享下相关的内容。
直播系统从组成上主要分为软件系统和硬件系统,其中,软件系统一般包括媒体系统、服务系统、管理系统三部分组成,硬件系统则主要包括计算、存储、网络/CDN等硬件组成
1. 媒体系统
媒体系统是视频直播的基础,其主要用于音视频信号的采集、前处理、编码、传输、解码和渲染等功能,实现音视频信号由采集方向观看方的传输处理,核心是结合硬件系统,降低网络延迟,保障音视频信号的同步,提供良好的即时性体验。
2. 服务系统
是用于与媒体系统结合为主播方和参与方提供沟通互动的功能支持,主要功能包括弹幕、聊天、礼物赠送、截图、直播参与控制等,根据不同的应用范围,具体的服务功能有一定的差异性,例如针对教学直播,一般还会具有电子白板、举手、桌面共享、文档共享、点名等功能。
3. 管理系统
是用于直播平台的整体运行管理控制,包括用户管理、直播权限管理、直播监控、视频鉴黄、积分体系、礼品体系、运营统计等功能,是支撑直播平台的运行的总控中心。
4. 硬件系统
硬件系统主要包括计算、存储、网络/CDN资源,由于视频信息具有容量大、处理复杂的特点,因此,硬件资源对视频直播效果具有较大的决定作用,特别是随着参与直播人员的增加,硬件资源消耗也会随着线性增长。
1.直播架构的演进
( 1)CDN直播架构
目前最流行的直播架构就是 CDN直播架构,主播通过手机或电脑等设备,将自己的视频流上传到服务器,然后接入对应的CDN服务,通过CDN 进行网络分发,分发到各地的用户,然后所有的用户都可以看到主播的表演了。
( 2)实时互动直播架构
实时互动直播并不能使用 CDN方案,因为CDN方案的性质决定了延时达不到实时的需求。通常,实现实时互动的架构中,主播把自己的视频流上传到服务器,再通过这台服务器分发给其他用户,再次采用合适的传输协议,并且延时可以做到很小,从主播到服务器再到观众的延时,加上编解码和抖动的延时,可以将延时控制在几百毫秒以内。虽然这个结构很简单,大势有一个缺点就是没有考虑到覆盖不同地区和用户的问题。
( 3)分布式实时互动直播架构
主播的视频流在上传到接入服务器后,这个服务器会把这个视频流分发到我们所部署在世界各地的服务器,然后这些服务器可以接入本地的用户,再把视频传下去。在这个架构里,部署在世界各地的服务器,可以让用户快速就近地接入,整个视频流通过我们在互联网上做的分布式传输算法将它实时传输到世界各地的机房,而且可以避免机房或者骨干性网络的故障,从而对传输造成一定的影响。
2. 解决覆盖问题
需要先部署大量边缘服务器,边缘服务器的地理位置越接近用户约越好,最好是同一个 SP。在这里举个简单的例子,比如在中国国内,我们有的是大量的电信、联通和移动服务器,当我们发现接入的用户是联通用户,这时候就会去找到联通的线路,但是如果有边缘地区的用户观看直播,那么就必须部署很多边缘服务器。还需要有分配服务,如果部署了边缘服务器之后,用户还是没办法接入边缘服务器,所以就需要配套的算法,根据用户的SP,从而找到与其最为匹配的边缘服务器,进行接入分配。
页:
[1]