这是关于Youtube视频缓冲的问题。
例如,此视频在播放时逐渐缓冲:
(1)http://www.youtube.com/watch?v=XGNOc7FYWKA
因此,如果您暂停视频,它会缓冲到某个点,然后停止。
但试试这个视频。它会缓冲整个长度,即使你暂停:
(2)http://www.youtube.com/watch?v=fK1eWVrO_fE
我对此进行了一些探讨。
对于视频(1),浏览器在请求FLV视频时发送2个额外参数:
GET /videoplayback?ipbits=8&algorithm=throttle-factor&cp=U0hRTVJRUV9OUENOMV9KS1VGOlczX1hyNGxsZU5T&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Csource%2Calgorithm%2Cburst%2Cfactor%2Ccp&id=5c634e73b15858a0&factor=1.25 &安培; IP = 69.0.0.0&安培;源= YouTube和安培;键= YT1&安培;突发= 40&安培; FEXP = 903104%2C910103&安培; 存活=是&安培; sver = 3及ITAG = 34&安培;签名= 855EF17A58816C002AD9B13DE556B4A61A9D5418 .2A2EF1CC340227895ED945AC8FC7D23EE7B0B569& expire = 1328263596& range = 13-1781759 & redirect_counter = 2 HTTP / 1.1
在视频播放时滑动范围。
对于视频(2),浏览器跳过这两个参数,服务器以普通的HTTP“Content-Length :(实际视频文件长度)”响应进行响应。这就是视频完全下载的原因。
现在我的问题:
任何人都知道导致这种缓冲差异的原因是什么?它是视频,服务器或其他东西的属性吗?
理想情况下,如果我不完全观看视频,我想使用类型(1)的缓冲来防止浪费带宽。
FWIW,我尝试通过手动添加范围和保持活动参数来调整第二种情况下的请求。我收到了“播放视频时出错”。