开发者社区> hpy> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

使用cdn加速oss,访问cdn域名的视频URL特别慢

简介:
+关注继续查看

现象 使用cdn加速oss,视频存放在oss上,cdn域名开启了range回源,访问视频url打开特别慢


原因 视频meta信息在视频尾部,浏览器通常会发先发range(0-)请求在头部看不到meta信息,会中断请求再发个range请求获取视频尾部的字节信息,由于cdn域名开启了range回源,cdn会认为第一次range请求包含第二个,会把两个请求合并等第一range请求响应完毕才会处理第二个,这样获取视频尾部字节的range请求就会堵塞在那等第一个range请求导致打开响应时间非常长


分析


访问视频url时,首先cdn会响应200如下图

ff925c40dee52c3a5879db4a512314bcdfa6d7c5


浏览器要播放视频,需要知道meta信息才会播放,所以浏览器会首先发个range请求去获取meta信息,range范围是“0-“,如下图

9abf76b13fd7b91016a36396c500f50c399dd105


浏览器在获取部分字节后发现视频头部没有meta信息,这时候会中断请求,从下图可以看到获取了51KB左右中断了,重新发个range获取视频尾部一段字节来得到meta信息

0bf79dbe7dfe468367ab4d8a51627f9e9d476d2e

由于cdn开通了range回源,cdn会合并回源请求,步骤1的请求已经包含这些range字节,所以cdn会等步骤1响应完后才会处理步骤2的range尾部内容请求,可以发现这个range请求处理30多s还是没有响应,浏览器又多次发range请求获取文件尾部信息,如下图获取多次都没有响应,都在等步骤1cdn回源oss的响应

0fbd595e582af9aba03632d966e31fcd063a4b14


3 步骤1响应完毕后,获取尾部的range请求才会响应,如下这个截图,响应成功,可以看到浏览器获取1M左右内容

ac39a97ef0932faa8ab7f2b6c3cbb46a7ca7e3f22d741b8ed065adce46ed44655b442ad88af13bd0


如下截图可以看到浏览器在播放视频之前获取meta信息的两个请求,先读头部信息拉取51KB左右发现没有meta信息中断请求,再发range请求获取尾部信息,中间发起多个range请求都没有响应,最后响应可以看到拉取了1M左右大小获取到meta信息


de8fadaef147634bfa606398d0b21785f36f2b2f

获取到视频meta信息才开始播放,可以看到播放range48-408404477meta信息一般都是48字节

ca18520ed117602c4ac5b6ced674b8cd1ac45960


解决方案

1 关闭range回源,这样每次range请求都直接透传给oss,oss不会合并range请求会直接响应,不过这样会影响range回源效率,建议方案2


2 使用媒体转码服务把视频转码,转码成标准视频格式,meta信息在视频头部就好了



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

相关文章
「Linux 系列」阿里云服务器的使用及安装 mysql、tomcat、jdk 三件套
最近很多朋友通过我买了阿里云的服务器,大多是学生,啥也不懂也不知道怎么用。每天微信上一个个问我,浪费我时间。但又不能不帮,谁让我长得帅呢。于是就有了这篇文章
34 0
使用 Flink CDC 实现 MySQL 数据实时入 Apache Doris
本文通过实例来演示怎么通过Flink CDC 结合Doris的Flink Connector实现从Mysql数据库中监听数据并实时入库到Doris数仓对应的表中。
555 0
「Linux 系列」阿里云服务器的使用及安装 mysql、tomcat、jdk 三件套
「Linux 系列」阿里云服务器的使用及安装 mysql、tomcat、jdk 三件套
91 0
Chrome、Firefox等浏览器低延迟(300ms)播放海康威视、浙江大华RTSP解决方案
随着网络宽带的不断提升和智能手机的流行,RTSP实时视频流播放及处理不再局限于安防行业。在如道路、工厂、楼宇、学校、港口、农场、景区等诸多场景实施的信息化系统中,绝大多数都采用的是B/S架构,隐藏迫切需要在浏览器中嵌入多路摄像头RTSP流低延迟(小于500毫秒)播放功能
474 0
CDN百科11 | 如何用CDN加速OSS源站资源
选择通过阿里云CDN来加速OSS域名,实现静态资源的访问加速。今天的CDN百科,为大家介绍CDN加速OSS的应用场景以及通过CDN控制台实现CDN加速OSS的操作方法。
3899 0
SAP的ABAP屏幕程序如何使用Table Control进行数据交互
SAP中ABAP的屏幕元素涉及到“定制控制” 和 “Table Control” 两个数据显示容器。 定制控制是单向的数据展示,使用abap的SQL语句把数据从透明表(硬盘中)读取至内表(内存),进行一系列数据整理,然后采用ALV表格的形式把这些数据展示在“定制控制”这个用于数据显示的容器中。
7747 0
安装Oracle JDK 7.0与8.0 for Mac OS X后Eclipse启动报错的解决之道
启动 Eclipse 时,直接报错The JVM shared library "/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin/../jre/lib/server/libjvm.dylib"does not contain the JNI_CreateJavaVM symbol.Unable to fin
2426 0
mac上如何卸载oracle jdk 1.7
目前mac上有一些软件还不支持jdk1.7,只能卸载1.7,恢复到1.6,下面二个链接是官网给出的卸载方法: http://www.java.com/zh_CN/download/help/mac_uninstall_java.
869 0
+关注
hpy
1
文章
33
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载