Safari 9.0无法播放存储服务器上的mp4视频

2024-03-09

以下视频链接无法用safari 9.0(最新版本)播放。但老版本的 safari、chrome 和 firefox 都可以玩。

http://assets00.grou.ps/0F2E3C/wysiwyg_files/Videos/saksuka/20150928104628-lhmkkfbhnkiisbhht.mp4 http://assets00.grou.ps/0F2E3C/wysiwyg_files/Videos/saksuka/20150928104628-lhmkkfbhnkiisbhht.mp4

当我将视频从服务器下载到我的电脑时,我可以使用 safari 9.0 进行播放。

这就是为什么我认为这个问题不是由视频编码引起的。

我已经完成了这些设置;

mime.types
video/mp4   mp4 m4v
video/ogg   ogv
video/webm  webm

httpd.conf
AddType video/mp4 mp4 m4v
AddType video/ogg ogv
AddType video/webm webm

.htaccess
AddType video/mp4 mp4 m4v
AddType video/ogg ogv
AddType video/webm webm

更新 2 - 2020 年 6 月

此问题最常见的根本原因似乎是服务器未配置为正确处理范围请求。

Safari 在发送带有字节范围的请求时预计会看到“206”响应。如果服务器响应“200”请求,则 Safari 似乎无法处理此问题。其他一些浏览器似乎可以接受这一点 - 例如 Chrome。

下面的检查网络选项卡屏幕截图显示了成功的视频播放,包含范围请求和 206“部分内容”响应:

虽然下面的示例显示了一个无法在 Safari 中播放但在 Chrome 中播放的视频 - 可以看出服务器只是响应 200 请求:

您可以使用 CURL 命令测试服务器是否正确接受范围请求 - 请参阅此处来自苹果的信息:

如果您不确定您的媒体服务器是否支持字节范围请求,您可以在 OS X 中打开终端应用程序并使用curl 命令行工具从服务器上的文件下载一小段:

卷曲——范围0-99http://example.com/test.mov http://example.com/test.mov-o /dev/空

如果该工具报告已下载 100 字节,则媒体服务器正确处理了字节范围请求。如果它下载整个文件,您可能需要更新媒体服务器。有关curl 的更多信息,请参阅OS X 手册页。

(from: https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/CreatingVideoforSafarioniPhone/CreatingVideoforSafarioniPhone.html#//apple_ref/doc/uid/TP40006514-SW6 https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/CreatingVideoforSafarioniPhone/CreatingVideoforSafarioniPhone.html#//apple_ref/doc/uid/TP40006514-SW6)

对于正确播放的第一个视频,使用上述参考中的 CURL 命令,我们可以看到响应是仅按预期返回请求的范围:

在上面的示例中使用相同的 CURL 命令,该命令不能在 Safari 中播放(但可以在 Chrome 中播放),表明服务器正在响应完整文件,而不仅仅是请求的范围:

此 CURL 测试可能是检查服务器是否正确尝试处理请求的最快方法。

原答案

这似乎是 Safari 上某些 mp4 文件反复出现的问题。

我在本地主机 Node.js 静态服务器上测试了您的视频,它在 Safari 中播放得很好,这意味着视频本身应该没问题。

如果您查看 Safari 中的 Web 检查器,您会发现 Web 请求不包含某些标头。这会导致一些服务器出现问题,并且它们不会按照 Safari 预期的方式响应,或者根本不响应。

您可以看到正在讨论的类似问题(我认为第二个问题不是您的情况,但说明发送到服务器的请求中包含的信息可能会导致服务器“决定”不按您想要的方式响应):

  • 无法加载资源,插件在 iOS 上处理加载 https://stackoverflow.com/q/18103103/334402
  • 在 UIWebView 内的网页中播放视频时出现“插件处理加载”对话框 https://stackoverflow.com/questions/9422507/plugin-handled-load-dialog-appears-when-playing-a-video-within-a-web-page-with

Update 1:

使用wireshark捕获来自Chrome的请求,可以看到服务器有响应并播放视频,而来自Safari(在同一台机器上)的请求则导致服务器没有响应。

这些请求通常相似,并且都包含引用标头。 Safari 浏览器最初只要求从服务器返回前 2 个字节 - 它通过使用“range”标头来实现这一点,该标头用于指定文件返回的字节范围:

  • 范围:字节=0-1\r\n

另一方面,Chrome 在其范围请求中请求整个视频:

  • 范围:字节=0-\r\n

然而,在 Chrome 上使用 HTTP 工具(例如 Postman)并将范围更改为 0-1 似乎并没有阻止服务器在 Chrome 情况下响应。事实上,使用该工具尽可能设置与 Safari 设置相同的标题似乎仍然可以正常返回视频。

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

Safari 9.0无法播放存储服务器上的mp4视频 的相关文章

  • 如何解决输入字段上的错误行高?

    如何为具有固定高度的输入字段提供其所包含文本的跨浏览器垂直对齐方式 截至目前看来line height是我最好的选择 但是 在 Chrome 或 Safari 等 webkit 浏览器上 复制 粘贴时光标会跳至顶部对齐 我注意到 WordP
  • border-radius 在 safari 下失败(丑陋的剪辑)

    有人知道 Safari 中以下 错误 的解决方法吗 当我使用border radius在 CSS3 中创建圆角边框 它在 Safari FF 等上工作得很好 但是 当边框颜色是背景颜色时 您可以看到容器背景与边框重叠 你可以在这里尝试一下
  • Google 将用于 Google 可视化的文件保存在哪里?我可以将其设置为我网站的本地文件吗?另外,有没有让仪表在 IE 中工作的代码示例?

    EDIT请在此处查看生成的 html 和 Javascript http jsfiddle net GregMcNulty K6Vrb 1 http jsfiddle net GregMcNulty K6Vrb 1 根据这个评论4 http
  • 网页优化:为什么组合文件速度更快?

    我读过 将所有 css 文件合并为一个大文件 或将所有脚本文件合并为一个脚本文件 可以减少 HTTP 请求的数量 从而加快下载速度 但我不明白这一点 我认为如果你有多个文件 最多有一个限制 我相信在现代浏览器上是 10 个 浏览器会并行下载
  • HTML5 最佳实践;节/标题/旁白/文章元素[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 网络上 以及 stackoverflow 上 有足够的有关 HTML5 的信息 但现在我对 最佳实践 感到好奇 像节 标题 文章这样的标签是新的
  • 让 div 填充空间

    我想在内容 div 的一侧放置两列 我遇到的问题是我希望柱子由 3 个部分组成 顶部和底部应该有固定的高度 但中间的高度会根据内容的高度进行调整 查看一列示例
  • 使用 JavaScript 更改 CSS 类时转义正斜杠 (“/”)

    我需要使用 JavaScript 根据某些条件添加一些 CSS 类 但如果我的字符串包含正斜杠 这就是我的用例 div class disabled div 我什至尝试
  • 如何使用 Python 避免在 JSON 中的 HTML 标签中关闭“/”?

    注意 这个问题非常接近在脚本标签中嵌入 JSON 对象 https stackoverflow com questions 4176511 embedding json objects in script tags 但是对该问题的回答提供了
  • HTML Canvas - 动态更改文本

    当我在输入文本字段中输入内容时 我试图更改 html 画布上的文本 但是 我可以添加文本 如果我删除并再次输入 新文本将添加到旧文本的顶部 JSFIDDLE https jsfiddle net bm7jv7bk 1 document ge
  • 将事件绑定到动态添加的元素

    我正在尝试使用 jquery 将函数绑定到新添加的元素 我已经尝试了很多在线示例 但不知怎的 没有任何效果对我有用 我创建了一个带有 id 和一个按钮的表单 在提交 ajax 时从另一个页面加载元素并在当前网站上插入 html 一切似乎都工
  • 土耳其语字符显示不正确[重复]

    这个问题在这里已经有答案了 MySql 数据库使用 utf 8 编码 数据存储正确 我使用 set name utf8 查询来确保调用的数据是 utf 8 编码 只要标头字符集是 utf 8 数据库中的所有变量都可以正常工作 但静态html
  • 在我的输入中显示多个信息

    我有一个输入 div class search field search field date search field calendar ui datepicker calendar columns small 3 div
  • 移动时如何将图像保留在另一图像后面?

    Edit Here https jsfiddle net 33cL1qos 6 我可以在选择时将其保留在后面 但由于某种原因它现在不可拖动 我可能做错了什么 我能够从计算机上传图像 然后移动图像 我的问题 当我选择图像时 它会向前弹出 直到
  • JavaScript 相当于 jQuery 的 keyup() 和 keydown()

    我在 stackoverflow 上看到过这个链接 document ready 相当于没有 jQuery https stackoverflow com questions 799981 document ready equivalent
  • Node.js - 将数据缓冲到 Ffmpeg

    我使用 Node js 和 Ffmpeg 来创建动画 因为我试图避免第三方 avi mp4 解析器 所以我决定将动画输出为原始 rgb24 数据文件 然后使用一些程序将其转换为 mp4 文件 我发现 Ffmpeg 是免费且开源的 它完全可以
  • RowSpan 在 iTextSharp 中不起作用?

    我正在尝试将 Html 转换为 PDF 我正在使用 iTextSharp 我发现iTextSharp对CSS的支持不太好 事实上我认为 HtmlWorker 线程并不支持这一切 让我的问题更加复杂的是 iTextSharp 似乎也不支持 R
  • 对 FileList 对象进行排序

    我正在尝试使用新的文件 API 对输入文件进行排序 它返回的列表似乎是不可变的 var x var files e target files FileList object Loop through the FileList and ren
  • 单击或悬停在菜单区域之外时关闭反应按钮下拉菜单

    在我的反应应用程序中 其中一个组件正在创建一个按钮下拉菜单 如下所示 div class dropdown div
  • 修复了 div 背景重叠浏览器滚动条的问题

    我以前从未见过的非常奇怪的行为 我有一个固定位置的 div 它有一个透明的 png 背景图像 z index 设置为 1 以便内容可以使用滚动条在固定图像上滚动 我将其放置在底部和右侧 0px 处 但图像与滚动条重叠 无论如何 在 FF 和
  • 具有多种类型属性的 HTML5 输入

    我们的表单软件输出所有带有 type text 的元素 但我宁愿利用 HTML5 中的新类型 例如 电子邮件 数字 等 我可以在最后添加这些 但最终会得到多个类型属性 例如

随机推荐

  • IntelliJ IDEA 中的“变量从未分配”警告只能“部分”抑制

    Java EE IntelliJ Idea 2016 3 我编写了一个类并声明了一个私有字段 Inject注解 我已经通过添加成功地从 检查结果 窗口中删除了 未使用的声明 通知javax inject Inject to 设置 gt 编辑
  • grunt-contrib-connect 中间件 CORS 解决方案,具有 keepalive true

    对于我的本地开发系统 我尝试使用 grunt contrib connect 为前端资产提供服务 我需要一个在 Firefox 中使用字体的跨域解决方案 服务器运行得很好 但我似乎无法设置标头 我正在使用 grunt contrib con
  • 单个元素中的多个文本节点?

    有人可以帮我看一下下面的屏幕截图并解释以下内容 到底是怎么回事 我如何以编程方式检测它 我如何以编程方式修复 摆脱它 我相信发生的事情是我在一个单一的文本节点中有多个文本节点preelement 我感觉很多年前我在MDN上读到这样的事情是可
  • android:dither="true" 不抖动,出了什么问题?

    我一直在尝试让 android 抖动活动的背景图像 到目前为止没有成功 我不知道出了什么问题 这就是我所做的 我的活动布局的根元素是 LinearLayout
  • 为什么自定义类型接受 Python 中的临时属性(而内置类型不接受)?

    我想知道为什么人们能够为自定义类型的实例创建一个新属性 新 意味着 先前未在类主体中定义 但无法为内置类型执行相同的操作在类型上 比如object本身 代码示例 gt gt gt class SomeClass object pass gt
  • Python导入模块错误

    我在项目中导入模块时遇到问题 我正在创建测试 但无法从测试文件导入我的 main 来测试应用程序的一个端点teste ex py 这是我的项目结构 backend api api init py main py testes init py
  • 如何在django模板中使用生成器方法?

    我想在 django 模板中使用 python 生成器 可以吗 例如 我有模型 它包含生成器对象 如下所示 class TestMe models Model property def gen self yield 1 yield 2 上下
  • Pycharm不显示数据库表

    更新PyCharm 版本2017 1 后 PyCharm不显示sqlite3数据库表不再存在 我已经测试了连接并且可以正常工作 In sqlite客户端我可以列出所有表并进行查询 其他人也遇到这个问题吗 在这种情况下无论如何都能解决吗 我使
  • 为 Clojure 协议提供多种实现

    我有一个公开常见数据相关函数的命名空间 get images insert user 然后 我有两个具有相同功能并以不同方式实现它们的数据库后端 他们按原样实现接口 每个后端都包含在一个命名空间中 我似乎无法找到如何完成此任务的良好解决方案
  • Java 项目中服务器和客户端包的共享资源

    我有一个 Java 项目 其中包含服务器包和客户端包 另外我还有一个图书馆包 我使用 eclipse 并将所有内容放入一个 Java 项目中 每个部分服务器 客户端和库都位于单独的包中 问题是当我导出时 所有内容都会添加到 Jar 文件中
  • 如何在 Azure Key Vault 中序列化和反序列化 PFX 证书?

    我有一堆字符串和 pfx 证书 我想将它们存储在 Azure Key Vault 中 只有允许的用户 应用程序才能获取它们 将字符串存储为 Secret 并不难 但是如何以可以检索它并反序列化为证书的方式序列化证书 X509证书2 http
  • Pandas:连接数据帧并保留重复索引

    我有两个数据框 我想将它们按列 axis 1 与内部联接连接起来 其中一个数据帧有一些重复的索引 但行不重复 我不想丢失其中的数据 df1 pd DataFrame a 1 b 2 a 1 b 3 a 2 b 4 columns a b s
  • Laravel - 计算目录的总大小?

    我试图获取 Laravel 中 directory 的总大小 到目前为止我只能使用 size 函数获取单个文件的大小 好像没有这方面的例子或者文档 任何对此的意见将不胜感激 谢谢 我认为你不能 Laravel 5 用途飞行系统 http f
  • 如何将负数转换为正数?

    如何在Python中将负数转换为正数 并保持积极的态度 gt gt gt n 42 gt gt gt n if you know n is negative 42 gt gt gt abs n for any n 42 不要忘记检查docs
  • 如何将枚举类型变量转换为字符串?

    如何使 printf 显示枚举类型变量的值 例如 typedef enum Linux Apple Windows OS type OS type myOS Linux 我需要的是类似的东西 printenum OS type My OS
  • CSS 弹跳线加载动画

    我正在尝试创建一个简单的加载动画 来回绘制一条线 但目前仅朝一个方向移动 一旦到达动画的中间 它就不会以相反的方向动画 这是我的CSS keyframes loader animation 0 width 0 49 width 100 50
  • 在TabLayout设计支持库中无法看到Tab Indicator

    我正在使用材料设计库并使用创建布局CoordinatorLayout 应用栏布局 RecyclerView and TabLayout 我的问题是我无法看到选项卡指示器Tablayout 下面是我正在使用的 xml 文件AppCompact
  • 错误的snakemake glob_wilcards 和 wildcard_constraints

    在我的 Snakemake 管道中 我试图检索正确的通配符 我研究过 wildcard constraints 和这个帖子 https stackoverflow com questions 66882849 snakemake how t
  • 使用 jersey 和 grizzly 启用 JSON

    我正在玩 Grizzly 托管的 Jersey 并且希望能够使用和生成 JSON 但是我在 get 请求中从服务器收到 500 并且 POST 中不支持媒体类型 我的服务器代码是 org glassfish jersey server Re
  • Safari 9.0无法播放存储服务器上的mp4视频

    以下视频链接无法用safari 9 0 最新版本 播放 但老版本的 safari chrome 和 firefox 都可以玩 http assets00 grou ps 0F2E3C wysiwyg files Videos saksuka