Safari上的HTML5视频问题

时间:2018-12-28 02:11:21

标签: html html5 safari

我遇到的问题是,视频无法在Safari中运行,但可以与Chrome和Firefox完美配合。

<video controls muted preload="none" playsinline src="/path/to/video" type="video/mp4"/>

获取fom VLC编解码器信息:

视频h.264 / mpeg-4 avc

音频mpeg aac音频mp4a

enter image description here

3 个答案:

答案 0 :(得分:2)

这确实是Safari中的错误*(至少是12.0.2版),该错误*不接受从MediaElement作为单个请求获取此300MB video
他们拼命尝试发出Range请求,但您的主机不允许此类请求。您可以尝试在未完全加载到其他浏览器中的视频中查找视频来查看它。

您可以通过

解决该问题
  • 设置服务器以使其接受Range请求(即使对于其他浏览器,这也是最佳解决方案)。
  • 发生错误时,请通过AJAX提取整个文件,然后从内存中播放(作为Blob)。但这意味着要等待400MB下载。
  • 发生错误时,请提取文件,并使用ReadableStream方法将MediaSource传送到SourceBufferappendStream()。但是还没有浏览器支持它...

*虽然我发现this link表示“为iOS托管媒体文件的 HTTP服务器必须支持字节范围请求”,但对于iOS来说却如此,但是具有与台式机相同的约束。但是它们不支持非范围请求,无论如何都听起来像是一个错误,因为它违反了规范。

答案 1 :(得分:0)

为将来的搜索者提供的另一种可能的解决方案:(如果您的问题不是模仿类型问题。)

由于某些原因,除非我设置了controls =“ true”标志,否则视频无法在iPad上播放。

示例:这对我适用于iPhone,但不适用于iPad。

<video loop autoplay width='100%' height='100%' src='//some_video.mp4' type='video/mp4'></video>

答案 2 :(得分:0)

如果您尚未解决问题,请转到手机设置,然后选择“ safari”,然后点按“清除历史记录和网站数据”,这对我有用,不是代码而是safari本身。