Javascript视频blob和渐进式下载

Javascript视频blob和渐进式下载,javascript,video,html5-video,blob,Javascript,Video,Html5 Video,Blob,尝试将我的视频流web应用程序从使用带有URL的经典切换到blobs,以避免在页面上的简单Ctrl+s上完全下载 为了从远程视频文件创建blob,似乎必须使用XMLHttpRequest 问题是XMLHttpRequest下载整个文件,它不可用于渐进式下载 下面的代码是从远程文件加载blob的最简单示例 var r = new XMLHttpRequest(); r.onload = function() { // Triggered only when all video is downloa

尝试将我的视频流web应用程序从使用带有URL的经典
切换到blobs,以避免在页面上的简单Ctrl+s上完全下载

为了从远程视频文件创建blob,似乎必须使用XMLHttpRequest

问题是XMLHttpRequest下载整个文件,它不可用于渐进式下载

下面的代码是从远程文件加载blob的最简单示例

var r = new XMLHttpRequest();
r.onload = function() { // Triggered only when all video is downloaded
    video.prop("src", URL.createObjectURL(r.response));
};

r.open("GET", "http://myserver/video.mp4");
r.responseType = "blob";
r.send();
由于应用程序是用于视频流的,所以此方法不可用(除非我们希望用户等待X分钟下载整个文件,而这根本不是流)

有没有办法将blob与渐进式下载结合起来?

当只使用src=“foo.mp4”方法时,渐进式下载应该是浏览器中的默认行为。但是,播放体验取决于文件的实际格式

“普通”MP4文件不是为流媒体而设计的。它们的结构使得开始播放所需的数据可以在文件的开始和结束之间分割。因此,玩家可能需要缓冲整个事件,以获取开始播放所需的数据

您可以尝试使用诸如指定“-frag”选项的工具将普通MP4转换为片段化MP4。这将重新排列文件中的数据,以便所有初始化数据都位于前端,而文件的其余部分将被分成块


更复杂的选择是使用类似MPEG-DASH的内容。通过利用MP4Box和,您可以设置一个成熟的自适应流媒体播放器。

可以回答格式问题,但关于blob?