6分钟诅咒有两个含义。一个含义是2009年新浪将视频切割点由21分钟调整到6分钟,从而导致AcFun超过6分钟的新投稿全部不能完整播放。另一个含义是新浪外链的视频所经常出现的逢6的整数倍分钟,就会出现的加载速度慢乃至加载时间无限长的现象。
2009年5月1日,新浪将视频切割点由21分钟调整到6分钟,从而导致AcFun超过6分钟的新投稿全部不能完整播放,这就是所谓的“6分钟诅咒”。
造成“6分钟诅咒”的原因有两个:
2009年5月底,AcFun的播放器升级,解决了第一个问题(限player和player1)。2010年2月(可能是),新浪方面技术升级,解决了第二个问题。2010年5月,AC播放器取消playera和playerf,“6分钟诅咒”问题得到基本解决。
“6分钟诅咒”又指AcFun当年使用外链投稿机制时,新浪外链的视频所经常出现的逢6的整数倍分钟,就会出现的加载速度慢乃至加载时间无限长的现象。这种“6分钟诅咒”现象在当时一直存在,甚至变得更加恶化。这种现象之所以存在,是由于当时新浪在处理比较长的视频时,通常会将其切割成6分钟左右的片段,并存放在不同的服务器中。这样视频就被截成了好几段。虽然一个服务器会存储整个视频,但是对于一个特定的IP,新浪会用一个确定的顺序让确定的多个服务器为IP提供视频。这样如果该IP访问其中一个服务器很慢,或者无法连接,那么就会出现载入速度慢的现象。
当时为了应对这种问题,解决方法是通过修改host文件,使原本指向的无法访问的服务器的地址强制地指向能正常访问的地址。具体方法如下[1]:
AAAAAAAA
,那么打开v.iask.com/v_play.php?vid=AAAAAAAA
来查看视频的播放文件表,也就是视频被分割成的文件段。通常情况下,这些视频段所在的域名具有这样的格式:xx.dhot.v.iask.com
,其中xx
一般所在省份的缩写。BB.dhot.v.iask.com
的服务器不能连接,那么进行下一步。CCC.CCC.CCC.CCC
,则在host文件的末尾加上一行:CCC.CCC.CCC.CCC BB.dhot.v.iask.com
。Windows系统下host文件的地址是%WinDir%\system32\drivers\etc\hosts
,Linux系统下是/etc/hosts
。摘自《对于6分钟诅咒的研究》[2]:
以前一直以为6分钟诅咒是因为单纯的用户带宽不稳定造成的。昨天仔细看了ACPlayer的源代码,发现这其实是从娘胎里面带出来的老毛病。
在VideoHandler类中,以前的开发人员(已经不可考了)错误的拼写了一个单词,导致一个判断永远不会发生,这导致了用户在网络情况不佳的情况下,出现所谓的整段漂移即“6分钟诅咒”。这个问题可以追溯到2010年版本的播放器,而且在新版播放器中,使用了FLEX SDK,Adobe改动了相关代码,使得这一问题更加放大。
有意思的是,当年川姬的PAD也出现了这一个手误,甚至出错前后代码注释完全一样,以及后来的MukioPlayer也存在同样的问题。原因应该是PAD使用了老版本播放器的部分代码。
以上内容参考自原AcFun Wiki条目:6分钟诅咒。