2

我有一个显示视频的网站。它似乎适用于 HTML5 视频标签引用的 5 分钟“webm”和“mp4”视频。但如果我使用长视频,我担心网站会不堪重负。该网站使用 ASP.net,我确实找到了一篇关于使用 asp.net 渐进式下载大文件的文章。但是,我不知道获取小文件包是否会干扰用户进行“搜索”(例如,将控制栏位置拖动到他感兴趣的点)。我也不知道它是否会流式传输不需要流式传输的页面。
有什么办法可以解决一次通过 Internet 发送的视频数据过多,使我的服务器或用户的 PC 不堪重负的问题?

4

3 回答 3

1

这应该可以帮助您:通过 .NET HTML5 流式传输 MP4 视频

搜索和缓冲由播放器自己处理,是的,当您搜索视频中的新点时,它会自动请求视频的这些部分。

于 2014-06-12T15:00:48.723 回答
0

没有办法对 HTML5 视频进行自适应流式传输,但您不必担心在长视频中寻找。现代网络服务器允许浏览器请求文件块,因此如果用户正在观看一个很长的视频并直接跳到中间,浏览器将从头开始停止下载并开始从他们跳过的位置检索视频文件。与早期的 Flash 视频形成对比,当您必须等待视频文件的整个开头按顺序下载才能到达要观看的中间部分时。

但是,您可以采取一些措施来节省带宽并让您的服务器满意。

首先,如果用户已经开始观看视频并且已经看完了,您可以确保浏览器不会继续下载该大文件的其余部分。例如,如果您在单个页面上切换多个视频,或者如果您使用 Ember.js 或 Backbone 之类的框架在多个“页面”中导航而实际上没有将浏览器指向新 URL,则可能会发生这种情况。

如果您暂停视频并将其从 DOM 中删除,浏览器可能仍在下载它。但是你可以用这样的代码来阻止它:

video.src = "";
video.load();

另外,考虑将您的视频文件存储在CDN上。这样,运行 ASP 脚本、与数据库通信和处理其他相关逻辑的服务器也不负责提供这些大文件。还有其他好处,例如拥有单独且更高效的标头以及在地理上更接近用户的多个位置拥有服务器。

于 2013-01-26T22:49:43.250 回答
0

HTML5 引入了MediaStream API,它旨在捕获和流式传输视频和音频数据,主要用于访问本地媒体设备,例如网络摄像头。但是使用与 XHR 连接的 MediaStream 对象,您应该能够在没有其他插件的情况下提供视频流。浏览器支持现在还没有普及,并且在非最新版本的 Firefox 和 Chromium 中,您必须通过某种设置(例如about:flags在 Chromium 中)启用它。

我不知道从服务器流式传输视频的任何工作实现,我最近只是在玩网络摄像头数据。我认为这是可能的(有时甚至有广泛的浏览器支持;-)。请注意,HTML5 由许多不同的 API 组成,其中大部分您通常会通过 JS 使用。

另请参阅:http ://www.html5rocks.com/en/tutorials/webrtc/basics/?redirect_from_locale=de#toc-mediastream

于 2013-01-26T23:08:55.597 回答