了解适用于iOS开发人员的HLS

HTTP Live Streaming(HLS)是Apple的技术,用于将实时和点播音频/视频内容流式传输到各种设备,例如iphone,mac甚至android设备。

HLS的核心是使用HTTP协议(与Web供电相同的协议)来传递内容。

HLS流的行为类似于常规Web流量。

它们与诸如内容交付网络(CDN)之类的预先存在的缓存基础结构一起使用,并且可以可靠地通过典型的防火墙和路由器。

注意**

iOS应用要求

以下要求适用于提交供在App Store中分发以在Apple产品上使用的iOS应用。 Apple可以自行决定拒绝或删除不合规的应用程序。

如果您的应用通过蜂窝网络提供视频,并且视频在五分钟内超过10分钟或5 MB数据,则必须使用HLS。 您可以对较小的剪辑使用渐进式下载。

如果您的应用在蜂窝网络上使用HLS,则必须至少以192 Kbps或更低的带宽提供一个流。 低带宽流可以是纯音频的,也可以是带有静止图像的音频。

HTTP使您可以使用通用Web服务器而不是专用的流服务器轻松地在流中部署媒体内容。

以下是HLS的关键功能,这就是使用它的原因

自适应流

  • HLS适应可变的网络条件,动态调整播放以匹配有线和无线连接的可用速度。

内容保护

  • 可以使用样本级加密对媒体段进行单独加密

后备与流替代

  • 如果播放器无法重新加载媒体播放列表文件,则播放器将尝试切换到另一个兼容的媒体播放列表

除了上述三个优点外,还有其他优点,如下

  • 隐藏式字幕和字幕
  • 快进和快退播放
  • 备用音频和视频格式
  • 定时元数据
  • 广告插入

HLS像所有自适应流技术一样工作; 您创建了多个文件以分发给播放器,这些文件可以自适应地更改流以优化播放体验。 作为基于HTTP的技术,不需要流服务器,因此所有交换逻辑都驻留在播放器上

要分发给HLS客户端,您需要将源编码为多个不同比特率的文件,并将它们分成短块(ts文件:媒体文件)。

这些文件与带有扩展名.M3U8的基于文本的清单文件一起被加载到HTTP服务器上,该文件将播放器定向到每个编码流的附加清单文件。

播放器监视带宽状况。 如果播放器检测到带宽变化,它将检查主播放列表中其他流的位置,然后检查特定于流的清单文件中下一个视频数据块的URL。

PlayerSide(App)

  • [App]使用m3u8的网址制作AVAsset
  • [App]使用资产制作一个PlayItem,并使用Player(AVPlayer)设置播放项
  • [网络]检索主播放列表(m3u8文件)
  • [网络]检索内容密钥
  • [网络]检索选定的变体播放列表(媒体播放列表)
  • [网络]检索课程(.ts媒体文件)
  • [应用程式]播放

https://developer.apple.com/videos/play/wwdc2016/503/

https://developer.apple.com/library/content/referencelibrary/GettingStarted/AboutHTTPLiveStreaming/about/about.html

http://www.streamingmedia.com/Articles/Editorial/What-Is-…/What-is-HLS-(HTTP-Live-Streaming)-78221.aspx