HTML5 苹果直播视频 iOS

HTML5 live video Apple iOS

据我所知,目前还无法在您的 Apple 设备上使用 HTML5 video 播放实时视频流,并且 1-1.5 秒延迟或更少。 Apple 似乎唯一支持的流媒体协议是 HLS,它涉及将视频分成块,一个一个地下载,并下载足够的片段 (3 默认情况下)开始播放它。如果这些片段中的每一个都是 3 秒长,那么您将看到 9-10 秒延迟。当流式传输和降低视频比特率似乎不会减少所述标记时,减少片段的长度会导致持续中断。

在 Apple 移动设备上使用 HTML5 流式传输 真正 实时视频是否有任何其他可行的解决方案?

不,在 post 时除了 HLS 没有其他解决方案。另外,如果您想使用其他协议制作自己的应用程序并将其发布到 App Store,则可能会因为任意 rule 9.4:

而被拒绝

9.4 Video streaming content over a cellular network longer than 10 minutes must use HTTP Live Streaming and include a baseline 192 kbps or lower HTTP Live stream

目前有一个支持低延迟直播的DASH推送,但Apple不支持。

如果有人想知道 - 仍然有一个 hacky 解决方法可以完全避免使用 HLS。

您可以将视频流转换为 mpeg1 格式的图像序列(使用 ffmpeg for example) and download them at client side using javascript library and use canvas element to display them. This can be achieved using jsmpeg 及其 streaming-server 代码,然后在 node.js

上运行

我能够在 Safari iOS.

上以 150 毫秒 延迟获得 30 fps 540x320 分辨率

要获得精确的演练,请参阅此 blog

优点:

  • 改进的延迟(具有足够的比特率和分辨率)
  • HTML5 与 相当兼容 跨平台支持

缺点:

  • 没有音频。
  • 增加 cpu 在大多数手持设备上的使用率