IE11 中的 http 伪流

2023-12-19

我有一些视频,我需要能够找到其中的各个点,而无需在该点之前下载整个视频。到目前为止,我使用带有 NodeJS 的 html5 视频标签和 vid-streamer 模块,在 Firefox 和 Chrome 中运行得很好。然而,IE 11 坚持下载整个视频,我无法让它向前跳,直到它下载到我想要播放的位置为止。 IE 是否支持部分内容,是否有一些触发它的技巧?或者它是否已经使用其他标头之一(GetContentFeatures.DLNA.ORG??)请求它,而我的服务器不理解?

示例 firefox 请求标头——每当您查找时它都会发送一个新请求,关键部分是范围标头,即使是初始请求(字节=0-)也会发送该标头:

Accept  video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5
Accept-Language en-us,en;q=0.5
Connection  keep-alive
Cookie  connect.sid=...
Host    ...
Range   bytes=75661312-
Referer ...
User-Agent  Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0

和服务器响应:

Accept-Ranges   bytes
Cache-Control   public
Connection  keep-alive
Content-Disposition inline; filename=video.webm;
Content-Length  12509
Content-Range   bytes 75661312-75673820/75673821
Content-Transfer-Encoding   binary
Content-Type    video/webm
Date    Wed, 03 Sep 2014 21:42:08 GMT
Last-Modified   Thu, 28 Aug 2014 15:05:24 GMT
Pragma  public
Server  VidStreamer.js/0.1.4
Vary    Accept-Encoding
X-Powered-By    Express
status  206 Partial Content

IE11 不发送范围:

Request GET /videos/video.mp4 HTTP/1.1
Accept  */*
If-Modified-Since   Mon, 16 Nov 2009 14:05:45 GMT
User-Agent  Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Referer ...
GetContentFeatures.DLNA.ORG 1
Pragma  getIfoFileURI.dlna.org
Accept-Language en-US
Accept-Encoding gzip, deflate
Host    ...
Connection  Keep-Alive
Cookie  ...

服务器(我认为这是合理的)响应整个视频和 200 OK 而不是 206 部分内容:

Response    HTTP/1.1 200 OK
X-Powered-By    Express
Vary    Accept-Encoding
Cache-Control   public
Connection  keep-alive
Content-Type    video/mp4
Content-Disposition inline; filename=video.mp4;
Pragma  public
Last-Modified   Mon, 16 Nov 2009 14:05:45 GMT
Content-Transfer-Encoding   binary
Content-Length  36373917
Server  VidStreamer.js/0.1.4
Date    Wed, 03 Sep 2014 21:38:42 GMT

弄清楚了。 IE11 确实支持伪流,但它需要“Accept-Ranges: bytes”标头,然后才会麻烦地请求范围,因此无论服务器是否实际发送字节范围,都需要对此进行响应。我必须修改我的 vid-streamer 模块才能做到这一点。

警告:我不知道哪些浏览器支持视频标签但不支持字节范围,所以我不能肯定地说这不会破坏某处的东西,但看起来应该没问题......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IE11 中的 http 伪流 的相关文章

随机推荐

  • 获取隐式证据选择的运行时类型

    假设我有一组 String 转换器 作为 Type 类 import scala reflect runtime universe abstract class ToStringConverter T def convert value T
  • ClassNotFoundException 封送 EJB 参数

    我正在制作一个具有分布式架构的项目 但我在返回时遇到问题java util Collection到客户端应用程序 我正在托管 Bean 中调用 EJB 以引入持久实体的集合 我正在使用 Java 7 和 JBoss 7 1 1 Manage
  • 将域名指向运行XAMPP和wordpress的服务器ip

    我在 Windows 服务器上安装了 XAMPP 还安装了 Wordpress XAMPP 模块 我还购买了一个域名 将其指向我的服务器 IP 问题是 我希望当人们输入 mydomain com 时 mydomain com 显示在地址栏中
  • Spring Data Elasticsearch 父/子文档存储库/测试执行错误

    我为两个父 子相关文档创建了两个 Spring Data elasticsearch 存储库 您可以看到它们的文档类here https github com ltsallas spring data elastic test blob m
  • 是否可以在不终止会话的情况下终止oracle中的单个查询?

    我希望能够在 Oracle 10 2 0 4 中终止用户的查询 而不终止其整个会话 这将允许查询结束 但不会将该用户从会话中注销 以便他们可以继续进行其他查询 这有可能吗 或者终止会话的钝锤是结束查询执行的唯一方法吗 我发现了一个窍门 我不
  • AWS Cloudfront:凭证的范围应限定在有效区域

    通过 API 连接到 AWS CloudFront 时 无论我做什么 都会出现异常 Credential should be scoped to a valid region 相同的凭据适用于帐户有权执行的任何其他请求 例如 S3 该异常是
  • 使用 EntityFramework 4 为实体分配 id

    我想为我的实体实现 默认 ID 生成支持 保存实体时 我希望 EntityFramework 仅生成实体的 id 值 如果尚未设置 如果 ID 已经具有非空 非零值 我希望在将实体保存到数据库中时保留该实体 ID 我正在将数据从旧数据模型
  • phpcs:如何修改 PSR2 以检查大括号与方法在同一行?

    我现在花了 2 个多小时试图弄清楚如何要求 与方法声明在同一行 而不是默认要求在下一行 我怎样才能完成这件事 我已将 PSR2 标准复制到名为 PSR2 的新文件夹中 以便能够根据自己的喜好对其进行修改 所以我正在研究的基础基本上是我想要修
  • Microsoft.Build.Evaluation 的正确用法是什么?

    我想以编程方式将导入添加到 MSBuild 项目 这个APIMicrosoft Build Evaluation命名空间允许我这样做 我更愿意通过 VS 可扩展性 API 实现相同的结果 但似乎没有任何方法可以做到这一点 所以我求助于这个
  • C++ 编译器可以消除未读取的易失性局部变量吗

    说 我有这个代码 int f volatile int c c 34 return abc The 易失性 int c从来没有读过 但它被标记为volatile 编译器可以完全消除它吗 我在 Visual C 2010 中的测试显示了矛盾的
  • git“松散的对象...已损坏”-我丢失了哪些数据?

    我已经对本地分支做了一些提交 然后我尝试这样做git fetch 它失败并出现以下错误 fatal loose object 7b36029a951eacd979d24e993e020c4d018ca265 stored in git ob
  • HAL 锁定和解锁函数如何使用以及为什么?

    我试图理解另一位程序员编写的代码 它使用了I C http en wikipedia org wiki I C2 B2C通信以将数据写入 STM32 微控制器的 EEPROM 一般来说 我理解他的代码是如何工作的 但我不明白他为什么使用HA
  • UITableView 中的颜色交替 UITableViewCell?

    我试图使用此方法在表视图中为备用 tableCell 着色链接到颜色单元格 http blog apoorvmote com customize uitableviewcell background color ios 8 swift 用这
  • 我可以设置 Vert.x HTTP 请求队列的容量吗?

    我用 Java 编写了一个 Vert x HTTP 服务器 当客户端发送请求的速度快于服务器处理请求的速度时 服务器端请求队列会慢慢填满 最终 JVM 由于所有累积的请求而耗尽内存 我可以设置 Vert x 请求队列的容量吗 我想设置以下一
  • 我应该使用什么 OSX/XCode 版本控制系统来进行 iPhone 开发?

    我一直在兼职开发我的第一个 iPhone 应用程序 并希望开始使用比过去四个月更严格的版本控制形式 即将源代码文件夹复制到另一个目录并为其添加时间戳 我使用过 SourceSafe 和 Team Foundation System 但不太清
  • 导入并运行文件夹中的所有模块

    有没有办法导入并运行文件夹中的所有 py 文件 基本上我认为 pytest 是如何进行测试发现的 似乎我想从文件路径导入到列表中 然后在每个模块上调用 main args 迭代列表 它还需要兼容 python 2 和 3 Example s
  • 变量中 Linq 查询的 Lambda 表达式

    如何定义要在 linq 查询中用作变量的 lambda 表达式 例如 当按列表项的不同属性对通用列表进行排序时 IList
  • 找到Python解释器的完整路径?

    如何从当前执行的 Python 脚本中找到当前运行的 Python 解释器的完整路径 sys executable包含当前运行的Python解释器的完整路径 import sys print sys executable 现在是记录在这里
  • 将 PHP 实体(如 – 或 š)转换为其适用的字符

    有没有办法将 HTML 实体转换为其适用的字符 类似的东西html entity decode 我正在尝试从 TinyMCE 输出中制作没有 HTML 实体的普通文本 根据用户贡献的笔记 http de php net manual en
  • IE11 中的 http 伪流

    我有一些视频 我需要能够找到其中的各个点 而无需在该点之前下载整个视频 到目前为止 我使用带有 NodeJS 的 html5 视频标签和 vid streamer 模块 在 Firefox 和 Chrome 中运行得很好 然而 IE 11