Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 查找HTML5视频是否需要加载整个文件?_Javascript_Html_Video - Fatal编程技术网

Javascript 查找HTML5视频是否需要加载整个文件?

Javascript 查找HTML5视频是否需要加载整个文件?,javascript,html,video,Javascript,Html,Video,我想每30秒在30分钟左右的视频中随机寻找不同的点。文件大小将为100mb。当我搜索时,播放器是从该点开始加载,还是必须加载整个文件,然后在其中找到时间?这取决于浏览器。如果我们谈论的是现代浏览器,那么当您搜索时,他们通常会向服务器发送一个新的http请求,其中包含范围:头,指示他们要加载的文件的“块”。这仅适用于使用http 1.1或更高版本的浏览器。我认为如果浏览器支持html5视频,那么你可以相当肯定他们将使用http 1.1。但是请记住,客户端通常总是在加载一些东西。因此,如果你在视频中

我想每30秒在30分钟左右的视频中随机寻找不同的点。文件大小将为100mb。当我搜索时,播放器是从该点开始加载,还是必须加载整个文件,然后在其中找到时间?

这取决于浏览器。如果我们谈论的是现代浏览器,那么当您搜索时,他们通常会向服务器发送一个新的http请求,其中包含
范围:
头,指示他们要加载的文件的“块”。这仅适用于使用http 1.1或更高版本的浏览器。我认为如果浏览器支持html5视频,那么你可以相当肯定他们将使用http 1.1。但是请记住,客户端通常总是在加载一些东西。因此,如果你在视频中搜索5秒,它基本上会再次开始加载整个内容,直到另一次搜索发生。

否,它从给定的时间戳开始加载,只要浏览器知道视频的持续时间。

基于这一点,如果视频元数据已加载,因此,浏览器已经知道视频大小,因此它可以要求服务器从不同的位置开始加载,并且服务器知道如何满足部分数据传输请求。当然,找到答案的最快方法就是在测试URL上尝试一下,看看你的设置会发生什么。。。一切都支持HTTP/1.1。问题在于客户机是否能够确定请求的范围(并非总是可能的,尤其是对于有问题的格式)。客户“落针”的情况并不少见。它知道基于初始响应头的总体文件大小,并且应该知道基于某些容器格式头的视频的时间长度。它通常会猜测用户在哪里寻找,并尝试从那里解码。问题是,对于有损格式,比特率并不总是恒定的,因此计时不那么准确。这里的另一个问题是服务器是否支持范围请求。您可以很好地支持HTTP/1.1,而不处理范围请求。事实上,这是很常见的,尤其是当人们编写自己的代码来为媒体服务时,却没有意识到他们需要处理什么。是的,这是一个很好的观点。服务器需要能够处理两侧的范围标头以达到预期效果。我假设上下文是一个典型的Web服务器,比如LaTTPD或NGiNX,但是如果是自定义服务器代码,那么这绝对是一个考虑因素。