【问题标题】:Is it possible to stream a html5 video?是否可以流式传输 html5 视频?
【发布时间】:2013-01-26 21:25:47
【问题描述】:
我有一个显示视频的网站。它似乎适用于 HTML5 视频标签引用的 5 分钟“webm”和“mp4”视频。但如果我使用长视频,我担心网站会不堪重负。该网站使用 ASP.net,我确实找到了一篇关于使用 asp.net 渐进式下载大文件的文章。但是,我不知道获取小文件包是否会干扰用户进行“搜索”(例如,将控制栏位置拖动到他感兴趣的点)。我也不知道它是否会流式传输不需要流式传输的页面。
有什么办法可以解决一次通过 Internet 发送的视频数据过多,导致我的服务器或用户的 PC 不堪重负的问题?
【问题讨论】:
标签:
asp.net
html
video-streaming
html5-video
【解决方案2】:
没有办法对 HTML5 视频进行自适应流式传输,但您不必担心在长视频中寻找。现代网络服务器允许浏览器请求文件的块,因此如果用户正在观看一个很长的视频并直接跳到中间,浏览器将从头开始停止下载并从他们跳过的位置开始检索视频文件。这与早期的 Flash 视频形成对比,当时您必须等待视频文件的整个开头按顺序下载才能到达要观看的中间部分。
不过,您可以采取一些措施来节省带宽并让您的服务器满意。
首先,如果用户已开始观看视频并已观看完毕,您可以确保浏览器不会继续下载该大文件的其余部分。例如,如果您在单个页面上切换多个视频,或者如果您使用 Ember.js 或 Backbone 之类的框架在多个“页面”中导航而实际上没有将浏览器指向新 URL,则可能会发生这种情况。
如果您暂停视频并将其从 DOM 中删除,则浏览器可能仍在下载它。但是你可以用这样的代码来阻止它:
video.src = "";
video.load();
另外,考虑将您的视频文件存储在CDN 上。这样,运行 ASP 脚本、与数据库通信和处理其他相关逻辑的服务器也不负责提供这些大文件。还有other benefits,例如拥有独立且更高效的标头,以及在地理上更靠近用户的多个位置拥有服务器。