等了这么久,就给我看这个?
现在最火的是什么?直播!
吃饭直播、游戏直播、美女直播、明星直播...
当然,看直播最糟心的事情就是:卡顿
好好的直播,被卡成PPT,更过分的是卡成连续剧。
网红Papi酱的直播首秀因为卡顿被网友截出了各种表情包:
本来还想打赏个游轮飞机跑车的,卡成这样
卡顿是影响直播用户体验的核心问题,也是视频云面临的主要挑战之一,很容易扎老铁的心。针对卡顿的优化方案已经有很多,在此不做详细描述,本文主要介绍视频云是如何感知和监控卡顿的发生。
●●●
直播卡顿的成因
一场直播的视频流数据从主播端发出,直到被观众端接收,中间需要经历很多环节:
由上述数据流向图可以很容易的知道,卡顿成因一般有以下几种:
1. 主播到边缘节点的网络状况不佳(调度问题,链路问题,网络波动问题等)。这种卡顿情况的影响面较大,因为主播的音视频数据无法正常流出,所以该主播的所有观众都无法幸免,频繁卡顿。
2. 观众到边缘节点的网络状况不佳(调度问题,链路问题,网络波动问题等)。这种卡顿影响较小,基本上只有特定观众的观看体验受影响。
3. 主播端的推流边缘节点服务器异常。这种情况一般极少发生,会影响到正在连接该节点的所有主播。
4. 观众端的拉流边缘节点服务器异常。这种情况一般也极少发生,会影响到正在连接该节点的所有观众。
5. 内容分发网络异常。极少发生,影响范围不定。
6. 主播或观众的设备性能问题。影响具体的某一场直播。
由于卡顿的成因众多,所以建立一套监控体系实时监控直播过程的每一个环节,有助于帮助客户快速定位与解决问题。
●●●
实时监控
视频云实时监控的解决方案主要涉及数据采集,评价算法,实时计算,监控预警等多个方面。
1. 数据的采集:视频云从项目初期就建立起了比较完善的数据采集体系,主要包括:
SDK端实时收集推拉流的多项指标数据,定时上报至统计服务集群;
在边缘节点上部署数据采集应用,实时采集各路视频流的详细数据,实时上报;
通过在全国各地进行网络测速的方式,实时收集不同地区不同运营商的用户到各个边缘节点的网络畅通情况,上报服务端统一处理。
2. 评价算法 :通过离线大数据的方式对线上海量数据进行特征计算,总结出了一套比较成熟的卡顿评价算法,可以有效评估直播各个环节的质量,并以卡顿率为主要评价指标。
3. 实时计算 :为了能及时处理汇总而来的海量数据,视频云搭建了一套实时计算集群,利用评价算法对各环节产生的数据进行统计,实时的评估各环节在时间,地域,运营商,边缘节点等不同维度下的卡顿率,输出评估结果。确保每一份数据都能在几秒内被准确的计算评估,供监控使用。
4. 监控预警 :对实时计算集群产生的各环节各维度下的卡顿数据进行监控,及时的将异常情况推送给相关的负责人,即时处理。
下图为卡顿实时监控方案的总体结构概览:
●●●
监控实例
方案上线后,已经产出了不少监控信息,举一个例子来说明卡顿实时监控的运作情况:
▽▽▽
某日收到的一条告警信息,显示某一场直播在过去几分钟内质量不佳,主播端和观众端的卡顿率都在持续爬升。收到监控告警信息后,查看该直播的主播推流数据,发现该时间段内的音视频的推流码率都发生了较大的波动:
同时发现SDK的qos机制已经自动启动,开始调整设定参数以保障弱网下的直播流畅:
说明该主播到边缘节点间的网络的确发生了波动,并且已经影响到了部分用户的观看体验。进一步排查后确认是该主播的个人网络发生波动,与地域及cdn边缘节点无关。
利用这一套实时监控体系,视频云能够有效的监控线上各个环节的运作情况,对可能存在异常的节点进行及时处理,最大程度上保障用户的使用体验。
——【特别推荐】——
这里藏着我给你的福利↓
等了这么久,就给我看这个?相关推荐
- 带你一文看懂--应用层、传输层的协议,HTTP协议及实现,UDP和TCP的报文格式以及为什么3次握手和4次挥手
网络基础:TCP/IP四层模型中的典型协议--理解网络通信的流程原理 应用层协议:负责应用程序之间的数据沟通 网络版计算器:客户端向服务端传递两个数字以及一个运算符,服务端收到数据进行解析得到数字与运 ...
- 一文看懂IO多路复用
本文首发在 技术成长之道 博客,访问 hechen0.com 查看更多,或者微信搜索「技术成长之道」关注我的公众号,或者扫描下方二维码关注公众号获得第一时间更新通知! 本文让你理解 什么是IO多路复用 ...
- 看恐怖片可能会让你变胖:吃掉更多的爆米花和巧克力
为了缓解恐怖或暴力电影带来的压力和紧张,人们往往会在观影时吃掉更多的零食. 新浪科技讯 北京时间2月26日消息,据国外媒体报道,一项新研究指出,观看恐怖电影可能会让人更渴望吃点高热量的食物,从而导致体 ...
- 看电影《致青春》有感
最近忙里偷闲,看了一部很久都不敢看的电影<致青春>.不知道是不是怀疑自己没有真正的拥有过青春,却也不愿意在别人的青春故事中去做无谓的感叹.还是觉得所有嚷着所谓怀念青春的东西不过是矫情人的标 ...
- 社区表情包总结,看完不动心算我输!
2020倒数最后一天 晓衡有幸邀请到成都 Cocos 圈的大佬们 一起跨年Happy! 回首过去,感恩大家的支持与帮助 晓衡又幸存下来了! 哦!除了活下来 我们的游戏资源商店也为社区开发者带来 超过 ...
- 《从你的全世界路过》(不想被剧透的就建议不要看了,哈哈哈)
为什么80%的码农都做不了架构师?>>> 作者:汪娇娇 日期:2016.10.1 电影是10.1晚上去看的,乘我还记得电影情节,赶紧记下现在的feeling,于我个人而言,这是 ...
- mysql8.0登录不上去怎么回事_搞笑GIF:女朋友非要给我秀一手厨艺,不过这房子是怎么回事!...
1.来,跟着我的节拍,摇起来! 2.前面的我还能接受,不过这后面的就有点太看得起我了吧! 3.宝贝,不要哭了,我永远爱你,不会离开你的! 4.单身久了,现在看一头猪都感觉眉清目秀的! 5.现在我好奇的 ...
- PCL安装常见的错误集合解决方案(一)
常见的错误集合解决方案(一) No.1 提示错误 'Microsoft.VC90.CRT,version="9.0.21022.8" 把Microsoft.NET Framewor ...
- 100年前的北京Vlog火了!大神利用AI修复古董纪录片,还原1920年的京城生活
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 十三 发自 凹非寺 来源:量子位(QbitAI) 百年前的北京是什么 ...
- Dojo学习13 dijit.Tree 动态添加节点之一
为什么80%的码农都做不了架构师?>>> 13. dijit.Tree 动态添加节点之一 对dijit.Tree研究了很久,源代码也看了好多遍了.对于fx这个类的研究还需要更深 ...
最新文章
- mac终端输入密码被阻止
- Paypal IPN
- 解析C#中is和as操作符的用法 two
- 2017.3.24 分裂游戏 思考记录
- mysql-fron快速写sql语句,SQL优化系列:如何书写高质量SQL语句(一)
- win32开发(mdi应用)
- c语言双向链表的作用,C语言实现双向链表
- [PyTorch] 安装
- FreeCodeCamp之数字转罗马数字
- 反射与特性与Tool编写
- 浅析 golang module
- 5W1H、5W2H 分析法
- HDU-1556题解
- 如何搭建IPv6测试环境
- html 在线编辑pdf,iLoveIMG 一个完全免费的PDF文件处理网站,可在线编辑PDF文件
- drippingblues-靶机渗透
- ESP32 单片机学习笔记 - 06 - (以太网)Ethernet转Wifi
- 计算机网络知识整理(一)
- GRU实现时间序列预测(PyTorch版)
- 重庆华为服务器安装步骤
热门文章
- bootstrap-datepicker default value
- 解决方案:用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联。
- 再谈多态——向上映射及VMT/DMT(转)
- solidworks2018安装教程
- 神经网络 | 基于脉冲耦合神经网络(PCNN)的图像特征提取(Matlab源代码)
- 服务器显示AL024是什么意思,中牟县家具木工机械维修台达驱动器al024故障分分钟修复...
- PyCharm安装及使用
- Windows API入门系列之六 -自己实现MessageBox
- win32程序启用控制台-- 调试输出
- 旅游系统_旅游景区安全标识系统设计原则