来源:韩婷
原文地址:
http://www.infoq.com/cn/news/2016/07/baidu-Live-mobile-terminal-syste
伴随着直播行业的迅猛发展和各种新特性的增加,直播再也不是仅仅满足于主播单向传播的模式,它的互动性和实时性更强。这也为技术上带来了新的挑战,越来越多的开发者开始关注如何快速搭建一个完整的直播系统。
在7月2号由百度开发者中心、百度开放云联合举办的第64期“百度开放云移动游戏和直播技术解读”沙龙上,来自百度开放云数字媒体解决方案架构师袁华良,介绍了百度直播产品LSS背后的技术,以及如何利用LSS快速搭建直播系统。
演讲者简介:
袁华良,百度开放云数字媒体解决方案架构师,加入百度前,担任华为公司云计算解决方案架构师,专注于交通、教育、医疗等行业云计算解决方案。目前主要负责百度开放云数字媒体解决方案的研究与设计工作,提供端到端的一系列解决方案。
一、背景:网红经济给移动直播带来的挑战
泛娱乐直播被赋予了更多娱乐和社交的属性,只要你有一部能上网的手机,就可以随时随地发起或观看直播,而且今天的直播也不再满足于主播单向传播的模式,互动性和实时性更强,也为技术上带来了新的挑战。
-
实时互动要求直播内容从主播端到观看端做到超低时延,目前业内最高水平可将时延控制在1~3s。
-
稳定流畅是评估直播性能的核心技术指标,但多种网络形式及带宽环境(WiFi,2G/3G/4G等),以及不同的直播生产及消费工具的并存,给直播的稳定流畅性带来了诸多挑战。
-
视频质量和带宽损耗一般成正比,即视频质量越高,带宽损耗越大。如何在最低的带宽损耗下获得最高的视频质量,就成为直播平台和云计算服务商追求的目标。同时,移动端有限的计算资源也给视频压缩的有效性带来必定的考验。
-
美颜处理已成为全民直播的必备功能。人脸检测、皮肤检测、皮肤光滑等一系列计算复杂的像素处理过程,对实时性也是很大的挑战。
伴随着直播行业的迅猛发展,各大云服务商也纷纷推出了自己的直播云服务,而百度开放云早在去年9月就发布了一站式的视频直播解决方案——音视频直播LSS。
二、百度直播产品架构
针对移动直播所带来的挑战,百度进行了一系列的探索,推出了直播产品LSS。LSS是一个直播PaaS平台,提供直播从采集端到服务端,最后再到播放端的一站式全套SDK。
LSS的架构图如下图所示,前端可以通过手机、PC端进行采集,推到离它最近的CDN节点,然后经过上传加速,传至云平台,进行一系列处理,再通过合并,还原到离用户最近的CDN节点中,发送到播放器端。

三、六大技术点
LSS的关键技术点可以总结为:首屏秒开、上传下载加速、多码率满足复杂环境需求、分场景实时转码、全流程监控、智能多媒体处理六点。
首屏秒开
首屏秒开的原理:GOP Cache。
直播的数据,实则是一组图片,包括I帧、P帧、B帧,当用户第一次观看的时候,会寻找I帧,而播放器会到服务器寻找到最近的I帧反馈给用户。因此,GOP Cache增加了端到端延迟,由于它必须要拿到最近的I帧。

那么怎么解决这个问题呢?难道说我要牺牲GOP Cache长度来降低延时吗?通过以下表格的数据可以看到,GOP Cache的长度越长,画面质量越好,难道说说就不能兼得吗?答案当然是NO。

那我们是怎么做的呢?如下图所示,我们会在第一个I帧接入的时候做处理,这样既满足画面质量又满足首屏秒开的要求。

上传下载加速
提到上传下载加速,不得不提的是CDN。CDN的数量以及采用的调度算法都是决定分发效果的重大因素。
百度自建的CDN节点接入了市面上几乎所有的运营商,有一万多台的缓存服务器,同时还融合了第三方国外的CDN节点。
许多人有一个误解,认为CDN节点的数量越多,质量就越好。实则,影响其质量的,CDN节点质量及不仅仅是CDN节点的数量,还有其采用的调度算法,否则无法达到良好的分发效果。视频直播LSS所采用的CDN节点调度算法,和百度搜索的算法是一样的,可以达到毫秒级响应。
如下图所示,详细来说,我们第一个节点是推流到离用户最近的CDN节点,推流到CDN结点之后,会通过上传加速到北京和广州的两个集团,然后推给用户播放。这里的处理有一个亮点:传统的RTMP使用TCP时,三步握手等都会导致启动超级慢。列如AIMD在网络情况不好的时候,为了避免拥塞,传输的数据会下降,但是在直播领域的话,如果指数下降,那么画面就会滑屏。所以,我们采用了百度自有的私有协议,在CDN的边缘节点在原站加速下载,可以将传输的速率增大五到十倍,去保证直播延时在三秒之内。

多码率
最终的观众所处的网络情况是超级复杂的,有可能是WiFi,有可能4G、3G、甚至2G,那么怎么满足多方需求呢?
如下图所示,我们采用的是推流的最佳配制。主播一路推流,可同时输出多路直播流,可通过转码模板定制每路输出的音视频处理细节,最多支持5路.未来,我们还会支持主播根据当前网络环境推荐最佳推流配置。

分场景的实时转码
场景的分类是超级细致的,包括户外视频、电影、电视剧、动画、人像等,它们有什么区别呢?
户外视频,是低通率播器,色彩边界比较平滑,而游戏、教育更多的是电脑合成的视频,这种画面的质量会超级的锐化。
对于人像,我们需要对肤色进行调整,在不同场景下的编转码的参数也应该进行调整。
列如说我可能在户外视频、电影、电视剧我推荐的GOP length是5秒,但是在教育领域推荐更长。再列如说下图的Deblocking filter,在户外直播的情况下,由于边界不是超级锐化,那么Deblocking filter可以相对较大。而如果在游戏直播领域,采用跟户外一样的率播器的话,那么边界会模糊,用户观看的视觉效果也会受到影响。

如下图所示,这是一个真实的截图。一个游戏场景,通过编转码的策略,峰值信噪比提高1.5dB从效果上看,清晰度有明显提升的。

全流程的监控
监控的目的保证上传和下载的流畅性。传统的监控系统监控的数值可能是时间、标准等。对于视片流的监控,则要针对帧率、码率、包括首帧时间等方面做监控。
如下图所示,这是一个下行码率和首屏时间的数据。从图中可以看到,下行码率是1.2左右,首屏时间相对比较杂乱,但基本是在500毫秒以下。
监控上传流畅性,我们有一套算法,下载码率在200~250的时候,我们会对整个的上传的流畅性进行打分。如果能平滑到30帧的话,可以打100分,从下图中的监控数据可以看出打分的机制。

智能多媒体处理
智能多媒体处理在直播中的应用是比较广泛的,通过智能的多媒体增加直播话题的趣味性,提供美颜和直播道具。百度的深度学习研究院比较擅长机械学习、人脸识别、语音识别等等。他们可以协助我们识别到人的几个特征点,包括鼻子、眼睛、嘴巴等。LSS和他们进行了深度结合,通过识别,再添加上各种各样的道具、模型,就形成了下图中的画面。

智能多媒体处理另外一个用途是黄反检测。如何保证平台不会涉及到色情的问题呢?色情图片,例如露点、低俗的图片,和一些正常图片,如婴儿的裸体、艺术裸体图片的差别是比较小的。怎么提高准确性,保证用户的内容不会被误判为色情内容呢?
百度通过贴吧、搜索、图库、视频等产品,存储了大量的百万级的图片,通过人工智能深度学习算法不断地训练、优化,形成了黄反检测的机制,用于视频直播方面,可以保证不会误判。

四、开发者如何利用LSS快速搭建自己的直播平台
创建LSS直播会话
会话的创建和管理可以基于LSS控制台、API或SDK实现。以LSS控制台创建会话举例,
在控制台进入“会话管理”页签,选择接流服务器所属最近的区域,选择一种直播源协议:
-
RTMP推流:选择RTMP推流协议,可直接完成并创建会话,系统将自动生成RTMP推流地址。
-
RTMP/RTSP/HLS拉流:选择拉流协议,用户需填写已有直播源的拉流地址,系统从该地址拉取音视频流。
如不选择高级配置,系统默认使用“
live.rtmp_hls_forward_only”无损转发模板,即音视频输出格式与直播源保持一致。
完成并创建,即成功创建一个直播会话。
高级配置
-
实时转码,选择“内置转码模板”或“用户模板”灵活控制直播会话配置参数;
-
同步录制,选择已创建的“录制模板”,在直播过程中同步录制视频流。创建录制模板,请参考录制模板。
-
安全策略,目前仅支持默认安全策略,包括流认证推流认证,播放认证、内容加密、防盗链等功能;
-
通知,输入接口名称和接口地址,当直播会话状态转换时会主动向用户服务器推送消息。
直播推流或拉流
成功创建会话后,点击会话ID,进入会话详情页面。获取直播推流地址,开始推流、拉流操作:
-
RTMP推流:获取推流地址后,即可使用LSS提供的推流SDK开发直播采集端软件或者使用第三方推流工具完成推流。详情请参考直播推流。
-
RTMP/RTSP/HLS拉流:点击“开始拉流”按键,系统从用户输入的拉流地址拉取音视频流。
此时,会话的直播状态显示“直播中,有输入流”。
播放
在推流、拉流过程中,用户可直接在控制台进行播放音视频,或使用开放云提供多端播放器SDK进行播放,参见播放器SDK文档。
如何提高产品流量和曝光度
LSS还与百度相关产品进行了生态的结合,来提高流量及品牌曝光度。包括百度搜索、百度贴吧、百度推广等。百度贴吧有用户群人物画像,可以精准的引流;百度推广,可以提供视频直播平台的推广;百度搜索,可以进行线上的实时的直播处理,例如,华为P9发布会当天,如果用户在线上搜索其相关内容,就可以看到它的直播。
Vanilla社区发起⦗晨读计划⦘,每天坚持积累一点,今天的努力至少让我们比昨天更进一步。
⦗晨读计划⦘ 期待你的加入… …
Vanilla:基于OpenResty的高性能Web应用开发框架
我们的微信号:Vanilla-OpenResty
我们的QQ群:205773855、481213820、34782325
晨读计划
2016/07/13

















暂无评论内容