【问题标题】:How to MPEG-DASH video streaming in iOS?如何在 iOS 中播放 MPEG-DASH 视频流?
【发布时间】:2018-06-28 18:44:34
【问题描述】:

我正在尝试为视频流编写基于 JavaScript 的 MPEG-DASH 实现。我参考了以下文件:

这些库使用 MSE(媒体源扩展)。

我的理解

MPEG-DASH 是流式视频的国际标准,但目前在 iOS 设备中不原生支持。在其他浏览器和设备中,它需要 JavaScript 库或支持 MPEG-DASH 的视频播放器(例如:Dash.Js、Shaka 播放器)。

另一种流媒体技术是HLS。它是 Apple 创建的自适应流媒体通信协议。 Safari 浏览器可以在网页、iPhone 和 iPod touch 设备中播放 HLS 流。

在这里,我们可以看到 MPEG-DASH(由于 MSE)目前在 iOS 设备中不受原生支持。

现在,我的疑问:

  1. 我们如何在没有 MSE 的情况下在 iOS 中流式传输 MPEG-DASH 视频?
  2. Facebook和其他流媒体服务如何播放他们的视频?只有 HLS 吗?

任何建议/解释都会很有帮助!

【问题讨论】:

  • 澄清caniuse.com/?search=mse MPEG-DASH 目前在 iPad OS 中受支持,他们甚至在 iPad 主题演讲中含蓄地吹嘘。我怀疑这是取悦运营商,比如“5Ge”。而且,如果您不观看高清视频并改用备用视频,电池寿命会更长。

标签: javascript ios html video mpeg-dash


【解决方案1】:
  1. 你不能。

  2. 是的,他们使用 HLS。 iOS 10 及更高版本支持 HLS 中的 fmp4。所以 dash 和 hls 之间的唯一区别是清单。

【讨论】:

  • 这仍然是真的吗? viblast.com/player 声称“您正在寻找解决 iOS 中 DASH 播放的极少数现有解决方案之一。”
  • 仍然是真实的。现在可以在 service worker 中将 mpd 转换为 m3u8。不确定。
  • @szatmary 真的只有这些吗?使用Mp4/AV1时片段没有区别?
  • @RayFoss 要回答你关于 DASH H.264 到 HLS 的问题,是的,只需制作一个指向每个 fmp4 文件的 m3u8,并将初始化片段放在#EXT-X-MAP 中跨度>
  • @RayFoss Apple TV 几乎可以解码软件中的任何内容。但那是因为它有一根插在墙上的电源线。预计具有良好电池寿命的手机将成为 HLS 采用的障碍。解码 AV1 不是大规模并行问题,标准 GPU 不会解决它。它需要专用的硬件原语。这就是为什么 QuickSync / NVENC / VideoToolBox 都存在的原因。此外,M1 拉力为 40 瓦(非常令人印象深刻),但 A14 的拉力要低十倍!
【解决方案2】:

您可以在设备上设置代理服务器,然后创建一个解析器,将 mpd 文件转换为 m3u8 并为 AVPlayer 提供 m3u8。 对于 ios 代理 GCD 应该可以解决问题: GCDWebServer

【讨论】:

    【解决方案3】:

    尝试同时提供 HLS 和 DASH 容器,让媒体查询选择合适的容器。

    【讨论】:

    • 嗨,Cary,如果您需要澄清问题,您应该在问题下方发表评论。答案应该为所提出的问题提供解决方案。我冒昧地更改了您答案的措辞,因此它更像是“答案式”而不是“评论式”
    猜你喜欢
    • 1970-01-01
    • 2018-04-13
    • 2017-11-19
    • 2018-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多