- 当前 Bug 的表现(可附上截图)
小米6播放(video组件)阿里云CDN视频卡住

- 预期表现
正常播放
- 复现路径
小米6手机,打开二更视频,点一个超过5分钟的视频,播放。加载一段播放完就会卡住。
从nginx请求日志来看,小米6和其它手机播放的数据请求不太一样
华为机子播放视频nginx请求日志

第一次是httpcode = 200,应该是tcp连接超时了断连了,后面的视频会以range,一段一段请求。
小米6播放视频nginx请求日志

小米6上就一条请求记录,和播放器上播放完播放器也就卡住了吻合。
求助阿里云CDN工程师,小米6视频播放抓了个包

TCP知识不太懂现查的。我的理解是服务端断开连接了,客户端没有正常处理连接断开,还在发送本地window有空余可以继续写入数据。后面也没有继续发起range请求视频数据。然后播放器就卡住了。
这个断开连接的时间感觉有点短,而且好像数据还有在读写突然就断开了。
和阿里云CDN工程师沟通了两天,最后

写客户端超时时间改成300秒后,我们的视频基本是6分钟内的,测试播放正常了。因为300秒超时远大于一块数据缓冲后的可播放时长,播放器会继续请求后面的数据。
虽然CDN调整了这个写客户端超时时间,但是觉得播放器数据请求处理上有点问题。同样30秒超时机制下,其它机型上播放是没问题的。
又了解到只是针对我们视频域名做了超时时间调整,遇到相同问题的同学临时解决方案可以去阿里云提工单。