iOS流媒体直播框架简介
来源:互联网 发布:js多文件上传 编辑:程序博客网 时间:2024/05/22 02:00
HTTP Live Streaming(HLS)
HLS是苹果基于Http实现的流媒体协议。HLS协议主要分为3个部分:内容准备、内容分发和客户端软件
内容准备:内容准备部分负责将输入的音视频媒体内容转换成为适合于内容分发组件进行递送的格式。过程如下:
- 编码器首先会将摄像机或视频的音视频数据压缩编码为符合特定标准的音视频基本流(苹果视频仅支持H.264和AAC音频格式)然后在复用和封装成为MPEG-2系统传输流(ts)。
- 分割器负责将之前的TS流分割成一系列连续的,长度均等的ts文件。并发送给内容分发组件中。
需要解决的问题:
Web服务器进行存储。与此同时,为了跟踪播放过程中媒体文件的可用性和当前位置,流分割器还需创建一个含有指向这些小TS文件指针的索引文件,同样放置于Web服务器之中。这个索引文件可以看作是一个连续媒体流中的播放列表滑动窗口,每当流分割器生成一个新的TS文件时,这个索引文件的内容也被更新,新的文件URI(统一资源定位符)加入到滑动窗口的末尾,老的文件URI则被移去,这样索引文件中将始终包含最新的固定数量的x个分段
所以采用MPEG-2 TS格式来对编码后的媒体流进行统一封装,是因为它能够将音视频媒体流严格按时序进行交织复用,任意截取和分段后,每一个分段都可能不依赖于之前的分段而独立进行解码和播放。
- 索引文件采用扩展的M3U播放列表格式,后缀名为.m3u8。
- 在基于HTTP Live Streaming的流媒体系统中,服务器可以为同一节目源准备多份以不同码率和质量编码的替换流,并为每个替换流都生成一个衍生的索引文件。在主索引文件中通过包含一系列指向其他衍生索引文件的URI指针来找到相应的替换流。
内容分发:内容分发系统用于通过HTTP协议将分割后的小媒体文件及其索引文件递送至客户端播放器,
客户端软件:客户端软件通过访问Web网页中的URL链接来获取和下载一个流媒体会话的索引文件。这个索引文件进一步指定了服务器上当前可用的TS格式媒体文件、解密密钥和其他替换流的位置。对于选定的媒体流,客户端依次下载索引文件中列出的每一个可用媒体文件。当这些媒体文件缓冲够一定数量后,客户端将它们按顺序重新拼装成一个连贯的TS流,然后发送至播放器进行解码和呈现.客户端将周期性地向Web服务器重新请求获取该索引文件的更新版本,然后在这个更新版的索引文件中查找新的媒体文件和解密密钥,并将它们的
URI添加至下载队列的末尾.
RTSP
RTsp:通过在客户机和服务器之间传递RTSP会话命令,可以完成诸如请求播放、开始、暂停、查找、快进和快退等VCR控制操作。虽然RTSP会话通常承载于可靠的TCP连接之上
Rtp:
RTP又称为实时传输协议,用于实际承载媒体数据并为具有实时特性的媒体数据交互提供端到端的传输服务.应用程序通常选择在UDP之上来运行RTP协议,以便利用UDP的复用和校验和等功能.
架构
出于便于管理和扩展,带宽限制和多用户并发的考虑,商用方案都会采用流媒体服务器+WEB服务器+中转服务器+手机客户端的方案。
详细介绍
- iOS流媒体直播框架简介
- ios流媒体直播整个框架介绍(HLS、RTSP)
- iOS流媒体直播整个框架介绍(HLS、RTSP)
- ios流媒体直播整个框架介绍(HLS、RTSP)
- iOS流媒体直播整个框架介绍(HLS、RTSP)
- 研究手机直播流媒体框架
- iOS-流媒体传输协议简介
- iOS ijkplayer视频直播框架
- ios(苹果)设备直播流媒体 服务搭建
- 流媒体直播问题
- 直播无人机流媒体论坛
- RTMP流媒体直播资料
- Nginx RTMP 流媒体直播
- 流媒体视频直播方案
- SLSP直播流媒体协议
- 流媒体 直播细节优化
- iOS中集成ijkplayer视频直播框架
- iOS中集成ijkplayer视频直播框架
- Using NFS with ASM
- DPDK-MULTI-PROCESS SUPPORT 多进程支持
- ELK(elasticsearch+logstash+kibana)实现Java分布式系统日志分析架构
- 对抗神经网络(Adversarial Nets)的介绍[1]
- VA01保存后都更新了什么表
- iOS流媒体直播框架简介
- php 多线程并发处理
- 微信小程序开发(入坑之旅)一:域名问题。
- OpenCV中phase函数计算方向场
- 《AppIntent
- 袋鼠过河
- JAXB实现JavaBean与XML互相转换
- 一段简单代码理解异步请求消息队列在高并发环境中的作用
- Android开发,自定义ViewGroup的神器,ViewDragHelper