帮助与文档
热搜关键词:直播系统短视频源码一对一
直播平台开发中,需要用到哪些基础知识?
发布来源:拼技能    Date:2020/04/22

近年来,直播平台的兴起对娱乐、电竞等产业的发展起到了不少的推动作用,也让其成为了一种流行的消遣地。当然,直播平台也与更多行业结合,逐渐发展出新的产业模式,例如前不久饿了么口碑便开始尝试将直播引入,为生活服务行业的宣传提供了新的突破口。可见,直播平台开发没有走向穷途末路,它依然拥有广泛的前途。那么想要开发一个功能完整的直播平台,需要用到哪些方面的基础知识呢?

3ac61af3e240ebae4771bfc27d12cc7d.jpg

一、直播的技术架构

直播的技术架构比较复杂,包含实现直播过程的所有软件和硬件,整合一下,大体拥有以下模块:视频采集模块(针对音视频信号进行采集和量化处理),前处理模块(对于音频和视频信号进行提前处理),播放控制模块(主要对视频的播放流程和效果进行优化),CDN(用于优化传输网络),交互技术模块(加入额外的功能以提高用户体验),系统架构(数据库、缓存技术、分布式文件系统、消息队列等核心功能模块的总集合)以及一些重要的开源实现项目。

二、音视频处理的一般流程

拥有了以上架构,直播平台开发便可正式开始。直播平台开发流程的本质实际上是对音视频处理的流程,需要经过数据采集、数据编码,数据传输(流媒体服务器)、解码数据、播放显示等5个核心步骤,下面对其中几个核心步骤做简单解释:

1、数据编码:

使用相关硬件或软件对音视频原始数据进行编码处理(数字化)及加工(如音视频混合、打包封装等),得到可用的音视频数据。其涉及到的编码方式主要有CBR和VBR两种。

2、数据传输:

将编码完成后的音视频数据进行(网络)传输,其中涉及到众多的传输协议和控制指令,包含RTSP、RTMP、HTTP、HLS等。

3、解码数据:

使用相关解码器对接收到的编码后音视频数据进行解码,即可得到直接显示的图像和声音。一般来讲,对应的编码器都会带有相应的夹麻器,也有一些第三方解码插件等。

53383d9c14fab974e0ca0899978c9090 (2).jpg

三、常见的视频直播相关协议

在直播平台开发中,拥有众多的视频直播相关协议,它们的优缺点也不尽相同,下面找几个比较有代表性的简单说明下。

1、RTMP:Adobe 公司为Flash/AIR与服务器之间传输音视频数据而开发的私有协议,也是目前最常用的流媒体传输协议。优点:基于TCP长连接,不需要多次建连,延时低,通常只有1~3s;技术成熟,配套完善。缺点:在PC浏览器中只能通过Flash使用,且无法在移动浏览器使用;鉴于Flash即将退出舞台,所以在网页播放端基本不会再RTMP做拉流。

2、HLS:苹果公司提出的基于HTTP的流媒体网络传输协议。其工作原理是切片式传输,把直播流切成无数片,用户在观看视频时,每次客户端可以只下载一部分。优点:基于HTTP协议,所以接入CDN较为容易,很少被防火墙拦下,且自带多码率自适应;作为苹果提出的协议,在macOS/iOS下有极大优势,Android中也提供了对应的支持;可以说此项协议用在移动设备上是再合适不过了。缺点:延时较大,通常不低于10s 。大量的TS片文件,会造成服务器存储和请求的压力。

3、WebRTC:基于Google开源技术,Web端上实现流媒体的协议。优点:RTMP和HLS都是掌握在大企业手中的协议,而WebRTC已被纳入W3C标准;无需安装插件,支持的浏览器越来越多。缺点:厂商对浏览器或系统的定制可能会导致可用性问题,且缺乏服务器端设计和部署方案;传输质量难以保证,优化手段有限;在安卓设备上的兼容性不好;另外,此项协议主要面向Web端,对原生开发支持不足。

以上就是在直播平台开发中,需要用到的一些基础知识。如果您想了解更多信息,欢迎咨询官方客服。