我有一个显示视频的网站。它似乎与HTML5视频标签引用的5分钟“webm”和“mp4”视频一起正常工作。但如果我使用长视频,我担心网站会不堪重负。该网站使用ASP.net,我确实找到了一篇关于使用asp.net逐步下载大文件主题的文章。但是,我不知道获取小数据包是否会干扰用户进行“搜索”(例如,将控制栏位置拖动到他感兴趣的点)。我也不知道它是否会流式传输不需要流式传输的页面 有没有办法解决一下同时通过互联网发送太多视频数据的问题,以及我的服务器或用户PC的压力?
答案 0 :(得分:0)
没有办法对HTML5视频进行自适应流式传输,但您不必担心在长视频中进行搜索。现代Web服务器允许浏览器请求文件的块,因此如果用户正在观看非常长的视频并且直接向中间跳过,则浏览器将从头开始停止下载并开始从他们跳过的位置检索视频文件。与Flash视频的早期对比,当你必须等待视频文件的整个开始按顺序下载到你想要观看的中间部分时。
但是,您可以采取一些措施来节省带宽并保持服务器的满意度。
首先,如果用户已开始观看视频并完成了该视频,则可以确保浏览器不会继续下载该大文件的其余部分。例如,如果您在单个页面上切换多个视频,或者如果您使用Ember.js或Backbone等框架浏览多个“页面”而未实际将浏览器指向新URL,则可能会发生这种情况。 / p>
如果您暂停视频并将其从DOM中删除,则浏览器可能仍在下载该视频。但你可以用这样的代码来阻止它:
video.src = "";
video.load();
另外,请考虑将视频文件存储在CDN上。这样,运行ASP脚本,与数据库通信以及处理其他相关逻辑的服务器也不负责提供这些大型文件。还有other benefits,例如具有单独且更高效的标头,并且在多个位置具有服务器,这些位置在地理位置上更接近您的用户。
答案 1 :(得分:0)
HTML5引入了MediaStream API,用于捕获和流式传输视频和音频数据,主要用于访问本地媒体设备,例如网络摄像头。但是使用与XHR连接的MediaStream对象,您应该能够提供视频流而无需进一步插件。浏览器支持目前并不全面,在Firefox和Chromium的非最新版本中,您必须通过某种设置启用它(例如Chromium中的about:flags
)。
我不知道从服务器流式传输视频的任何工作实现,我最近只玩了网络摄像头数据。我认为这是可能的(有些甚至是广泛的浏览器支持;-)。请注意,HTML5包含许多不同的API,其中大多数通常都是通过JS使用的。
另请参阅:http://www.html5rocks.com/en/tutorials/webrtc/basics/?redirect_from_locale=de#toc-mediastream
答案 2 :(得分:0)
这可以帮助您:Streaming MP4 video through .NET HTML5
寻求和缓冲由玩家自己处理,是的,当你在视频中寻找新点时,它会自动只是请求视频的那些部分。