1,由来:

HLS是一个基于 HTTP 的视频流协议,由 Apple 公司实现,Mac OS 上的 QuickTime、Safari 以及 iOS 上的 Safari 都能很好的支持 HLS,高版本 Android 也增加了对 HLS 的支持。一些常见的客户端如:MPlayerX、VLC 也都支持 HLS 协议。

2,格式:

浏览器使用的是 m3u8 文件,可以简单的认为 m3u8 就是包含多个 ts 文件的播放列表。播放器按顺序逐个播放,全部放完再请求一下 m3u8 文件,获得包含最新 ts 文件的播放列表继续播,周而复始。整个直播过程就是依靠一个不断更新的 m3u8 和一堆小的 ts 文件组成,m3u8 必须动态更新,ts 可以走 CDN。一个典型的 m3u8 文件格式如下:

#EXTM3U#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=200000
gear1/prog_index.m3u8#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=311111
gear2/prog_index.m3u8#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=484444
gear3/prog_index.m3u8#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=737777
gear4/prog_index.m3u8

具体的格式详细内容可以参考我的另外一篇介绍:hls之m3u8、ts流格式详解

还有苹果官网的hls介绍:Apple HLS

可以看到 HLS 协议本质还是一个个的 HTTP 请求 / 响应,所以适应性很好,不会受到防火墙影响。

3,播放:

对于支持 HLS 的浏览器来说,直接这样写就能播放了:

<video src="http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"
height="300" width="400"  preload="auto" autoplay="autoplay" loop="loop" webkit-playsinline="true"></video>

注意:HLS 在 PC 端仅支持safari浏览器,类似chrome浏览器使用HTML5 video标签无法播放 m3u8 格式,可直接采用网上一些比较成熟的方案,

如:

sewise-player、

MediaElement、

videojs-contrib-hls、

jwplayer。

4,延时:

hls有一个致命的弱点:延迟现象非常明显。如果每个 ts 按照 5 秒来切分,一个 m3u8 放 6 个 ts 索引,那么至少就会带来 30 秒的延迟。如果减少每个 ts 的长度,减少 m3u8 中的索引数,延时确实会减少,但会带来更频繁的缓冲,对服务端的请求压力也会成倍增加。所以只能根据实际情况找到一个折中的点。

HTTP Live Streaming(HLS)详解相关推荐

  1. HLS详解(看这个就够了)

    HLS详解(看这个就够了) HLS概述 官方定义 优劣性 优点: 缺点: 格式解析 HLS文件 playlist(m3u8)介绍 HLS playlist(m3u8)格式详解 播放模式 点播VOD L ...

  2. 详解MapReduce中的五大编程模型

    前言 我们上一节讲了关于 MapReduce 中的应用场景和架构分析,最后还使用了一个CountWord的Demo来进行演示,关于MapReduce的具体操作.如果还不了解的朋友可以看看上篇文章:初识 ...

  3. hls之m3u8、ts流格式详解

    HLS,Http Live Streaming 是由Apple公司定义的用于实时流传输的协议,HLS基于HTTP协议实现,传输内容包括两部分,一是M3U8描述文件,二是TS媒体文件. 1.M3U8文件 ...

  4. FFmpeg入门详解之87:HLS直播协议详解

    引言与效果演示 ----------------------------------------- FFmpeg431的官方地址已经无法打开, 我将ffmepg4.3.1的开发包和源码上传到了百度云: ...

  5. FFmpeg入门详解之102:HLS直播协议详解

    引言与效果演示 ----------------------------------------- FFmpeg431的官方地址已经无法打开, 我将ffmepg4.3.1的开发包和源码上传到了百度云: ...

  6. FFmpeg入门详解之109:m3u8加密--HLS 架构简介及播放加密的HLS

    HLS 概述 HLS 全称是 HTTP Live Streaming, 是一个由 Apple 公司实现的基于 HTTP 的媒体流传输协议. 他跟 DASH 协议的原理非常类似. 通过将整条流切割成一个 ...

  7. Hadoop Streaming详解

    一: Hadoop Streaming详解 1.Streaming的作用 Hadoop Streaming框架,最大的好处是,让任何语言编写的map, reduce程序能够在hadoop集群上运行:m ...

  8. Spark Streaming 源码详解

    原地址 本系列内容适用范围:* 2015.12.05 update, Spark 1.6 全系列 √ (1.6.0-preview,尚未正式发布) * 2015.11.09 update, Spark ...

  9. 实时监控、直播流、流媒体、视频网站开发方案流媒体服务器搭建及配置详解:使用nginx搭建rtmp直播、rtmp点播、,hls直播服务配置详解

    注意:这里不会讲到nginx流媒体模块如何安装的问题,只研究rtmp,hls直播和录制相关的nginx服务器配置文件的详细用法和说明.可以对照这些命令详解配置nginx -rtmp服务 一.nginx ...

  10. 视频直播技术详解(7)现代播放器原理

    <视频直播技术详解>系列之七:现代播放器原理 牛小七2016年9月29日发布在 视频直播技术详解 from: http://blog.qiniu.com/archives/7040 七牛云 ...

最新文章

  1. JNI 实战全面解析
  2. hybird 跨平台移动app开发
  3. xampp启动Apache报错 1、Error: Apache shutdown unexpectedly. 2、Unclean shutdown of previous Apache run?
  4. 传相互宝或于6月11日被关停 蚂蚁集团回应:假消息
  5. linux入门 适合初学者_经过慎重考虑,我拿出这套适合初学者入门的Java基础完整版视频...
  6. onenote设置默认新建页面颜色非白色
  7. python ioc框架_轻松理解 Spring 中的 IOC
  8. 使用@Conditional条件注解
  9. 进程同步——信号量机制(操作系统)
  10. 2019年安徽省学业水平考试计算机,2019年安徽省初中学业水平考试
  11. 安装pika配置系统服务过程中遇到的错误
  12. 一个计算机程序员高手的成长 [转]
  13. android tag的使用方法,Android setTag方法的key问题解决办法
  14. laravel短信包 easy-sms
  15. Razer雷蛇7.1声音驱动卸载后无法安装问题
  16. 4.6 案例10 使用QList处理数据集
  17. OCA,OCP,OCM傻傻分不清?
  18. 用VB实现WAV文件PCM与ADPCM的格式转换
  19. Maya安装后运行崩溃/闪退/报错
  20. lsi sas2208阵列卡刷直通模式

热门文章

  1. CATIA二次开发—定制搜索功能
  2. 精益生产管理专家——安岷老师
  3. mysql语句alter table_sql语句中ALTER TABLE MODIFY和ALTER TABLE CHANGE的区别?
  4. [zz]明月虽好by 王大根 from 豆瓣
  5. 夜深人静写算法(五)- 初等数论
  6. centos yum 国内源
  7. 156种PS特效动作中文大合集【附高清视频教程】
  8. 方差分析(1) ——单因素方差分析及Excel示例
  9. qplot函数添加回归曲线R方方差分析表
  10. excel多个工作表合并怎么操作