在国内错综复杂的网络情况下,如何构建一个高并发、稳定、低延时的直播系统?在12月21日,网心科技直播技术负责人李浩做客CSDN网络公开课,为数百名技术人员现场解答关于直播系统搭建方面的一系列问题。
李浩总结,要搭建一个能够为用户稳定提供优秀观看体验的直播系统,一定要注意三大关键指标,即卡顿、延时和首屏打开速度。而针对目前如火如荼的直播市场,李浩认为,无论内容和运营手段如何花样翻新,如果没有核心技术作为保障,不能保证这三大指标的合格,直播平台依然很难取得市场竞争的胜利。
以下为李浩的课程内容整理:
一.不同直播业态对应不同的技术要求
直播平台细分为各种不同的业态。目前主流的几种业态,分别是秀场类、游戏类、生活类这三种直播。此外事件类、互动类、教育类、监控类直播这几种业态也较为常见。
尽管这些业态里基本上都有10亿级独角兽公司产生,但每一种业态对系统的核心要求却是完全不一样的:
● 秀场和生活类直播:主播和观众网络环境相对更复杂,因此核心体验是流畅度,可以牺牲码率来提高流畅度,自适应码率、帧率等都是常见的优化手段;
● 游戏类直播:为了保证体验效果,要求的是高清晰度和高流畅度,端到端延时可以做出一些让步来换取压缩率更高的编码参数,容纳更高帧率和清晰度的内容;
● 事件类直播:核心要求是稳定性,包括高可靠上行;
● 互动类直播:核心要求则是端到端的延时,为此网络波动时丢弃视频帧等是可以接受的。
因此需要注意不同的业务形态,后端所用的技术是完全不一样的。如互动类的直播的超低延时方案,4K和VR这种对用户带宽满载利用率的直播场景,通用CDN技术可能无法做到覆盖。
尽管如此,李浩还是认为现在搭建一个直播系统要远比之前来的容易,因为大量工作已经被CDN和终端服务商帮忙解决了,需要自己动手的地方少了很多。
二.直播系统的核心业务需求
那么搭建直播系统时,需要重点关注的核心功能都有哪些?李浩对此一一进行了解析。
A.采集和播放
目前视频的采集已经相对容易许多,因为手机功能相对完整,不像PC时代需要面对不同的摄像头驱动,所以需要核心处理的技术点是网络适配。技术人员需要根据自身的网络条件去调整编码参数,以及多协议的拉流、软硬件的解码、多分辨率追帧等基础需求。如果在此基础之上,还能解决好对缓存的管理、数据同步等高端需求的话,那直播的整体播放体验就比较流畅了。
B.分发和媒体处理
分发和媒体处理的工作,现在除了“特别特别大”的平台,一般都直接由CDN服务商来解决了。因为目前CDN服务已比较完善,跟直播匹配的一些功能,如上下线通知、协议转换、弱网传输,以及像转码、水印、增益、截图、录制这样的功能都已提供。
C.功能系统
需要直播平台自身核心打造的,是功能系统。除去账户系统,还有如人气、道具、打赏、支付、抽奖等功能系统都是必备的。特别是弹幕功能,是对直播平台最核心的技术挑战。主要是弹幕的发送量会很大,直播在线人数动辄几十万,弹幕的发送频率又很高,1、2秒就会发一条消息,巨大的广播量对系统压力很大。所以一般直播平台都会采取分区的方式来加以解决,而如何分区,又在什么情况下合并分区,以维持合适的人气,这里面还是有很多逻辑上的问题是要去解决的。
D.运营系统
运营系统也非常核心。视频的黄反审查,聊天内容的审核,还有一键断播、数据统计、质量监控这些都必不可少,因为一要面对内容监管审查的压力,其次是要能监测到全国不同区域的质量效果。
不过李浩指出,即便是把上述功能都实现了,也只能说搭建出一个基本可以跑的一个直播产品而已,需要提升的地方还很多。三.直播的关键性技术知识
接下来,李浩对直播的一些关键性知识进行了详细的解释:
A.视频帧
视频帧其实就是一个一个的视频单元,视频单元分成三种,分别叫I、P、B帧。I帧可以简单的理解为就是一张图片,体积也会比较大,B帧和P帧它是一个参考帧。对一个直播流来说,最核心的帧是I帧,由I帧引申出来的就叫GOP。通常在直播上看到的延时,其实是内部直播流缓存延时,叫GOP cache。对于一个CDN系统来说,传输延时只是延时的一小部分,还有一部分是产生在用户流里面的GOP cache。所以直播平台如果要降低延时,首先建议调一下上行流的编码参数,调低I帧间隔。
B.码率
码率也分三种,CBR、VBR、ABR。CBR是固定码率,可用于保证网络专线带宽是可控的场景。VBR是可变码率,它不好的地方在于,画面变化剧烈,它的码率跳变会特别大。所以在直播的实际应用中,ABR用的最多,即在质量和码率上做一个均分,控制一个平均值。
C.编码、封装、传输
封装的功能相当于一个桶,它可以把不同编码格式的音视频装在一起,好的封装格式是能兼容很多种的音视频的编码格式的。编码的功能是把原始数据压缩的更小,像视频编码这种原始信息量大的,目前的编码方式已经把信息冗余度做的很低,如果出现丢帧,会导致视频的花屏。
李浩提醒直播技术人员,一定要了解这些基础知识,否则你很难理解直播的延迟产生在哪,以及