如何在 iOS 中播放 MPEG-DASH 视频流?

How to MPEG-DASH video streaming in iOS?

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

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

我的理解

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

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

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

现在,我的疑惑:

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

任何 suggestion/explanations 都会更有帮助!

  1. 你不能。

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

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

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