同时预加载许多HTML5视频 - “等待可用套接字”

时间:2017-07-27 23:40:46

标签: html5 sockets google-chrome video html5-video

我有一个用户可以播放的视频网格。嵌入了以下内容的YouTube视频列表中的内容:

<video data-bind="attr: {src: mediaPath}" preload="metadata"></video>

在某个时刻,我开始在Chrome中看到以下内容:

  

等待可用的套接字......

我认为这是由于此处列出的问题所致:Chrome hangs after certain amount of data transfered - waiting for available socket

但是我不确定解决方案是什么,因为用户在浏览媒体时可能会看到10或100个“预览”。

我想到的一件事是最初加载为preload='none',然后将视频一次更改为preload='metadata',直到所有元数据都已加载,但我想问一下社区在开始这样一个臭味的努力之前。

至于用户体验 - 视频的缩略图非常小,其中大约30个在任何特定时间都是“首屏”。

1 个答案:

答案 0 :(得分:0)

正如Offbeatmammal所说,此类视频网格或列表的常用方法是加载海报图片而不是视频,然后在用户点击或悬停时加载视频。

如果您的服务器解决方案支持,您还可以在悬停时单独预览视频并点击完整视频。

有些网页会有一个“主要”视频,并附有许多缩略图,主视频通常会预先加载,而其他网页只会有缩略图。

你可以根据自己的意愿或需要使解决方案变得复杂(或臭,优秀,BTW!) - 例如,您可能需要一些算法来监控和预测特定的用户行为,以及他们是否始终关注第一个在页面上的2和3,预加载这些以加快他们的体验。

另外,在具有单个主视频和许多缩略图的页面上,视频预加载通常相当高效且不会产生太多开销,特别是对于流式视频,只要足够启动它就可以下载,但缩略图可以是一个相当大的开销,或至少是一个很好的优化目标。您经常会看到网站限制缩略图的数量以减少数据传输量并具有某种“点击更多”或滚动机制以允许用户请求更多。