直播的推流和拉流主要是由五个部分组成的,分别是:(音视频)采集、(数据)编码、(数据)传输、解码(数据)、播放显示。开发直播 app直播源码是一个非常重要的存在。直播架构在直播系统开发过程中也是一件非常重要的事情,如果架构的设立不能从根本上解决问题或防止问题的发生,那么在前端app运行时就会出现一定的运行错误。关于直播架构,给大家分享下相关的内容。

直播系统从组成上主要分为软件系统和硬件系统,其中,软件系统一般包括媒体系统、服务系统、管理系统三部分组成,硬件系统则主要包括计算、存储、网络/CDN等硬件组成。

直播系统源码.png

1、媒体系统

媒体系统是视频直播的基础,其主要用于音视频信号的采集、前处理、编码、传输、解码和渲染等功能,实现音视频信号由采集方向观看方的传输处理,核心是结合硬件系统,降低网络延迟,保障音视频信号的同步,提供良好的即时性体验。

2、服务系统

是用于与媒体系统结合为主播和参与方提供沟通互动的功能支持,主要功能包括弹幕、聊天、礼物赠送、截图、直播参与控制等,根据不同的应用范围,具体的服务功能有一定的差异性,例如针对教学直播,一般还会具有电子白板、举手、桌面共享、文档共享、点名等功能。

3、管理系统

是用于直播平台的整体运行管理控制,包括用户管理、直播权限管理、直播监控、视频鉴黄、积分体系、礼品体系、运营统计等功能,是支撑直播平台的运行的总控中心。

4、硬件系统

硬件系统主要包括计算、存储、网络/CDN资源,由于视频信息具有容量大、处理复杂的特点,因此,硬件资源对视频直播效果具有较大的决定作用,特别是随着参与直播人员的增加,硬件资源消耗也会随着线性增长。

QQ图片20190824112025.png

二、直播架构的演进

1CDN直播架构

目前最流行的直播架构就是 CDN直播架构,主播通过手机或电脑等设备,将自己的视频流上传到服务器,然后接入对应的CDN服务,通过CDN 进行网络分发,分发到各地的用户,然后所有的用户都可以看到主播的表演了。

2)实时互动直播架构

实时互动直播并不能使用 CDN方案,因为CDN方案的性质决定了延时达不到实时的需求。通常,实现实时互动的架构中,主播把自己的视频流上传到服务器,再通过这台服务器分发给其他用户,再次采用合适的传输协议,并且延时可以做到很小,从主播到服务器再到观众的延时,加上编解码和抖动的延时,可以将延时控制在几百毫秒以内。虽然这个结构很简单,大势有一个缺点就是没有考虑到覆盖不同地区和用户。