【问题标题】:HTML5 live video Apple iOSHTML5 实时视频 Apple iOS
【发布时间】:2015-08-30 16:33:27
【问题描述】:

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

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

【问题讨论】:

    标签: ios html video-streaming html5-video http-live-streaming


    【解决方案1】:

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

    您可以将视频流转换为mpeg1 格式的图像序列(例如使用ffmpeg),然后使用javascript 库在客户端下载它们并使用canvas 元素显示它们。这可以使用jsmpeg 及其streaming-server 代码来实现,而不是在node.js 上运行

    我能够在 Safari iOS 上以 150 毫秒 的延迟获得 30 fps 的 540x320 分辨率。

    如需准确的演练,请参阅blog

    优点:

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

    缺点:

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

    【讨论】:

      【解决方案2】:

      不,在发布这篇文章时,除了HLS 之外没有其他解决方案。另外,如果您想使用其他协议制作自己的应用并在 App Store 上发布它可能会因为任意rule 9.4 而被拒绝:

      9.4 蜂窝网络上超过 10 分钟的视频流式传输内容必须使用 HTTP 实时流式传输,并包含 192 kbps 或更低的 HTTP 实时流式传输基线

      目前正在推动DASH,它支持低延迟直播,但苹果不支持。

      【讨论】:

      • 我想我可能已经找到了使用 javascript websockets 的解决方法。更多在我的回答中
      • 我知道这个库,但我不认为它是一个可行的生产解决方案。 MPEG-1 相当陈旧,缺少新编解码器中的高级功能,您使用的是软件 (JavaScript) 解码,而不是 Apple 设备的硬件加速功能。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-11
      • 1970-01-01
      • 2019-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多