9月1日,由工业和信息化部指导,中国信息通信研究院、中国通信标准化协会主办,数据中心联盟承办的“2016可信云大会”在京隆重召开。在云计算重点行业应用分论坛上,中投视讯CTO费有文发表了题为“移动直播产品开发那点事”的演讲。
中投视讯CTO 费有文
以下是演讲全文:
我今天给大家带来的题目主要分三个方面:第一,移动直播的行业背景。第二,基于我们云服务商这些云服务我们怎么样打造我们自己的移动直播产品,做一个实践分享。第三,我们实际上是一个B2B2C的公司,我们自己打造了一个面向基于SaaS、PaaS的云服务平台,我们希望在这个基础上能够拥抱更多的合作伙伴,给我们合作伙伴提供更好的相关服务。
我觉得4G还有终端的发展确实变化非常大。2015年,达到人均每天2.8小时移动直播。现在都不叫百团大战了,可能有接近200、300个,整个产值今年90亿,到2020年可能600亿,这个数字实际上很多是拿不上台面的,各行各业都在拥抱直播。
第二方面,移动直播的通用解决方案,就是主播端通过一个移动终端,通过各类的一些终端,把实时的流推到后端的接收平台上做一个相关的流媒体的处理。最后还是通过终端播放给所有的移动终端用户给看。大概这个流程都是大家通用的。
我们的解决方案主要由这三部分构成。左下角是视讯中国,右下角是“中国网+”的平台,我们算是国家级的一个新媒体平台,是“中国网+”,是基于“互联网+”产生出来的。我们这个直播从产品和功能上跟其他没有什么区别,我们在内容和运营上有天然的差别。
这是我想未来移动直播平台可能作为一般的平台级标配的功能。首先用了商业视频云,还有我们也借助一些开源的东西,最终加上我们自主的业务相关的系统。商业视频云这块确实给我们解决了门槛的问题,我们整个产品花了一个月时间,这边确实给我们带来很大的便利性,这边涉及到的几朵云我们其实都有接入,我们未来也做了一些SaaS平台,现在接入的也是一两家,其他正在做连调。这个帮我们做了采、编、转、存、播、发,这个确实给我们提供了非常多的便利。
跟大家分享一下,面对这么多云,该如何选择呢?
第一,从推流端核心需求来看,是不是兼容,这个确实非常乱,现在加起来一般测试的手机都超过几千款了。是不是一推就发热了,这一块也是作为一个考察的重点。还有在不同的网络环境下,2G、或者3G等等各种网络环境下还能保持推流的稳定性吗?还有一些屏幕有大小之分,所以这个也是作为我们考察的一个因素。
第二,推流端编码方式上我们也做了一些探讨。这个相对硬件可能更简单一些,但是可能兼容性不太好。软编是通用的方案,但是软编也有它的优缺点,这个需要我们做分享。
第三,分发网络核心需求。网络分发这个层面,现在讲延时一定要短,我们要考虑资源投入情况,主播覆盖情况怎么样,整个处理是不是能达到秒拍,这些都需要我们考察。
第四,播放器核心需求。我们以前用了各种各样的播放器,单独拿播放器跟云做对接发现有各种各样的问题,后来发现还是要编码、解码好是同一个厂家,因为这块确实各家针对自己的编码会做一些特殊的播放的适配。系统兼容性上也要考虑,还有用户体验,还有是不是很方便做一些排查和跟踪。
总之,评价商业云,我觉得有几个方面的一些,主要是涉及大三个点。第一,流畅。第二,延时。第三,画质。当然,有一些通过主观判断,有一些通过客观,我们也会建立一些模型,做一些分析,当然业界没有一个通用准。
首先,流畅是最重要的,你有一些视频相关基础才能做到优化,你可能不懂编码,很难做到很好的用户体验。所以,这方面我们也是做了很多尝试。流畅度当然适合各种码流,用户端的网络情况,做一些码流自身的调整。在播放的时候尽量加大播放的缓冲,还有一些CDN效果。当然,这里某些措施,因为这三个指标之间有取舍,甚至也有冲突,这个时候也有一个分寸需要拿捏。
第二,画质。怎么样让画质看的更好,首先是编码效率,现在普遍是264,有一些开源有很多的分支线,所以这里可能也会涉及到他对于编码这块的算法上的一些调整。还有码率越高,可能画质越高,码率越高,可能又不影响它的流畅度。现在很多看到主播的推流,我们做广电这个行业出来,真的跟广播差的很远,大家推流都是小尺寸,一秒钟也就10帧,8帧,一般25帧,对AR、VR来说可能达到60帧以上可能才能真正感觉到很流畅。我们觉得移动终端这一块相对来说还是15帧的帧率相对比较合适,看起来比看动画片可能要好一点。调整分辨率,可以把画布缩的小一点,这样可能画质感更好一点。
第三,延时,这方面有很多措施。第一,云服务厂家提供的接入端的资源节点怎么样,可能韩国的一个主播接到新疆去了,这种情况下肯定是很难推的。第二,现在大部分还是用比较实时的协议。还有做一些播放追赶,当你音画不同步的时候,可能要做一些处理。还有比较高级的处理措施,可能做技术的比较清楚,DNS的解析也需要花几百毫秒,这时候也要做一些预处理,还有解码关键时间不要拉的太长,这些算是一些经验。
前面那些都是我们云服务商给我们提供的一些东西,但是他们也不能解决我们整个产品业务的一些东西,比如我们要做到互动聊天,这个互动里面就很多了,包括发红包,包括抢礼物,都在聊天室里做的,这个聊天室的门槛还是比较高的,我们还是借助开源东西做,主要是Openfire+smack,目前也支持这个集群。还有一些本身聊天比较好的一些功能核心,这里面都包含了。不太好的地方就是它是一个XMPP的模式,靠文本来传输,用户花的流量费可能相对高一点。我们确实投入很多精力,开源东西用起来虽然接触比较简单,但是真正用好确实这块要投入很多的经历去做。我们也没有做非常深入的优化,我们单台服务器,单个房间做到一万人同时在线就可以了。
当然,我们后面也做了一些处理,比如过载保护,经常有一些大型活动,用户可能一下子全涌进来了,这个时候我们做了一些处理方式。会把大量的信息存起来,我们会把广播分发的频率降低,一秒钟可能最多发10条,20条,发的太多用户感觉也不太好。还有一些比如进入房间我们也做了很多优化,开源的东西比较复杂,可能有些笨重,我们在这方面也做了一些处理。比如进入房间以后,慢慢再通知系统,谁来了,还有做用户的一些健全,我们尽量放到业务系统之外,既然以后做健全,连接聊天室的时候可能通过其他方式做。所以,总得原则我们要把这个场景简单化,再做一些异步处理。所以,目前我们初步设定目标应该还是可以达到比较好的用户规模。
最后一块,后端服务,我们的用户、主播。安全上我们也是做了很多的工作,比如系统的安全,很多的服务器,尤其涉及到货币的,我们会做一些IP上的限制,还有客户端的有些数据完全是你不要相信,我说我送了一个礼物,你把礼物全报出来,这个不要单独在聊天室做。包括充值也是一样,必须等到可信的第三方,通过淘宝、微信,第三方回调到你的服务器,才能给这个人加你的虚拟货币。流的安全,我们也做了一个处理,我们有一些特殊性,对播出有要求。还有一些货币安全。
到现在为止,这对一个基础的业务来说,基本产品就已经完成了,但是对我们来说,还只是完成2/3,更多的说的夸张一点1/2。我们有一些特性,因为是国家广电总局颁发的牌照,所以整个播控这块非常严格,整个主播的头像,主播的名称,包括发的文字,整个互动内容都需要通过总编式做审核的,而且要求也非常高。我们一方面是人工还不行,你还得搞一些非常自动化的东西,我们现在也是跟一些科研机构做这方面的东西。
坦白说我们的直播可能不是一个简单的手机去做的,以前我们更多的直播是靠专业的广电级的设备,这样才给人以更好的一些体验根据。所以,我们做的直播,我们也有网红,但是这些网红是我们通过严格认证的机构入住的,所以这里他们要求多方面,还要做导播,还有做切换,甚至做到多方面的播出。所以这里要跟以前的系统做一个融合。比如渠道分发,我们是整个连通到三个运营商的视频基地,某一个剧场,某一个场馆的演唱会可能会直通这些渠道。
我们还有一个比较反人类的举措,我们有电视台频道编播,这时候把实时信号往这边做实时的、准时的插播处理,这都是我们这个平台以前的业务,跟我们有一些冲突,但是我们也做了一些融合,所以这也是导致我们整个周期会比较长一点。
视讯云是在一个什么背景下?国家战略“互联网+”催生了“中国网+”,“中国网+”主要负责新闻对外宣传,但是“中国网+”是一个国家级的服务性的平体,不管“+”各行各业,所有的旅游中国、财经中国,未来我想都基于我的视讯云来做。当然,我们一个公司可能做不了这么多东西,所以我们在这个战略上会吸纳我们优秀的这些内容的制作商,还有一些服务提供商,甚至包括很有特色的符合国家,我们主打的还是国家诚信,只要是真的东西,产品或者服务都可以入住“中国网+”这个平台,也欢迎大家入住。这是我们目前做的一些案例,我们有一个很有特色的,国信办的每次的官方发布都在我们平台做,这些公司他们可能更注重所谓的有些政策的监管。所以,也希望有兴趣的合作伙伴跟我们一块探讨这个行业,谢谢大家!