What Is HLS (HTTP Live Streaming)?
HTTP Live Streaming (HLS) Executive Summary
HTTP Live Streaming (or HLS) is an adaptive streaming communications protocol created by Apple to communicate with iOS and Apple TV devices and Macs running OSX in Snow Leopard or later. HLS can distribute both live and on-demand files and is the sole technology available for adaptively streaming to Apple devices, which is an increasingly important target segment to streaming publishers.
HLS is widely supported in streaming servers from vendors like Adobe, Microsoft, RealNetworks, and Wowza, as well as real time transmuxing functions in distribution platforms like those from Akamai. The popularity of iOS devices and this distribution-related technology support has also led to increased support on the player side, most notably from Google in Android 3.0.
In the Apple App Store, if you produce an app that delivers video longer then ten minutes or greater than 5MB of data, you must use HTTP Live Streaming, and provide at least one stream at 64Kbps or lower bandwidth. Any streaming publisher targeting iOS devices via a website or app should know the basics of HLS and how it’s implemented.
How HLS Works
At a high level, HLS works like all adaptive streaming technologies; you create multiple files for distribution to the player, which can adaptively change streams to optimize the playback experience. As an HTTP-based technology, no streaming server is required, so all the switching logic resides on the player.
To distribute to HLS clients, you encode the source into multiple files at different data rates and divide them into short chunks, usually between 5-10 seconds long. These are loaded onto an HTTP server along with a text-based manifest file with a .M3U8 extension that directs the player to additional manifest files for each of the encoded streams.

Figure 1. HLS uses multiple encoded files with index files directing the player to different streams and chunks of audio/video data within those streams.
The player monitors changing bandwidth conditions. If these dictate a stream change, the player checks the original manifest file for the location of additional streams, and then the stream-specific manifest file for the URL of the next chunk of video data. Stream switching is generally seamless to the viewer.
https://www.streamingmedia.com/Articles/ReadArticle.aspx?ArticleID=78221
What Is HLS (HTTP Live Streaming)?的更多相关文章
- 基于HLS(HTTP Live Streaming)的视频直播分析与实现
转自:http://www.cnblogs.com/haibindev/archive/2013/01/30/2880764.html HLS(HTTP Live Streaming)的分析: HTT ...
- HLS(HTTP Live Streaming)学习和探讨
Introduction HTTP Live Streaming lets you send audio and video over HTTP from an ordinary web server ...
- 将视频转换为 HLS(HTTP Live Streaming) 协议格式文件
就是将视频文件转码(H264+ACC).分片(n个.ts文件).生成列表(.m3u8) 方便网站提供视频播放服务,提升加载速度,节省流量. 1.准备好源视频文件. 2.下载 ffmpeg(http:/ ...
- 流媒体协议部分RTP、RTCP、RTSP、MMS、HLS、HTTP progressive streaming
流媒体协议:(RTP.RTCP.RTSP.MMS.HLS.HTTP progressive streaming) 当前在internet上传送音频和视频等信息主要有两种方式: 下载,完整下载一个视频, ...
- iOS_直播类app_HTTP Live Streaming
http://www.2cto.com/kf/201606/513980.html https://developer.apple.com/library/ios/technotes/tn2224/_ ...
- 推流和拉流的概念以及RTMP和HLS协议
推流为将直播内容推送至服务器的过程:拉流为服务器已有直播内容,用指定地址进行拉取的过程. rtmp rtmp是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写. ...
- 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
RTP 参考文档 RFC3550/RFC3551 Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议.RTP协议详细 ...
- [转]流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
[转]流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls) http://blog.csdn.net/tttyd/article/details/12032357 RTP ...
- (HLS播放器之中的一个)HLS协议之M3U8解析
參照 http://tools.ietf.org/html/draft-pantos-http-live-streaming-08, 能够对M3U8有比較系统的认识. HLS(HTTP Live St ...
随机推荐
- 5 LInux系统目录结构
ls / 显示根目录下的文件 /bin bin是Binary的缩写,这个目录存放着经常使用的命令 /boot 存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件 /de ...
- django2.2(一)
限制请求method 什么是method 1.通常客户端请求服务器获取资源为GET方式 2.客户端提交数据给服务器端数据为POST方式 method限制请求 如果要限制请求,比如客户端只允许用GET方 ...
- The Preliminary Contest for ICPC Asia Shenyang 2019 H. Texas hold'em Poker
题目链接:https://nanti.jisuanke.com/t/41408 题目意思很简单,就是个模拟过程. #include <iostream> #include <cstr ...
- 目标检测论文解读9——R-FCN
背景 基于ResNet 101的Faster RCNN速度很慢,本文通过提出Position-sensitive score maps(位置敏感分值图)来给模型加速. 方法 首先分析一下,为什么基于R ...
- mysql小结(了解)
Mysql总结 1.数据库的概念 """ 数据库:库(文件夹).表(表结构文件.表数据文件(索引结构)).字段(数据的描述).记录(数据的本体) 分类:效率问题(内存大于 ...
- Django API 自定义状态码
class BaseResponse(object): def __init__(self): self.code = 1000 self.data = None self.error = None ...
- node开发遇到类似:Error: ENOENT: no such file or directory, scandir 'D:\work\taro-components- ....... _node-sass@4.12.0@node-sass\vendor
唯一的有参考价值的文章,https://www.cnblogs.com/milo-wjh/p/9175138.html 我可以负责任的说,以下的方法, npm rebuild node-sass 80 ...
- MongoDB数据操作练习
1.创建一年级的3个班,并随机添加 10 名学生: >for(grade_index in (grade = ['grade_1_1', 'grade_1_2', 'grade_1_3'])) ...
- 洛谷p2827蚯蚓题解
题目 算法标签里的算法什么的都不会啊 什么二叉堆?? qbxt出去学习的时候讲的,一段时间之前做的,现在才写到博客上的 维护3个队列,队列1表示最开始的蚯蚓,队列2表示每一次被切的蚯蚓被分开的较长的那 ...
- 【BigData】Java基础_方法的定义与使用
1.概念 Java语言中的“方法”(Method)在其他语言当中也可能被称为“函数”(Function).对于一些复杂的代码逻辑,如果希望重复使用这些代码,并且做到“随时任意使用”,那么就可以将这些代 ...