是否可以在Chrome(和Opera)中完全缓冲HTML5视频?
我在亚马逊S3上以.mp4和.webm的形式主持电影.在HTML中我使用标准<video>标签.服务器以状态响应206 Partial Content.这很棒,因为它允许浏览器下载视频的任何部分,但我需要能够立即搜索文件的任何部分.
我试过了:
.PROGRESS事件.当Chrome停止缓冲第一部分时,连接将被终止.下一部分是以新连接方式下载的,因此JavaScript无法继续检查下载的总数据.即使可能,旧数据也不会存储在缓存中.此方法适用于Firefox和Safari.哎呀,即使在IE10中!XHRS.我可以完全下载电影,但是当视频开始播放时,Chrome会尝试再次从服务器下载电影.我甚至试图将这部电影传递给base64中的HTML,但那是很多数据FileAPI.Chrome无法创建足够大的BLOB并崩溃.欢迎任何帮助!
PS.我知道od和类似的问题,但我希望自从他们被问到后会有所改变.
在使用 HTML5 视频标签创建视频播放器时,我注意到 Google Chrome 中存在不良行为。当我暂停视频时缓冲开始,当我播放缓冲时停止。结果我得到了不良的用户体验。
我使用的大型视频文件大小约为 2-4 GB。通常,当我寻找某个位置并监视缓冲范围时,我会注意到镀铬缓冲的缓冲范围错误。如果我选择暂停播放器,chrome 会继续缓冲错误的缓冲范围,并且从不缓冲当前时间所在的范围并且一个播放器正在监视。
另一个问题是,由于我选择在后台播放视频并隐藏查看器以防止其他 DOM 元素下的注意,因此我可以强制 chrome 在播放时进行缓冲。当播放/缓冲足够时,我会向后查找视频几秒钟。一旦我这样做,铬就会停止缓冲,并且我的缓冲范围会快速播放,并且进程会再次开始,从而留下糟糕的用户体验。
这是一个已知问题,还是我做错了什么?是否有任何解决方法可以让 Google Chrome 缓冲继续而不是停止?
我想隐藏视频源的属性。因此,我想将视频源标签的 src 属性转换为 objectURL。遗憾的是它不起作用。
我已经试过了
function display(vid){
var video = document.getElementById("video");
video.src = window.URL.createObjectURL(vid);
}
display('video.mp4');
Run Code Online (Sandbox Code Playgroud)
(此处提供:显示来自 Blob Javascript 的视频)
那行不通,Stack 已经有 5 年历史了。
HTML 看起来像这样
<video id="video">
<source type="video/mp4" src="video.mp4">
</video>
Run Code Online (Sandbox Code Playgroud)