如何在 iOS 中播放 MPEG-DASH 视频流?
How to MPEG-DASH video streaming in iOS?
我正在尝试为视频流编写基于 JavaScript 的 MPEG-DASH 实现。我参考了以下文件:
- dash.js - https://github.com/Dash-Industry-Forum/dash.js/wiki
- Google沙卡球员 - https://github.com/google/shaka-player
这些库正在使用 MSE(媒体源扩展)。
我的理解
MPEG-DASH 是流媒体视频的国际标准,但 iOS 设备目前不支持它。在其他浏览器和设备中,它需要 JavaScript 库或支持 MPEG-DASH 的视频播放器(例如:Dash.Js、Shaka 播放器)。
另一种流媒体技术是HLS。它是 Apple 创建的一种自适应流式通信协议。 Safari 浏览器可以在网页、iPhone 和 iPod touch 设备中播放 HLS 流。
在这里,我们可以看到 iOS 设备目前不支持 MPEG-DASH(由于 MSE)。
现在,我的疑惑:
- 我们如何在没有 MSE 的情况下在 iOS 中流式传输 MPEG-DASH 视频?
Facebook
和其他流媒体服务如何播放他们的视频?仅适用于 HLS 吗?
任何 suggestion/explanations 都会更有帮助!
你不能。
是的,他们使用 HLS。 iOS 10 及更高版本支持 HLS 中的 fmp4。所以 dash 和 hls 之间的唯一区别是清单。
您可以在设备上设置代理服务器,然后创建一个解析器,将 mpd 文件转换为 m3u8 并为 AVPlayer 提供 m3u8。
对于 ios 代理 GCD 应该可以解决问题:
GCDWebServer
尝试同时提供 HLS 和 DASH 容器,让媒体查询选择合适的容器。
我正在尝试为视频流编写基于 JavaScript 的 MPEG-DASH 实现。我参考了以下文件:
- dash.js - https://github.com/Dash-Industry-Forum/dash.js/wiki
- Google沙卡球员 - https://github.com/google/shaka-player
这些库正在使用 MSE(媒体源扩展)。
我的理解
MPEG-DASH 是流媒体视频的国际标准,但 iOS 设备目前不支持它。在其他浏览器和设备中,它需要 JavaScript 库或支持 MPEG-DASH 的视频播放器(例如:Dash.Js、Shaka 播放器)。
另一种流媒体技术是HLS。它是 Apple 创建的一种自适应流式通信协议。 Safari 浏览器可以在网页、iPhone 和 iPod touch 设备中播放 HLS 流。
在这里,我们可以看到 iOS 设备目前不支持 MPEG-DASH(由于 MSE)。
现在,我的疑惑:
- 我们如何在没有 MSE 的情况下在 iOS 中流式传输 MPEG-DASH 视频?
Facebook
和其他流媒体服务如何播放他们的视频?仅适用于 HLS 吗?
任何 suggestion/explanations 都会更有帮助!
你不能。
是的,他们使用 HLS。 iOS 10 及更高版本支持 HLS 中的 fmp4。所以 dash 和 hls 之间的唯一区别是清单。
您可以在设备上设置代理服务器,然后创建一个解析器,将 mpd 文件转换为 m3u8 并为 AVPlayer 提供 m3u8。 对于 ios 代理 GCD 应该可以解决问题: GCDWebServer
尝试同时提供 HLS 和 DASH 容器,让媒体查询选择合适的容器。