文件服务器存储视频文件,前端加载对应的视频文件URL,如何实现分片分段加载,而不是一直在线拉流呢?
如题所示,目前上传文件是一次性上传完整文件,暂时没有任何优化操作, 前端拿到文件服务器上的视频资源的url时,播放视频的时候,也是一直在线加载整个视频,举个夸张但的例子, 如果条件允许,点击视频播放,1秒钟就能把整个1G的视频加载完,这个情况自然是很不合理的,从哪些手段上,能实现加载视频文件的时候,能分段加载,比如将整个视频分成10份资源,在加载第一秒的时候,其实只会加载1/10,而不是整个文件
回答:
浏览器好像也没你说的这么傻。。。
请求头中有个 Range: bytes=3932160-4194303
可以只请求区域内的资源,响应头里面会有 Content-Range: bytes 5046272-11760799/11760800
之类的标识
你看视频的时候没有发现这种样式吗?
给你个资源 http://txcdn-svcos.51vv.com/smartvideo/js2/0762b15de45d8c422fa83d9d5d4ff2c3.mp4
你直接访问,然后跳进度,可以看到他确实会分段。
当然,上述只是浏览器自己的实现,你可以通过 ajax 来完成这样的逻辑。
回答:
上面linong答主说的浏览器支持,是指Http协议自身本来就支持文件分段下载。同理也支持浏览视频的分片播放。 一般前端不用弄,只要后端去适配Http分段协议就可以了。(就是Http的一些分段请求头:Range、Content-Range等。) ,后端去定义一次传输的文件大小,前端浏览器自己去根据返回的数据,去请求下一片文件。
以上是 文件服务器存储视频文件,前端加载对应的视频文件URL,如何实现分片分段加载,而不是一直在线拉流呢? 的全部内容, 来源链接: utcz.com/p/945019.html