iOS流媒体直播框架简介

来源:互联网 发布:js多文件上传 编辑:程序博客网 时间:2024/05/22 02:00

HTTP Live Streaming(HLS)

HLS是苹果基于Http实现的流媒体协议。HLS协议主要分为3个部分:内容准备、内容分发和客户端软件

MacDown image

内容准备:内容准备部分负责将输入的音视频媒体内容转换成为适合于内容分发组件进行递送的格式。过程如下:

  1. 编码器首先会将摄像机或视频的音视频数据压缩编码为符合特定标准的音视频基本流(苹果视频仅支持H.264和AAC音频格式)然后在复用和封装成为MPEG-2系统传输流(ts)。
  2. 分割器负责将之前的TS流分割成一系列连续的,长度均等的ts文件。并发送给内容分发组件中。

需要解决的问题:

  1. Web服务器进行存储。与此同时,为了跟踪播放过程中媒体文件的可用性和当前位置,流分割器还需创建一个含有指向这些小TS文件指针的索引文件,同样放置于Web服务器之中。这个索引文件可以看作是一个连续媒体流中的播放列表滑动窗口,每当流分割器生成一个新的TS文件时,这个索引文件的内容也被更新,新的文件URI(统一资源定位符)加入到滑动窗口的末尾,老的文件URI则被移去,这样索引文件中将始终包含最新的固定数量的x个分段
    MacDown image

  2. 所以采用MPEG-2 TS格式来对编码后的媒体流进行统一封装,是因为它能够将音视频媒体流严格按时序进行交织复用,任意截取和分段后,每一个分段都可能不依赖于之前的分段而独立进行解码和播放。

  3. 索引文件采用扩展的M3U播放列表格式,后缀名为.m3u8。
  4. 在基于HTTP Live Streaming的流媒体系统中,服务器可以为同一节目源准备多份以不同码率和质量编码的替换流,并为每个替换流都生成一个衍生的索引文件。在主索引文件中通过包含一系列指向其他衍生索引文件的URI指针来找到相应的替换流。

内容分发:内容分发系统用于通过HTTP协议将分割后的小媒体文件及其索引文件递送至客户端播放器,

客户端软件:客户端软件通过访问Web网页中的URL链接来获取和下载一个流媒体会话的索引文件。这个索引文件进一步指定了服务器上当前可用的TS格式媒体文件、解密密钥和其他替换流的位置。对于选定的媒体流,客户端依次下载索引文件中列出的每一个可用媒体文件。当这些媒体文件缓冲够一定数量后,客户端将它们按顺序重新拼装成一个连贯的TS流,然后发送至播放器进行解码和呈现.客户端将周期性地向Web服务器重新请求获取该索引文件的更新版本,然后在这个更新版的索引文件中查找新的媒体文件和解密密钥,并将它们的
URI添加至下载队列的末尾.

RTSP

RTsp:通过在客户机和服务器之间传递RTSP会话命令,可以完成诸如请求播放、开始、暂停、查找、快进和快退等VCR控制操作。虽然RTSP会话通常承载于可靠的TCP连接之上
Rtp:
RTP又称为实时传输协议,用于实际承载媒体数据并为具有实时特性的媒体数据交互提供端到端的传输服务.应用程序通常选择在UDP之上来运行RTP协议,以便利用UDP的复用和校验和等功能.

架构

出于便于管理和扩展,带宽限制和多用户并发的考虑,商用方案都会采用流媒体服务器+WEB服务器+中转服务器+手机客户端的方案。

详细介绍

原创粉丝点击