qq空间ipad怎么开qq空间直播一直播

2016年应该是直播元年,直播应用百团大战,QQ空间也在6.5版本上线了直播功能,从无到有、快速搭建了直播间。“先扛住再优化”,第一个版本和竞品相比,我们进入直播间的速度比较慢。根据外网统计在6.5版本的用户端看到画面需要4.4s,因此在6.5发布之后,着手启动了优化工作,目标:观看直播需要达到秒进体验(1s内看到画面)。
先上一张直播间的截图:
一、优化效果
1)实验室数据(小米5 WIFI) 30次平均进入时间
2)外网运营数据 (6.5版本 对比 6.5.3版本)
从外网运营数据看,观看成功率提升到
;观看延时提升到平均
。用户进入直播间的时间区间在(0,1]的占比提升到
3)与竞品对比 (左侧空间VS右侧竞品
小米5 WIFI)
1. 优化可以拔高上限,能使用户进入直播间的耗时上限提高到500ms以内,从(0,1]的占比区间提升,对大量用户的提升还是比较明显的;
2. 直播是强依赖网络状况的产品。如果主播的网络条件很差,上行丢包严重时,观众卡在这个时间点进入,由于没有上行是拉取不到首帧数据的,这种情况会导致统计数据被拉高。这也是整体平均时间未到1s以内的原因。
二、QQ空间直播的架构
在前期技术选型上,综合考虑开发周期,稳定性和质量监控体系,我们选用腾讯云
的现有视频互动直播解决方案,以下是整体的架构图。
直播房间使用RoomId做唯一Key。逻辑上分为两层
音视频房间
,主要负责和腾讯云的流媒体服务器通信音视频数据和音视频房间状态的维护;
,主要负责和空间的服务器进行交互,包括赞,评,打赏等业务逻辑和消息房间的状态维护。消息房间通过注册接口来响应音视频房间的状态。这样设计好处就是,消息房间和音视频房间是解耦的,各自单独运行都是允许的;
观众端可以通过互动直播SDK、RTMP或HLS协议三种方式收到主播的推流;观看场景涵盖H5,Native多平台;
直播浮层设计为独立进程,主要是考虑到独立进程 Crash不影响主进程的稳定性;缺点是和主进程的通信复杂,进程启动有部分耗时。
我们将观看直播耗时的各阶段拆细分析
1. 整个观看直播的流程是串行的,导致整体耗时是每个步骤的耗时累加;
2. 拉取房间信息,拉取直播参数配置,拉取接口机IP是三个网络请求,耗时存在不稳定性,一般是300ms,网络情况不好就会到1000ms+;
3. 直播进程的生命周期是跟随Activity的生命周期,Activity销毁后,进程也随之销毁,再打开需要耗时重新创建进程;
4. 互动直播SDK的上下文是依赖直播进程,新进入也需要重新初始化;
5. 拉取首帧数据是单步骤耗时最久,急需解决。
四、确立方案,各个击破
根据直播的具体业务来分析,我们确立了以下几个解决的纬度。
速度优化一般有以下几个方向来解决问题:
1. 预加载;
3. 串行变为并行,减少串行耗时;
4. 对单步骤中的耗时逻辑梳理优化。
根据这些方向,我们做的工作:
1. 预加载进程;
2. 互动直播SDK上下文全局单例,并且预先初始化;
3. 并行预拉取接口机IP,房间信息,预进入音视频房间;
4. 接口机缓存首帧数据,减少GOP分片时间,修改播放器逻辑,解析到I帧就开始播放。
1)新方案的整体流程图:
这样的做法在加速的基础上,还有其他的优点:
1. 对现有的代码改动最小,保证版本的稳定性,除了新增的预拉取逻辑,在原有流程上只需要将之前的异步逻辑改为拉取缓存的逻辑;
2. 原有逻辑成为备份逻辑,流程茁壮型得到增强,预拉取失败还有原有逻辑作为备份“重试”,进房间成功率提高。
2)预拉取流程,详细介绍
从“预拉取接口机IP”这个点来详细介绍如何做预拉取,缓存管理 和 时序处理:
1. 由于直播进程和主进程是内存隔离。Feeds滚动停止(开始预拉取)是在主进程触发。拉取的WNS请求需要在直播进程。通过AIDL跨进程去调用;
2. 接口机IP的请求为异步,需要缓存请求的状态。请求缓存接口机IP数据时,预拉取的状态为成功,直接使用缓存数据;
预拉取的状态为请求中,等待本次预拉取的结果;
预拉取的状态为失败,走之前流程,重新请求接口机IP;
3. 接口机IP需要有时效性的,每次滑动停止都预加载IP,会造成了请求浪费;并且腾讯云的接口机IP有就近接入的特性。为保证负载稳定,如果一直使用缓存的接口机IP可能会导致某台机器负载过多。需要加入时效性的控制。
3)秒开关键
细心的同学肯定发现还有一个最大的耗时点没有解决——拉取首帧数据过慢。这个步骤耗时降低才是秒开的关键。
首帧数据的展示过程,其实是一个下载,解码,渲染的过程。
这里简单插述一下视频编解码过程中的一种约定:
( Group of Pictures )
为了便于视频内容的存储和传输,通常需要减少视频内容的体积,也就是需要将原始的内容元素(图像和音频)经过压缩,压缩算法也简称编码格式。例如视频里边的原始图像数据会采用 H.264 编码格式进行压缩,音频采样数据会采用 AAC 编码格式进行压缩。 视频内容经过编码压缩后,确实有利于存储和传输; 不过当要观看播放时,相应地也需要解码过程。因此编码和解码之间,显然需要约定一种编码器和解码器都可以理解的约定。就视频图像编码和解码而言,这种约定很简单: 编码器将多张图像进行编码后生产成一段一段的 GOP ( Group of Pictures ) , 解码器在播放时则是读取一段一段的 GOP 进行解码后读取画面再渲染显示。 GOP ( Group of Pictures ) 是一组连续的画面,由一张 I 帧和数张 B / P 帧组成,是视频图像编码器和解码器存取的基本单位,它的排列顺序将会一直重复到影像结束。
在互动直播SDK中,将帧类型扩展到五种:
I帧不需要参考帧;
P帧只参考上一帧;
P_WITHSP帧可参考上一帧、I帧、GF帧、SP帧,自己不可以被参考;
SP帧可参考I帧、GF帧、SP帧;
GF帧可参考I帧、GF帧 。
1. 标准的H264编码的参照关系,每一个GOP的第一针是I帧,P帧依次参考上一帧,抗丢包性不强,如果中间有I帧或P帧丢失,则该GOP内后续P帧就会解码失败。
(1.标准GOP组织图)
2. 在实时直播的场景,为保证流畅性,重写编码器逻辑,首个GOP包开头为I帧,后面GOP包开头为GF帧,这是利用GF帧的传递参考关系是跨GOP,每个GF帧参考上一个GOP的I帧或GF帧。GF帧体积对比I帧要小,后续GOP的下载解码更快速。
(2.SDK的GOP组织图)
3. 对GOP内部的帧组织,也使用P_WITHSP帧来代替P帧,主要是因为P_WITHSP帧(粉红色表示)的解析可参考上一帧、I帧、GF帧、SP帧,自己不可以被参考。就算上一帧P_WITHSP未解码出来,后一帧P_WITHSP的解码也不受影响,增强了抗丢包性。
(3.SDK的GOP帧内部参考关系)
那具体到业务上,通过WireShark抓包我们发现。过程主要耗时在首个GOP包下行比较慢,需要等待I帧(FT是0代表I帧)下载完毕才开始解码,如果I帧不完整无法解码,则需要等待第二个GOP包,等待时间加长。
那通过这个现象,为了让整个过程加快,我们做了以下工作:
1. 减小首个GOP包的分片大小:将GOP的分片由5s改为3s,并且首个GOP包只缓存必要的I帧,减少首个GOP包的体积;(PS:GOP包的长度和主播端编码性能也是强相关,GOP分片太小,编码性能不高,分片时长的确定需要综合考虑)
2. 首个GOP包需要走网络下载,同样网络条件下这部分路径越短下载越快。GOP包之前是存在流控服务器上,GOP包要到达客户端连接的接口机,还需要链接传输的耗时。新的版本直接在接口机上缓存当前直播中房间的GOP数据,保证在客户端连上接口机之后,就可以直接从本机缓存中推流首帧数据,省掉之前的链接传输耗时;
3. 大部分播放器都是拿到一个完整的 GOP 后才能解码播放,
改写播放器逻辑让播放器拿到第一个关键帧(I帧)后就给予显示
。不需要等待全部的GOP下载完毕才开始解码;
以上三点做好了之后,效果明显,整个的拉取首帧的时间由之前的2140ms降到平均300ms,当然完成这些工作并不是上面叙述的三点那么简单,中间过程我们也发现一些棘手问题,并推动解决:
主播上行网络丢包导致的GOP乱序、多台接口机之间缓存的管理、GOP分片时长的确定。
4)持续优化
我们一直没有放弃“更快更爽”的体验追求,在后续的迭代中也持续优化直播的体验:
1. 接口机IP竞速;
2. 合并请求;
3. 多码率。
五、遇到的问题
我们的优化手段是将串行的异步请求改为并行;但是将串行改为并行后,几个异步请求同时开始,如何保证各个异步回调的时序运行正常,这是一定要解决的问题,也是大家在做优化过程中比较有代表性的问题。
处理这种异步回调时序问题类似于Promise模式。我这里在具体业务上使用LiveVideoPreLoadManager来统一处理,类图如下:
eVideoPreLoadManager
:负责对外暴露启动预加载方法和拉取结果数据对象的方法。其主要方法及职责如:
:注册监听器,获取结果的数据对象,使用监听器实例来响应对数据对象的处理。
:启动异步任务的执行。
CacheManager
:缓存异步任务处理结果和状态,检查是否过期。负责检测异步任务是否处理完毕、返回和存储异步任务处理结果。其主要方法及职责如下:
:获取缓存异步任务的执行结果。
:设置缓存异步任务的执行结果及当前的执行状态:开始,过程中,结束。
:检测异步任务是否执行完毕。
:负责表示异步任务处理结果。具体类型由相应的业务决定。
:负责真正执行异步任务。其主要方法及职责如下:
:执行异步任务所代表的过程。
获取异步任务处理结果的序列图如下。
采用这种模式,当异步任务同时开始,
如拉取房间信息,接口机IP,房间信息,它们都被封装在LiveVideoPreLoadManager的Task请求实例中,而主流程则无须关心这些细节,只需要将之前的请求方式变为
pute,并注册对应的异步回调接口。Compute内部会通过CacheManager
的 getResult方法检查异步任务处理结果状态,如果异步任务已经执行完毕,则该调用会直接返回,类似与同步操作(步骤5,6,7),那么
LiveVideoPreLoadManager
对外暴露的compute方法是个同步方法;若异步任务还未执行完毕,则会阻塞一直等待异步任务执行完毕,再调用compute注册的回调来响应结果,此时compute方法是个异步方法(步骤5,4)。也就是说,无论compute方法是一个同步方法还是异步方法,对客户端的编写方式都是一样的。
采用这种Promise模式,即对原有流程改动最小,也增强了原有流程的茁壮型,在预拉取失败的时候,那么原有流程的串行逻辑作为兜底保护。从统计数据也可以看到,在优化版本之后,版本的观看端进入房间成功率也有提升。
整个的秒开优化版本时间非常紧张,中间肯定还有别的优化空间,统计数据上来看,整体用户的进入时间还是在2.5s+,新的迭代版本还在持续优化,大家如果对秒进有什么好的想法和建议,欢迎交流。也欢迎大家下载QQ空间独立版体验Qzone的直播功能,分享生活,留住感动!
本文来自微信公众账号提交,由微信啦收录,转载请注明出处。
微信扫码 分享文章打开QQ空间怎么自动播放视频_百度知道您所在的位置: &
手机qq空间怎么直播 qq空间直播怎么开直播
时间: 11:16:43
编辑:linyanhong
来源:下载吧
QQ空间(Qzone)提供中国最大、最受欢迎...
QQ空间,超过6亿用户使用的社交网络。手...
随着各大直播平台都踊跃上线,越来越多的软件也开启了直播功能。这不,QQ最近也正式推出qq空间直播功能,看起来还蛮有意思的,那么手机qq空间怎么直播呢?qq空间直播怎么开直播?下面随小编一起来看看吧!手机qq空间怎么直播?一、首先下载手机QQ空间最新版本。Android版iPhone版iPad版QQ空间直播版类型:影音播放大小:29M版本:v6.5.1.288标签:真人视频查看详情立即下载二、打开APP选择中间的“+”。三、同意直播协议“继续”。四、选择直播画面,填写直播标题。下面开始就可以直播啦!是不是很有意思呢。值得注意的是,QQ空间的这一直播功能要事先预约才可以,至于怎么预约,大家可以参考相关教程:以上就是带来的关于手机qq空间怎么直播的方法介绍!
分享给朋友:
手机qq空间怎么直播相关教程
下载1092次
下载1032次
下载1095次
下载1050次
下载1095次
下载1204次
下载1770次
下载1329次
下载1295次
下载1283次
热门关键字
扫红码得红包5亿红包100%中奖当前位置: >
> 手机QQ空间直播在哪里?手机QQ空间开直播图文教程
手机QQ空间直播在哪里?手机QQ空间开直播图文教程
  要说2016年互联网上最火的,恐怕就是直播了,各种各样的直播平台如雨后春笋般冒出来,就连QQ空间也开启了直播功能,QQ空间直播如何呢?手机QQ空间直播在哪里呢?下面小编就来给大家介绍一下吧。
软件推荐:&&   1、小伙伴们进入手机QQ空间首页,点击以下箭头所指按钮;  2、手机QQ空间直播大大的【直播】功能按钮就展现在你的眼前;  3、首次直播的小伙伴会跳到以下界面,点击【继续】按钮即可;  备注:发起直播时将同步生成一条说说动态,邀请好友一起加入直播与你互动!  4、跳到以下界面以后;小伙伴们点击【开始直播】即可;  5、正在直播的界面,QQ空间直播自带美颜功能,小编建议大家一键开启美颜哈,萌萌哒~  6、如果想退出直播的话,点击界面右上角大【X】,即会弹出以下提示框,点击【确认】即可结束直播;  7、直播结束啦,大家学会了吗?  以上就是今天小编给大家介绍的手机QQ空间开启直播的方法了,喜欢分享或者喜欢直播的小伙伴可以参照一下上述方法,开启自己的直播哦。
最新推荐文章
50.82MB/简体中文
2345加速浏览器(2345Chrome)采用全球最快的webkit内核的浏览器,上网速度加快5倍,...电脑打开自动有音乐播放怎么办 还是QQ空间里的,可是我没有开QQ空间啊-中国学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
电脑打开自动有音乐播放怎么办 还是QQ空间里的,可是我没有开QQ空间啊
来源:互联网 发表时间: 19:37:31 责任编辑:李志喜字体:
为了帮助网友解决“电脑打开自动有音乐播放怎么办 还是QQ空间里的,可是我没有开QQ空间啊”相关的问题,中国学网通过互联网对“电脑打开自动有音乐播放怎么办 还是QQ空间里的,可是我没有开QQ空间啊”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:电脑打开自动有音乐播放怎么办 还是QQ空间里的,可是我没有开QQ空间啊,具体解决方案如下:解决方案1:这个是你下载QQ空间音乐播放器插件和系统冲突导致的 你的用360清除 然后重新装一下插件
1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答
相关文章:
<a href="/cse/search?q=<inputclass="s-btn"type="submit"text="<inputclass="s-btn"type="submit"text="<buttonhidefocusclass="s-btnjs-ask-btn"text="我要提问
<a href="/cse/search?q=

我要回帖

更多关于 qq空间怎么开不了直播 的文章

 

随机推荐