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

简介: 视频直播类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,方便接入

目录
相关文章
|
SQL 搜索推荐 Java
MyBatis项目中使用GROUP BY分组查询出现异常的原因分析和修复记录
本篇文章记录了在MyBatis项目中使用SQL中的分组查询GROUP BY语句,查询多个字段时数据查询报错的问题。分析了导致GROUP BY查询语句报错的原因并提出解决这样问题的方法。通过对这样问题的解决记录,可以帮助大家在使用MyBatis中的GROUP BY查询时避免出现一些问题。
3922 0
MyBatis项目中使用GROUP BY分组查询出现异常的原因分析和修复记录
|
2月前
|
存储 弹性计算 关系型数据库
2026年阿里云服务器免费试用指南:新用户免费优惠、续费政策与深度解析
2026年,阿里云延续免费试用政策并推出创新优惠。其免费试用产品覆盖计算、存储等多个领域,个人和企业新用户可享不同配置与试用时长,权益构成透明且试用灵活。试用后仍可享受新用户优惠价格,新用户可通过实名认证等条件享受首购折扣、专享套餐等优惠。续费时有折扣政策,但需注意续费时间等事项。
|
3月前
|
存储 弹性计算 数据库
阿里云服务器ECS免费试用攻略:个人300元企业660元额度,支持海外节点
阿里云服务器ECS免费试用活动为新用户提供先试用后购买的机会,个人用户享300元额度,企业用户享660元额度。用户需完成实名认证、无欠费且未购买过ECS。试用包含实例、系统盘及200GB公网流量,支持多地域、多规格灵活配置。本文为大家介绍了单台及多台ECS在网站托管、开发测试、高可用架构等场景的应用,并解答了额度管理、计费规则等常见问题。试用到期后,用户可转包年包月或参与99元特惠等活动继续使用,实现低成本上云。
2033 15
|
3月前
|
弹性计算 缓存 应用服务中间件
2026年阿里云最便宜云服务器对比测评:38元轻量与99元ECS云服务器
2026年阿里云最便宜的云服务器是轻量应用服务器秒杀款(38元/年),其次是99元/年的ECS经济型e实例(新老同享)。两款都是2核2G基础配置,但在带宽、操作复杂度、适用场景上差异明显。下面从配置、性能、购买规则、实际体验等方面做完整测评,帮你判断哪款更适配需求。2026年阿里云最便宜的云服务器是38元轻量应用服务器秒杀款,适合个人短期轻量需求;99元ECS e实例新老同享、续费同价,适合长期开发测试。两款均无隐性消费,按场景选型即可满足基础上云需求,下单前建议核对官网实时库存与规则。
1409 4
|
JavaScript Linux 应用服务中间件
如何将Vue项目打包丢入虚拟机CentOS 7中运行
好的,我会按照你的要求,以"这篇文章"四个字开头,用一句话为你摘要每篇文章的主要内容。让我们开始吧。如果你现在就发给我链接,我会立即为你解读。
|
SQL 关系型数据库 MySQL
MyBatis-plus执行自定义SQL
MyBatis-plus执行自定义SQL
746 0
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用问题之集群重启后,所有的Jobs任务丢失,如何快速恢复
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
网络协议 算法 数据库
搞清RIP和OSPF的区别,这是我见过最好的总结!
搞清RIP和OSPF的区别,这是我见过最好的总结!
1317 0
|
存储 JavaScript Linux
百度搜索:蓝易云【CentOS 8上使用NVM安装特定版本的Node.js教程】
现在,你已成功安装和切换到特定版本的Node.js。希望这个教程能够帮助你在CentOS 8上使用NVM安装特定版本的Node.js。
474 2

热门文章

最新文章

下一篇
开通oss服务