开发者社区> 德泰> 正文

视频直播推流拉流慢、卡顿解决方案

简介: 视频直播类App当前已经普遍采用CDN来实现访问加速,但还是经常遇到推拉流慢、卡顿的问题。这类问题一般是由于调度不精准、域名劫持、终端手机接入网络动态切换等因素导致,结合使用CDN和HTTPDNS可以比较完美解决此类问题。
+关注继续查看

一、摘要

视频直播类App当前已经普遍采用CDN来实现访问加速,但还是经常遇到推拉流慢、卡顿的问题。这类问题一般是由于调度不精准、域名劫持、终端手机接入网络动态切换等因素导致,结合使用CDN和HTTPDNS可以比较完美解决此类问题。

二、视频直播经典加速架构

当前视频直播类App经典加速架构如下图所示:

screenshot.png

图1 视频直播类App经典加速架构

经典加速架构中,推流阶段使用CDN就近接入实现推流加速,用户播放拉流阶段也可以使用CDN来做加速。由于CDN节点分布的广泛性与边缘性确保了客户能够就近接入与缓存。同直连源站相比,通过CDN加速直播推拉流取得了非常显著的加速效果。

三、经典架构中存在的问题

尽管已经采用了CDN加速,直播类App仍然经常出现访问慢、卡顿等问题,导致大量用户投诉,其主要原因是当前架构中存在以下几方面问题:

3.1 运营商Local DNS配置不合理导致无法就近接入

关于这个问题的描述参考文章App如何实现就近接入?如何改善调度不准问题?那些年移动App域名解析踩过的坑移动互联网时代,如何优化你的网络 —— 域名解析篇

3.2 域名劫持

关于这个问题可以参考文章域名劫持与防范那些年移动App域名解析踩过的坑移动互联网时代,如何优化你的网络 —— 域名解析篇

3.3 用户手机网络制式切换

假设用户A从移动4G切换到家中联通的wifi网络,仍然按照原先的CDN节点进行加速会出现跨ISP调度,访问质量差的悲剧事件。

四、解决办法

HTTPDNS + CDN

上述3个问题都可以通过接入HTTPDNS解决。

解决方案1: 终端源站配合的解决方案

screenshot.png

图2 终端源站配合使用HTTPDNS的解决方案

下面通过推流阶段2个场景说明改进方案如何确保调度到最佳CDN节点:

case 1: Local DNS配置问题导致没有调度到最优节点的场景

  • Step 1: 用户手机上Local DNS配置不准确,域名解析阶段为域名dn返回的是CDN节点B的IP_b,而非最优的CDN节点IP IP_a。
  • Step 2: 推流的终端应用需要向CDN节点发起鉴权请求,CDN节点在收到鉴权请求后,需要提取终端的公网IP_c,然后除了转发鉴权相关信息到视频源站之外,还必须带上推流终端的公网IP_c 给源站。
  • Step 3: 源站收到鉴权信息和终端IP后,首先做鉴权工作,然后源站利用推流的域名dn和推流终端公网IP IP_c向HTTPDNS服务器发起请求,获取最优的CDN节点IP_a,并将IP_a回传给推流终端,告知推流终端IP_a是最佳接入节点
  • Step 4: 终端推流时可以直接向CDN IP_a推流,或者等到发现出现卡顿、慢时切换到IP_a

case 2: 用户网络制式切换(如移动4G切联通wifi)的场景

  • Step 1: 假设之前移动4G网络下最佳CDN节点是IP_b,用户网络制式切换成联通wifi后,最佳节点换成了IP_a。网络切换后,终端第一步仍然向CDN节点IP_b推流,此时会鉴权失败。
  • Step 2: 重复场景1的Step 2到Step 4,推流终端最终可以找到最佳CDN节点IP_a并通过IP_a推流。

解决方案2: 轻服务端解决方案

screenshot

图3 完全基于终端调用HTTPDNS的方案

本方案非常清晰,当推流或者拉流出现服务质量问题(如慢、卡顿)时,立即使用HTTPDNS获取最新的最佳服务质量节点,并利用最新的节点进行推拉流。

另外,首次选用接入哪个CDN节点时也建议使用HTTPDNS来解析决定。

其他要点

请注意,用户网络制式切换时,本架构能够自动找出最优节点并顺利切换到最优节点。

其他因调度问题导致拉流、推流阶段慢、卡顿的问题都可以通过上述方案解决。

五、总结

视频直播类App经常遇到播放质量不佳、慢、卡顿等问题,会引起客户投诉和流失,使用HTTPDNS可以较好解决这类问题。

六、附录

阿里云HTTPDNS六大优势:

1、支持全网域名解析

  • 接口简单统一
  • 无需对接多家HTTPDNS

2、以IP方式对外提供服务,防止自身被劫持

3、AnyCast IP支持异地容灾

各地域使用同一个IP地址提供服务

4、接入延迟低且稳定

以北京为例,测试一下阿里云HTTPDNS的访问延迟:

screenshot.png
图4 阿里云HTTPDNS服务器RTT延迟

5、支持https接口

6、提供Android SDK/iOS SDK,方便接入

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务提供商分享视频直播网站服务器解决方案
大家应该都听过抖音、西瓜视频这类的视频网站,而且这些视频网站深受大家喜爱。直播模式也如雨后春笋一般快速出现,电商直播也逐渐火热。因此很多视频类公司纷纷搭建视频直播平台,那么这类网站的服务器该如何选择呢?下面就由阿里云湖北授权服务中心捷讯技术的小编跟大家一起学习一下。
3239 0
短视频直播系统,构建礼物模块需注意的问题
短视频直播系统,构建礼物模块需注意的问题
58 0
短视频直播系统,如何实现高质量直播场景
短视频直播系统,如何实现高质量直播场景
84 0
视频直播技术干货:一文读懂主流视频直播系统的推拉流架构、传输协议等
本文将通过介绍实时视频直播技术体系,包括常用的推拉流架构、传输协议等,让你对现今主流的视频直播技术有一个基本的认知。
248 0
为什么说移动端网络视频直播系统逐渐成为了一种主流方式
移动端的直播系统已逐渐成为了网络视频直播系统的主要形式之一,这归功于手机的便携式,也突破了时间和地域的束缚,对于用户来说,学习和操作的成本也很低。
137 0
开发视频直播系统,视频直播系统源码是核心技术
了解视频直播行业的朋友应该清楚,对于开发视频直播系统而言,视频直播系统源码是真正的核心技术
372 0
直播系统的顶梁柱:视频直播源码中的礼物功能
我们了解的直播系统功能是十分的实用且丰富的,一般来说,视频直播源码自带的功能有:直播功能、私信功能、邀请奖励、财务管理功能、短视频功能、直播PK功能、多种礼物功能、分享功能、拉黑功能、带货商城功能、家族功能、标签功能、评论功能等等实质性的功能,今天就针对礼物功能来做一下详细的介绍。
227 0
网络视频直播系统,想做好直播要处理好这三点
网络视频直播系统,想做好直播要处理好这三点
1390 0
短视频直播系统为什么需要分布式部署,浅谈分布式部署
短视频直播系统为什么需要用到分布式部署,了解这个问题之前,我们首先要理解,什么是分布式部署。分布式部署就是将数据分散的存储在多台独立的服务器上,采用可以扩展的系统结构,利用多台存储服务一起分担存储负荷,利用位置服务器定位存储信息。
341 0
开发网络视频直播系统应该重点标记的几个方面
一个直播平台的好坏除了跟长期的用户体验有关,还跟用户的第一印象有关。也就是说,从用户打开网络视频直播系统的那一刻起,就已经算是第一印象的开始了。所以,用户体验对于大部分直播平台来说是非常重要并且十分头疼的事情。
1187 0
+关注
德泰
阿里云高级产品专家,负责阿里云移动开发者服务。
文章
问答
视频
相关电子书
更多
视频直播架构解析
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载