HLS
HTTP Live Streaming(缩写是 HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议。

特点是将流媒体切分为若干 TS 片段(比如每10秒一段),然后通过一个扩展的 m3u 列表文件将这些 TS 片段集中起来供客户端播放器接收。这样做相比使用 RTSP 协议的好处在于,一旦切分完成,之后的分发过程完全不需要额外使用任何专门软件,分发使用的协议是最常见 HTTP,代理服务器对这个协议的缓存优化相当成熟,而很少有代理服务器对 RTSP 的进行缓存优化。

HTTP Live Streaming 还有一个巨大优势:自适应码率流播(adaptive streaming)。效果就是客户端会根据网络状况自动选择不同码率的视频流,条件允许的情况下使用高码率,网络繁忙的时候使用低码率,并且自动在二者间随意切换。这对移动设备网络状况不稳定的情况下保障流畅播放非常有帮助。实现方法是服务器端提供多码率视频流,并且在列表文件中注明,播放器根据播放进度和下载速度自动调整。

至于为什么要用 TS 而不是 MP4,这是因为两个 TS 片段可以无缝拼接,播放器能连续播放,而 MP4 文件由于编码方式的原因,两段 MP4 不能无缝拼接,播放器连续播放两个 MP4 文件会出现破音和画面间断,影响用户体验。

mp4比较土,不是流式文件,必须有索引才能任意seek。

它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会下载一个包含元数据的extended M3U (m3u8) playlist文件,用于寻找可用的媒体流。

HLS 最大的不同在于直播客户端获取到的并不是一个完整的数据流,而是连续的、短时长的媒体文件,客户端不断的下载并播放这些小文件。这种方式的理论最小延时为一个 ts 文件的时长,一般情况为 2-3 个 ts 文件的时长。HLS 的分段策略,基本上推荐是 10 秒一个分片,这就看出了 HLS 的缺点:

数据通过 HTTP 协议传输,所以采用 HLS 时不用考虑防火墙或者代理的问题。

使用短时长的分片文件来播放,客户端可以平滑的切换码率,以适应不同带宽条件下的播放。
HLS 是苹果推出的流媒体协议,在 iOS 平台上可以获得天然的支持,采用系统提供的 AVPlayer 就能直接播放,不用自己开发播放器。

通常 HLS 直播延时会达到 20-30s,而高延时对于需要实时互动体验的直播来说是不可接受的。
HLS 基于短连接 HTTP,HTTP 是基于 TCP 的,这就意味着 HLS 需要不断地与服务器建立连接,TCP 每次建立连接时的三次握手、慢启动过程、断开连接时的四次挥手都会产生消耗。

RTMP
相对于 HLS 来说,采用 RTMP 协议时,从采集推流端到流媒体服务器再到播放端是一条数据流,因此在服务器不会有落地文件。这样 RTMP 相对来说就有这些优点:
延时较小,通常为 1-3s。
基于 TCP 长连接,不需要多次建连。

区别
1: HTTP: 即超文本传送协议(ftp即文件传输协议)。
HTTP:(Real Time Streaming Protocol),实时流传输协议。
2: HTTP将所有的数据作为文件做处理。
http协议不是流媒体协议。
RTMP和RTSP协议是流媒体协议。
3: RTSP传输一般需要2个端口,命令和数据通道分离,HTTP和RTMP一般在TCP一个端口上传输命令和数 据。

http://www.cnblogs.com/haibindev/archive/2013/01/30/2880764.html
http://easydarwin.org/article/Streaming/141.html
https://my.oschina.net/zhangjie830621/blog/486109
http://www.samirchen.com/ios-rtmp-vs-hls/?utm_source=tuicool&utm_medium=referral

http服务器 nginx

RTMP,RTSP,HLS 流服务器相关推荐

  1. EasyNVR、EasyDSS二次开发之:RTMP、HLS流在web页面进行无插件播放示例Demo代码

    不管是基于EasyNVR还是EasyDSS,都是支持无插件直播,这也是未来视频直播的一个趋势.对于传统的浏览器插件播放谁用谁知道: 以上是软件自带播放展示 背景需求 对于EasyNVR和EasyDSS ...

  2. FFmpeg/WebRTC/RTMP/RTSP/HLS/播放器-音视频流媒体高级开发【零声学院】

    FFmpeg/WebRTC/RTMP/RTSP/HLS/播放器-音视频流媒体高级开发 学习 音视频流媒体高级开发学习 01音视频基础 [录播]0-音视频开发高级课程简介(22分钟) 免费试学 [录播] ...

  3. 搭建流媒体推流/拉流服务(RTMP/RTSP/HLS/HTTP-FLV)

    一.什么是流媒体 流媒体(streaming media)是指将一连串的媒体数据压缩后,经过网上分段发送数据,在网上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送:如果不使用 ...

  4. Nginx搭建RTMP推拉流服务器

    如题,今天就来实现一个推拉流服务器,模拟下推流后被客户端拉流看到效果. 详细步骤如下 - 安装Nginx - 安装FFmpeg - 安装VLC客户端 安装Nginx 在Mac上有一个很好用的包管理插件 ...

  5. rtmp/rtsp/hls公网测试地址

    相信大家在调试播放器的时候,都有这样的困惑,很难找到合适的公有测试源,以下是大牛直播SDK整理的真正可用的直播地址源. 其中,rtmp和rtsp的url,用https://github.com/dan ...

  6. rtmp/rtsp/hls公网真正可用的测试地址

    相信大家在调试播放器的时候,都有这样的困惑,很难找到合适的公有测试源,以下是大牛直播SDK(GitHub地址)整理的真正可用的直播地址源. 其中,rtmp和rtsp的url,用我们播放器验证通过. 1 ...

  7. 解决 LiveQing 流媒体服务器videojs flash播放RTMP、HLS提示错误的问题

    问题 LiveQing流媒体服务器可以输出HTTP-FLV .Websocket-FLV.RTMP.HLS流,在做RTMP.HLS flash播放时候,经常会遇到网站flash被禁用的情况,每一次都会 ...

  8. Android ijkplayer播放rtsp直播流

    因为Android ijkplayer播放rtsp直播流在加载时延迟在5-10秒实在难以接受,再修改后解决了延迟问题,目前已达到2秒甚至秒开的效果 添加的方法:VideoOptionModel vid ...

  9. 使用SRS搭建流服务器使用ffmpeg推流用VLC拉流

    目录 一.背景 二.下载srs 三.编译srs 四.编写srs配置文件 五.启动srs 六.使用ffmpeg推流 七.使用VLC拉流观看 八.在树莓派上推一下摄像头的视频流用VLC拉流看一下延迟 一. ...

最新文章

  1. plus 什么是mybais_MyBatis和MyBatisPlus的区别是什么?
  2. python引用文件的方法_[项目实践] python文件路径引用的
  3. XP 终端服务组件 恢复补丁包 terminal service patch
  4. Oracle中的Rowid
  5. IDEA使用指南常用快捷键
  6. SAP Commerce Cloud (电商云) UI 的懒加载功能
  7. apache php mysql配置详解,详细介绍:Apache+PHP+MySQL配置攻略_php基础
  8. java如何解决高并发症,JAVA线上故障紧急处理详细过程!
  9. 今天的解放过后的蜡笔小新
  10. Power Designer逆向工程连接数据库创建pdm-oracle
  11. 小升初数学计算机考试题,【2020年小升初数学常考题型及易错题分析】- 环球网校...
  12. 让LYNC 2010 登录OCS 2007 R2
  13. 《代码大全》阅读笔记01
  14. 【图像修复】基于matlab全变分TV+curvelet变换彩色图像修复【含Matlab源码 461期】
  15. python如何删除代码_删除代码(上)
  16. 国内稳定的暗黑2服务器,国内暗黑2战网的基本概念介绍
  17. Xcode9 调整模拟器大小
  18. centos7挂载大于10T及以上硬盘
  19. 提高iOS开发效率的第三方框架(更新中)
  20. 关键词词云怎么做_做关键词分析,我有4款免费词云工具

热门文章

  1. multiprocessing.pool详解
  2. aws 数据库迁移_使用AWS进行数据库迁移
  3. BASIS ADM 100标准课程中文版本
  4. OpenFOAM 粘弹性流体求解器rheoTool
  5. 光环:研发云搭建及人才梯队建设——姚冬
  6. Python字符串日常练习(基础向)
  7. 计算机储存容量5mb,笔记本电脑的硬盘上 8455MB(CYL 16383,H16,S63) 640GB (LBA 1,250,263,728Sectors) 分别表示什么意思?...
  8. 网站数据常见的获取途径有什么
  9. 我们为什么需要实时数据库?
  10. Windows11拼音打字不出现候选字词窗口