apache 加载资源失败,插件在iOS上处理了加载

5anewei6  于 2023-04-07  发布在  Apache
关注(0)|答案(8)|浏览(134)

每次我尝试在服务器上查看视频文件时,我都会在Safari,Chrome中的iOS上遇到此错误。
我使用的是blob服务器,然后是Apache服务器,所以我不确定问题是什么。然而,当我只使用Apache时,我确实得到了这个错误,但我也有视频渲染。
然而,当我使用我的服务器渲染这个时,这不起作用。有人知道为什么吗?视频在其他设备上工作正常,如果只通过Apache访问,在浏览器中也工作正常。

olqngx59

olqngx591#

这个问题的解决方案只是一个变通方案。原因是blob服务器不是流媒体服务器。iOS设备希望视频以小块的方式到达。例如,流媒体服务器能够做到这一点。然而,blob服务器只是将视频作为blob处理,这不是iOS设备所期望的。一些浏览器足够智能,可以处理这个问题,但其他浏览器则不行。
我解决这个问题的方法是将视频文件添加到项目内的文件夹中的blob服务器之外,然后通过Apache服务器渲染,而不是通过我们使用的实际blob服务器提供。我希望这能有所帮助。

ilmyapht

ilmyapht2#

我也得到这个错误的一些mp4视频.原来这不是一个服务器的问题,我这是一个视频编码问题.

问题

需要在视频文件的前面放置一个“moov atom”。它可以作为视频的目录。这个“moov atom”必须首先被读取以进行html流传输,否则它将无法在某些设备上播放。

修复

为了解决这个问题,我使用了handbrake对我的视频进行转码。打开“网络优化”,同时打开零延迟和“快速解码”可能会有帮助(在视频标签中找到)。

zi8p0yeb

zi8p0yeb3#

我们在这里得到了一个类似的错误。我认为这可能是流问题,因为我们的视频托管在Azure上的blob存储中。在设置流媒体服务后,视频仍然不起作用。事实证明,我们的错误原因是Safari使用Service Worker。下面是我们发现的一些进一步解释:
Safari首先发送一个视频标签的字节范围请求,该请求需要206响应。但是,如果您使用Service Worker,则响应返回200,并且Safari似乎不知道如何处理此问题。我们的解决方案是排除使用Service Worker for Safari。
我们通过在Macbook上使用Safari调试器的网络选项卡来解决我们在iPad上看到的问题,从而发现了这一点。附件是一个用于比较/参考的屏幕截图。左侧选项卡显示了调用在默认情况下应该是什么样子。右侧选项卡显示了如果使用Service Worker会看到什么。

9bfwbjaz

9bfwbjaz4#

将以下代码行添加到.htaccess(位于WordPress安装的根目录):

SetEnvIfNoCase Request_URI .(?:mp4)$ no-gzip dont-vary

下面的屏幕截图是新的完整的.htaccess

参考:https://clickshepherd.com/blog/solved-elegant-themes-divi-and-cloudflare-mp4-media-error-formats-not-supported-or-sources-not-found/

ac1kyiln

ac1kyiln5#

在我们的例子中,我们为blob资产创建了一个URL模式,然后在URL模式定义页面中设置header,该页面发送回一个mime类型'video/mp4'。这应该指示浏览器将二进制流视为分块,这反过来意味着我们不需要在开始播放之前下载整个内容。

vu8f3i0k

vu8f3i0k6#

谷歌云平台解决方案

这个问题让我很头疼,所以我只想在这里添加我的具体解决方案,如果其他人在部署到Google Cloud Platform时遇到这个问题。
在Safari中加载MP4视频时,我遇到了同样的错误:
加载资源失败,插件已处理加载
所以视频无法播放。
尽管如此,我还是想尝试将所有内容都保存在Google Cloud中,所以我为该网站创建了一个存储桶,并在那里添加了视频。
当然,尝试从主站点的存储URL检索视频会导致CORS错误。幸运的是,您可以在存储桶上轻松配置CORS:
Configuring cross-origin resource sharing (CORS)
一旦配置被部署,我就能够在Safari中检索和加载网站上的视频,而不会出现“插件处理加载”错误。

eimct9ow

eimct9ow7#

我看到错误“加载资源失败”,虽然这是原因,为什么我的视频不播放.
结果,我的视频缺少hvc1标签。当我添加它时-它们播放得很好。
在我的案例中,问题是H256 HEVC视频,但在您的案例中,一些其他编码/标记问题可能是原因。
在我的情况下,问题是固定的ffmpeg:

ffmpeg -i input.mp4 -tag:v hvc1 -acodec copy -c:v copy -movflags faststart out.mp4
8cdiaqws

8cdiaqws8#

我有同样的问题,没有列出的解决方案为我工作.我在网站上显示视频从S3,但他们没有在iOS上播放,并给出上面列出的问题,但其中一个视频是工作没有问题.我试图添加-tag:v hvc1太多,但它没有工作.我通过FFmpeg比较两个视频,发现这是一个编码问题.我通过FFmpeg生成视频,并在生成视频时添加-brand mp42
简而言之,这很可能是由于不同的编码格式,尽管两者都是video/mp4类型。

相关问题