7

我有一个 html5 视频播放器(视频标签)。当页面加载时,它将向视频文件发送请求。

是否可以修改 http 请求标头 Range 字段?(见截图,两条红线之间)

Range: bytes=0- 将下载整个视频,例如我想将其限制为“Range: bytes=0-1000000”

截屏

视频文件托管在 CDN 上,所以我不能在服务器端做任何事情。

4

1 回答 1

1

您可以使用 XMLHttpRequest 发送范围请求!如果服务器“接受范围:字节”,则在 window.URL.createObjectURL 上获取 blob 文件。video 标签为您提供了许多事件和属性,因此您始终知道缓冲的内容以及您所在的位置。即使用户点击了进度条、暂停或停止按钮。因为与字节范围相比,视频属性是基于时间的,所以您需要来自视频文件的一些额外信息,称为视频元数据。我玩过Yamdi以获得播放时间与文件搜索位置比率的 xml 文件,并在 .flv 的开头设置元数据。

在服务器端读取范围标头 (bytes=number1-number2...),打开视频文件,寻找 number1,打印 (number2-number1+1) 字节并发送一些特定标头:Content-Type、Content-Disposition、 HTTP/1.1 206 部分内容,内容范围。

您应该遵循搜索位置。长度由你决定。

于 2013-10-31T10:50:14.057 回答