【CTO讲堂】互动,让直播更有价值

为了帮助IT从业者职业之路拥有更多收获,在诸多C粉的殷切期待下,由CTO俱乐部打造的CTO线上讲堂自登场以来获得大家好评。本期邀请亲加通讯云CTO 郝飞带来互动,让直播更有价值的主题分享。

图片描述

分享嘉宾: 亲加通讯云CTO 郝飞

嘉宾简介: 郝飞,亲加通讯云CTO,2011年加入亲加团队,带领技术团队创建了国内首个通讯云服务平台,并以此为基础,以技术驱动业务,不断提高服务质量和功能,现已把此平台升级为包括实时语音,视频的移动端完整沟通解决方案;并在研发部实行有效的人才引入管理制度,两年内组建了一支40多人规模的具备快速迭代,交付高质量技术产品能力的团队,从而支持公司业务的快速发展。在音视频编解码、VOIP、流媒体等方面有丰富的研发和管理经验。

公司简介: 上海爱聊信息科技有限公司(简称:亲加通讯云)成立于2011年,是国内专业的移动通讯云服务商。亲加以独有的SaaS/PaaS一体化服务模式,专注为企业级客户和移动应用开发者提供全面的通讯云基础能力和云端服务:包括视频直播、即时通讯(IM)、云客服、实时语音等。亲加在游戏市场覆盖率第一,并已在金融、教育、电商、医疗等领域积累了大量的成功案例。

以下是2月19日CTO讲堂现场完整速记:

主持人:下面欢迎嘉宾亲加通讯云CTO郝飞,请给大家做个自我介绍吧。
郝飞: 大家好,我是亲加通讯云的郝飞,国防科学技术大学毕业,专业是计算机科学与技术;个人在音视频编解码,流媒体,VOIP,即时通讯等方面有超过15年的研发与产品经验,很高兴今天能够在这里和大家一起交流;

主持人:在加入亲加通讯云前,您主要有哪些技术经历?是什么契机下决定加入现在的创业团队?
郝飞: 我是亲加团队的联合创始人,在创建亲加团队以前,我主要从事音视频编解码方面的工作。早些年,在视频方面主要进行解码优化,当时在双核CPU 上实现1080P 分辨率下的实时解码,在解码流程并行化,算法优化和汇编优化三个层次上对H264 进行深度调优。音频上则是进行低速率语音编解码的研究,速率一般是小于5kbps的码率。

当时从事的这些项目都属于公司内部项目,这些项目的继续深入需要依赖于其所属产品成功与否;但其实这些项目本身也是很有价值的,能够满足很多实际应用场景的需求,是可以单独拿出来作为一个基础服务给更多开发者使用的。

基于这样的想法,我们成立了亲加团队,我们就是希望能够为更多的产品提供完整的即时通讯和音视频通讯解决方案,整体提升移动互联网的交互体验;

主持人:请介绍一下亲加通讯云的团队构成?
郝飞: 亲加通讯云是一家针对开发者提供通讯服务的技术型公司,研发人员占70%以上; 其主要业务是即时通讯和音视频通讯解决方案;因此,其核心团队成员也都有着多年的实时通讯,VOIP,编解码方面的背景。

目前核心团队成员有些是原来合作多年的同事,有些是公司创立之初就陪伴公司成长的骨干,这些成员都已跟随公司有几年的时间了,大家相互间配合的也都十分默契。目前,团队也在培养一些生力军,对实时系统,音视频技术感兴趣的开发人员可以联系亲加团队,希望通过大家的努力,共同提升移动互联网通讯体验。

主持人:亲加通讯云目前提供那些技术产品和服务? 可否从具体客户案例角度详细阐述一下?
郝飞: 亲加通讯云的服务目前主要分成两部分:1 即时通讯云; 2 直播服务;

即时通讯云产品主要是通过API和SDK 的方式为应用快速植入即时通讯的功能,亲加在这个市场中处于领先地位,在游戏市场占领了70%的份额,在运营商和平台级应用中也占主导地位,易观报告的评测中显示亲加是2015年增长最快的通讯云产品;客户案例这块,目前360游戏SDK 平台,蜗牛的九阴真经,房多多等游戏和应用中都植入了亲加提供的即时通讯功能;

随着应用对音视频沟通需求的提升,亲加也把服务进一步升级到直播业务;目前亲加提供了一套完整的嵌入式直播SaaS 平台; 对于希望在产品中植入直播功能的开发者,可以通过集成SDK快速实现; 对于希望通过网页,微信等渠道进行直播业务的用户,可以通过管理后台自主配置所需的直播H5页面;目前大智慧,平安的安安租等应用中都在使用亲加的直播服务;

主持人:能简单介绍下直播系统的流程吗?哪些参数可以作为评价直播系统的标准?
郝飞: 视频直播业务的原理图如下:

图片描述

音视频数据分别进行采集和编码;视频数据的采集方式包括摄像头,桌面,图片,视频文件,以及带视频采集的各类设备;音视频数据经过编码后根据封装格式进行复用处理,然后封包后发到流媒体服务器;目前通用的直播协议采用的是RTMP;

云端的数据分发使用CDN网络,CDN的作用主要包括两点:第一是保证用户请求流媒体的网络质量,CDN 会选择离用户最近的节点为其提供服务; 第二是通过流媒体服务器的级连方式保证大并发用户的支持。

媒体流在云端除了进行转发,还要进行转码,切片(HLS)和录制等处理;转码可以支持多种分辨率格式,从而满足不同屏幕对不同分辨率码流的要求;转HLS协议主要是为了支持手机H5 端观看;同时,码流会被录制下来,供以后点播使用;观看直播的用户根据接入运营商信息和位置信息会得到就近的CDN 节点,后续的流媒体数据就是通过此服务节点进行拉取的;

关于直播系统的评价参数,客户一般比较关心以下几个:

  • CDN 的稳定性,避免视频卡顿

有些CDN可能会出现节点故障或者节点忙碌的情况,从而导致路由到此节点的客户出现视频卡顿或者干脆不能观看的情况;针对这个问题,直播系统首先需要能够监测到这种情况,一般通过第三方CDN监控结合客户端的卡顿日志汇报可以进行监测;检测到之后可以采用CDN切换等方式避免用户再路由到此节点;

  • 图像的清晰度和多分辨率支持

图像的清晰度是可以调整的; 分辨率越高图像越清晰,但同时带宽消耗也比较大; 一般的直播可能同时需要支持几种分辨率(流畅,标清,高清),从而满足不同屏幕对分辨率的要求,这就需要在流媒体服务器设置相应的转码参数;

  • 直播的延迟

默认情况下,RTMP 协议的延迟一般可以控制在3秒以内 ,HLS一般都在6秒以上(为了保证效果,一般设置在10秒以上更好),这种延迟级别已经可以满足大部分直播场景需求;如果还需要降低系统延迟,那就需要进行特定的优化了;例如,在主播端可以考虑编码的时候只使用I 帧和P 帧,从而减少帧缓存长度;在云端可以考虑减少发送端缓存,从而避免网络太差情况下的数据堆积;在播放端也可以做播放控制,减少缓冲中帧数据的堆压;

  • 带宽的消耗

带宽直接关系到运营开销,大部分客户也比较关心这块; 带宽的消耗与视频的分辨率,编码方式等都有关系;目前亲加采用变码率的编码方式,保证在同样的分辨率下带宽消耗更少; 如果用户的播放端也可控的话,亲加可以支持使用H265的编解码器,同样质量下带宽节约30%左右;

主持人:亲加直播平台的架构是如何的? 在设计的时候有哪些考量?
郝飞:

图片描述

简单的框架图如上,系统采用了分层的方式组织各类服务;

在数据层不仅要考虑到支持业务逻辑的数据存储,还要考虑到流媒体数据存储,流媒体数据需要存储在分布式文件系统中;

业务层包含了各类子系统,每个子系统都以单独服务的方式进行部署,尽量减少系统间的耦合;直播中的聊天服务直接使用了亲加的即时通讯云提供;

与客户端的通讯接口主要包括三种:

  1. Web API 接口主要用来实现业务调用,例如创建直播房间等;
  2. socketIO 实现了客户端与服务器的双向实时通讯,聊天信息,主播状态等信息都是通过此通道来实现的;
  3. CDN 则实现了视频内容的分发,系统采用第三方CDN与自建CDN相结合的方式为用户提供稳定的视频服务;

客户端包括主播端和播放端;主播端亲加提供了全平台的直播工具,能够支持摄像头,桌面,图片和本地视频文件等直播方式;并且主播端支持Logo 替换和私有定制,能够满足平台型客户在品牌宣传上的需求; 播放端则提供了包括各平台设备的完整的SDK,能够满足用户各种应用需求场景;

系统在设计之初,目标就是希望提供一套稳定的,可监控可运维的全平台直播SaaS解决方案,因此,系统必须满足以下这些要求:

  • CDN智能调度

亲加直播系统集成多家CDN,系统提供核心调度算法,可以根据用户的地域,运营商信息以及CDN节点的负载情况进行动态的边缘节点分配;

  • 视频质量监控

系统通过客户端SDK提供的视频加载时长,卡顿次数等打点信息综合判断出整体视频质量情况;同时,亲加与第三方视频监控服务进行合作,对直播进行整体监控; 通过这样两种方式的组合,亲加可以实时准确的对视频直播质量进行监控。

  • 服务的高可用性

系统通过分布式多活的架构保证服务的高可用性;亲加直播的业务部署在多个IDC机房,系统根据用户的Appkey设置进行机房路由;多个IDC机房间进行数据同步,由于同一App的用户只会路由到同一机房,因此不会出现业务数据在不同机房写入,导致数据同步不及时引发业务冲突的情况;当某一机房出现问题的时候,由于这个机房的数据已经同步到其他机房,因此只要切换App对应的机房路由即可恢复服务;其原理图如下:

图片描述

  • 完善的统计信息:

亲加对用户每次加载视频的时长,延迟,观看时间,用户分布等进行了统计,客户可以通过这些统计信息来指导运营策略;

  • 多CDN切换/多分辨率切换:

当用户所访问的CDN节点出现问题的时候,系统会自动进行CDN切换,从而保证用户良好的观看体验; 同时,用户可以根据设备网络情况,手动选择不同分辨率直播;

  • 可定制的H5 界面

客户可以根据业务需求定制H5展现页面,从而在微信,公众号等媒体进行传播;

  • 提供精简,高效的全平台播放器:

系统提供包括iOS,Android,PC/Mac,浏览器,H5 在内的主流平台的SDK;SDK的大小控制在1M 以内,并且优先选择硬件解码器,从而减少系统消耗;

  • 提供全平台视频发布工具:

系统提供包括iOS,Android,PC/Mac,浏览器在內的主流平台视频发布工具,并支持各种直播方式,包括桌面直播,视频设备直播,图片直播,视频短片直播等;

主持人:与同类型直播服务相比,亲加通讯云有哪些区别和优势?
郝飞:目前的直播一般选择的都是基于RTMP 和HLS协议的方案,这类直播技术目前已经比较成熟了,各家在直播本身的技术上并没有本质的区别;但大部分直播应用中,直播只是基础功能,并不能构成业务场景,直播一般都需要和互动关联在一起才能满足场景需求。例如娱乐主播应用中直播需要和聊天关联,在线教育中直播需要和白板关联。亲加就是希望深度挖掘互动的场景,通过互动让直播提供更大的价值,并且亲加有大并发实时系统的经验,对这类系统非常擅长。

除了白板,问答等通用交互工具外,亲加考虑的互动方式还包括:

  • 超大型的互动聊天功能

一般的直播系统中都会有聊天功能,而聊天室的容量基本上都限制在几千人的场景; 亲加则可以支持几十万用户在同一聊天室的场景,为超大型的在线活动提供互动支持; 并且亲加实现了完善的聊天管理功能,支持关键字过滤,禁言,踢人,甚至是管理员记录审核的流程;

  • 实时音视频交互直播

在一对多直播中,用户只能观看,无法参与,而实时音视频交互使视频不再只是单向的输出,而变成了双向交互的升级形态,从而给用户带来更多的参与感,其流程如下:
图片描述

正在直播中的节目进入到了互动的环节,节目需要选出在线观看的一位观众参与到互动中,此时,在线观看直播的用户申请参与互动,主持人同意用户的申请,这时用户与主持人实时进行音视频交互,交互过程直播给所有其他观众。

  • 基于视频内容的互动

之前提到的互动方式都是独立于视频的单独的交互系统,基于内容本身的交互更能吸引用户的参与; 例如在直播美妆的过程中,当某一个品牌的化妆品出现后,同时弹出此化妆品相关的介绍和购买链接,对此化妆品感兴趣的用户可以立刻进行购买;

这种交互的实现原理就是在流媒体中嵌入附加信息; 为了保证用户观看时附加信息能够与画面进行严格的同步,这种附加信息最好嵌入在流媒体中(可以在视频编码或者流媒体协议封装环节),而不是通过消息通道通知到观看端,因为每个观看端的进度不一样,很容易出现不同步的情况;

主持人:对于ToB服务的市场,您怎么看将来的发展前景和挑战?
郝飞:我个人还是比较看好ToB市场的,首先 企业用户付费意向比较明确;其次企业用户粘性比较高,只要服务提供的足够好,一般不会进行替换;最重要的是企业服务这个市场足够大,并且现在还没有巨头垄断;

但同时挑战也很大,主要表现在以下几个方面:

  1. 每家用户的业务逻辑都不尽相同,需要抽象出统一的需求;
  2. 要保证服务足够稳定,企业服务对稳定性要求很高;
  3. 响应要即时,有问题出现时客户都希望第一时间得到响应;
  4. 保证服务的易用性,尽量减少与客户系统的耦合,从而减少集成时间和发布风险;

主持人:未来公司的发展方向和定位是什么? 下一阶段技术发展的重点是什么?
郝飞: 亲加的定位就是要提供ToB的嵌入式沟通全平台解决方案,在帮助客户取得成功的同时体现自身的价值;后期技术发展的重点就是要继续优化音视频交互质量,为客户提供更好的沟通体验,具体包括:

  1. 针对不同网络环境下音视频通讯的调优;
  2. 综合各种监控方式,进一步提升流媒体服务的稳定性;
  3. 探索基于视频内容的深度交互;

主持人:请结合这些年您自己在技术之路上的积累,谈谈技术人该如何做到高效学习和提升技能?
郝飞:技术的细分领域很多,任何人都不可能精通所有技术,所以首先要根据自己的实际情况确定一个技术方向,然后通过看书,网上找资料,实际工作中的项目等方式来建立起自己在这个领域的知识结构树。

在这个过程中,你会发现有些学到的知识在实际工作中使用不到,那这部分就仅仅停留在理论层面,没有充分了解和吸收,这时候可以考虑参与相关的开源项目并进行知识总结分享,通过这样的方式与更多的开发者互动起来,对自己的知识结构可以起到重构和完善的作用,到了一定程度后,对于如何学习,学习什么这些问题你就有自己的答案了。

当某一个领域研究的比较深入后,可以横向扩展一下,把与这个领域相关的其他知识也涉猎一下,这样你会对整体流程的把握更加清晰,会从更全面的视角审视你开发的系统;

主持人:请结合您的切身体会谈谈创业路上您都有哪些收获和思考,对于如今越来越多想要投身创业大海的年轻人,有什么建议?
郝飞:我感觉创业带给我最大的收获就是加速了个人的成长;在创业的过程中,会碰到很多问题,这些问题你都需要自己去面对,这就对你的能力,心态,做事方法,合作态度等都提出了更高的要求,逼迫着你去自我提升,这个过程最开始肯定不适应,但个人的提高需要这样的历练机会;

对于准备投身创业的人员来说,首先要了解创业是很艰辛的过程,要投入大量的精力,风险也很大,最好结合自己的家庭,经济等情况作出合理判断;其次结合自己的人生规划考虑清楚到底想从创业中获得什么,并多与身边已创业的朋友交流下;然后你需要考虑下自己的能力和资源包括哪些,从而确定创业的方向;

如果以上这些你都想好了,并且激情满满的想要放手大干一场,那么就去试试吧,人总要尝试一次跟随内心选择的感觉;

主持人:对想在技术路线上走得更远的人,您都有什么建议和忠告?推荐一些您觉得非常不错的资料或者书籍吧。
郝飞: 技术人员智商一般都比较高,能力比较强,但他们往往不擅长规划,如果希望在技术上走的更远,应该尽早做技术规划:

a 要确定一个希望深入的技术方向,只有在一个方向上持续投入才会比较深入,才可能做出一些真正突破性的项目;

b 找与你技术方向匹配的大平台去工作;大家都知道,同样一套系统,支持的并发量不同其后台架构也完全不一样,找一个业务量足够大的平台,这样你才能接触到那个量级所涉及到的问题,这对于技术的提高是很有帮助的;

c 多做技术交流和分享,这样能够形成学习的闭环,通过分享和反馈不断获得提升;

关于书籍的推荐,鉴于上面提到的情况,我就介绍两本非技术书籍吧,他们对于研发人员进行个人规划和提升交流能力都很有帮助;

第一本是 《高效能人士的七个习惯》,作者是史蒂芬,柯维;

通过这本书的引导,你将会与自己做一次深入的对话,了解自己真正的人生目标和方向,并充满自信的去积极实践,同时,你也能充分理解到人际关系的重要性,并学会如何更好的与他人相处;它将帮助你迈向个人及公众领域的成功;

第二本书是《金字塔原理》,作者是芭芭拉,明托; 这本书将向你介绍了一种思考,表达和解决问题的逻辑,相信通过这本书的学习,你将能够快速提高沟通和表达的能力,并能创造性的拓展自己的思路;


互动环节:请问亲加的在线直播怎么收费?
郝飞: 亲加提供的是一套基础直播业务; 是按照直播的并发数进行收费,因此你可以预估下你们业务的并发数,我们的商务可以提供详细的报价。

互动环节:请问美女直播的时候,送礼物是非常重要的环节,这个业务是包含在您说的架构哪个层面?以及支付结算等,贵司架构里是否涉及?
郝飞: 送礼物这个环节通讯层负责把这个消息发送群中其他人; 支付是核心业务,一般的公司都要自己实现; 礼物扣费成功后,就可以使用通讯发送礼物消息了;

互动环节:怎么提高自己编程能力,郝总能不能推荐几本书?
郝飞: 技术涉及的领域太多,还是要选定方向后在这个领域内找相关的技术数据;泛泛推荐的书可能并不适合你。

互动环节:做音频视频有很多家,郝总如何定位自己在行业中处于什么地位?
郝飞: 做音视频交互的确实有不少公司,每家公司的定位也都不一样; 亲加的定位是提供ToB的沟通解决方案,在这个领域内,亲加的音频通讯云已经被多款大型游戏和应用所证明;并且亲加提供了从IM +实时音视频+直播的全沟通方案,目前好像与我们完全一样的产品并不存在。
问:微信视频聊天,用到亲加没?
郝飞: 很遗憾,微信的视频聊天不是我们做的;但如果您的产品中希望包括视频聊天功能,可以考虑使用亲加的产品;

互动环节:目前除了上海,北京这边有扩张计划吗?招相关技术人员吗?
郝飞: 北京目前正在考虑招聘技术支持人员,公司会对其进行视频技术相关培训,有兴趣的可以联系。

互动环节:网络视频直播现在的市场需求是很大的,但是没有大面积的普及,例如视频会议这一块,造价成本很高,原因是目前的网络直播的技术门槛还很高吗?未来网络视频直播这一块,能否普及到每一个人的手机设备中?
郝飞: 其实没有大面积普及有一部分是技术问题,更多的产品场景问题;原来很多公司没有音视频技术,所以产品也就不会往这个方向去考虑; 亲加就是希望通过提供音视频解决方案,与各开发者一起,提升用户的音视频互动体验;
问:谢谢,目前有很多的提供直播服务的公司 例如展视 他们提供的服务就很局限,所有的服务都是跑在他们的服务器上,亲加 有没有可以将服务部署到客户端自行运营的技术支持?
郝飞: 你说的是私有部署的问题; 这个亲加是支持的;我们不仅支持公有云,也支持私有云的部署,毕竟有很多企业对数据安全等很关注。

互动环节:视频聊天,最大的技术瓶颈有那些?
郝飞: 视频聊天最大瓶颈还是网络路由; 中国网络环境差异很大,不能保证参与视频交互的用户网络质量都很好,这就会导致丢包,延迟,抖动等情况出现,将严重影响质量;

互动环节:请问观看直播的在线人数都是真实的吗,客户提出改动这个数据你们会满足客户需求吗?
郝飞: 有很多应用都有这方面的运营需求,目前系统是支持这种数字调整的;

互动环节:平台上有没有提供监测用户观看或收听质量的功能? 如果有,是如何做的?
郝飞: 刚才的分享中有提到过; 客户观看的真实信息,例如观看时长,卡顿等都可以进行搜集并实时汇总到服务器,这些数据真实反映了视频服务质量;
问:是在客户端处理的吧?是旁路监听,还是同路通知的方式呢?
郝飞: 解码器是可以统计出卡顿次数的,需要在客户端进行处理;


CTO讲堂往期回顾

第1期:APICloud联合创始人兼CTO邹达:  以API为核心的移动应用云大发展时代;第2期:UPYUN CTO黄慧攀:  云加速和技术成长那些事儿;第3期:亿方云科技创始人兼CEO程远:  Box首位华人核心工程师的回国创业之路;第4期:UCloud联合创始人兼CTO莫显峰:  如何成长为技术合伙人?
第5期:听云CTO Wood:  APM实现原理及对IT和产品运营的价值
第6期:吆喝科技CEO王晔:  美国互联网公司A/B测试经验分享及企业技术选型探讨
第7期:箭扣科技CEO、联合创始人徐旸:  如何为App加载强大的通讯社交引擎?
第8期:金童软件执行长、CTO曾炼:  人工智能到底能为我们带来什么?
第9期:环信即时通讯云CTO马晓宇:  招人不易留人更难——创业团队要闯哪些关? 
第10期:一熊科技CTO、联合创始人唐晓敏:  简说创业公司的技术选型,从BearyChat开发说
第11期:武汉绿网副总经理雷葆华:  如何构建高性能网络服务平台及生态系统?
第12期:SequoiaDB巨杉数据库联合创始人王涛:  NoSQL对未来大数据发展的意义何在?
第13期:fir.im 创始人王猛:  将‘简单快速’渗透到移动开发测试每个环节,从fir.im团队说起
第14期:多备份创始人陈元强:  在线灾备革命背后的事
第15期:宝宝树CTO周涵宁:  深度?广度?浅析技术人员的职业发展之路
第16期:Testin联合创始人、产品VP谭斌:  从开发到上线,一个人的两周产品研发之旅
第17期:七牛首席架构师李道兵:  如何构建高可用和可伸缩的架构?
第18期:EasyStack联合创始人兼CTO刘国辉:  OpenStack行业实践和发展趋势探讨
第19期:Foxit software技术副总静楷:  面对世界竞争对手,如何拿到Google PDF开源项目PDFium?
第20期:Beecloud创始人黄君贤:  支付接入开发的陷阱有多深? 第21期:诸葛io创始人&CEO孔淼: Growth Hacking背后,数据分析平台的架构调整
第22期:叶帆科技创始人兼CEO、微软全球最有价值专家刘洪峰: 浅析工业级物联网项目的快速开发
第23期:好雨云创始人兼CEO、原澳客网CTO&CEO刘凡: 微服务架构在云端的应用
第24期:星图数据CTO崔仑: 独家直播双十一全网动态?前黑客“劳改”带你玩转大数据
第25期:兑吧联合创始人兼总裁陈高维: 工具类、新闻类、视频类等不同类型App的积分体系该如何搭建?
第26期:Worktile联合创始人兼CTO李会军: 揭秘高效协作工具背后的技术架构 第27期:云智慧首席架构师高驰涛(Neeke Gao): 如何通过APM持续构建高性能IT架构? 
第28期:洋葱创始人吴洪声(原DNSPod创始人): 密码泄露事件频发?探秘其背后的本质 第29期:云信CreditCloud CTO朱家波: 探秘互联网金融产品开发的技术路线图
第30期:极验验证CTO黄胜蓝: 如何用Python一门语言通吃高性能并发、GPU计算和深度学习
第31期:容联七陌CTO张杨: SaaS云端语音通信架构详解
第32期:Udesk CTO肖立鹏: 打造数据可靠、服务高可用的客服平台
第33期:乌云网创始人方小顿: 企业该如何打造自身的“安全免疫系统”?
第34期:逸创云客服CTO刘铭: SaaS云客服平台技术架构探讨