转载自:http://www.cuplayer.com/player/PlayerCode/Wowza/2015/0204/1774.html

HLS (HTTP Live Streaming)

Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。

常用的流媒体协议主要有 HTTP 渐进下载和基于 RTSP/RTP 的实时流媒体协议,这二种基本是完全不同的东西,目前比较方便又好用的是用 HTTP 渐进下载方法。在这个中 apple 公司的 HTTP Live Streaming 是这个方面的代表。它最初是苹果公司针对iPhone、iPod、iTouch和iPad等移动设备而开发的流.现在见到在桌面也有很多应用了,HTML5 是直接支持这个。

但是HLS协议的小切片方式会生成大量的文件,存储或处理这些文件会造成大量资源浪费。如果要实现数天的时移,索引量将会是个巨额数字,并明显影响请求速度。因此,HLS协议对存储I/O要求相当苛刻。对此,也有公司提出了非常好的解决方案。

新型点播服务器系统,独创了内存缓存数据实时切片技术,颠覆了这种传统实现方法,从根本上解决了大量切片的碎片问题,使得单台服务器的切片与打包能力不再是瓶颈。其基本原理如下:

不将TS切片文件存到磁盘,而是存在内存当中,这种技术使得服务器的磁盘上面不再会有“数以吨计”的文件碎片,极大减少了磁盘的I/O次数,延长了服务器磁盘的使用寿命,极大提高了服务器运行的稳定性。同时,由于使用这种技术,使得终端请求数据时直接从服务器的内存中获取,极大提高了对终端数据请求的反应速度,优化了视频观看体验。

RTSP协议,这应该是实时性最好的了,如果要想实时性要求很高,比如0.5s以内,这个是不错的选择。前阵子模仿spydroid写了个建议的rtsp 服务器,其实就是options,describe,setup,play,pause,teardown这几步了,这个协议用的最广泛,网上介绍也比较 多。要想真正深入了解rtsp协议,c++语言功底好的可以查看live555 。

RTMP协议,自己最近研究的,如果有兴趣,可以看看我的其他文章。

相关链接:http://www.52player.com/VideoPlayer/2014/121751.html

纯HLS(m3u8)跨平台技术(HLSPlayer,m3u8Player跨平台多终端)

1. 这是一款支持m3u8地址在PC电脑端和移动端(安卓Android,苹果IOS等)播放视频的播放器。
2. 注意:本实例仅支持hls(m3u8)地址,不支持flv,mp4,mov,f4v,3gp格式,这点请特别注意!
3. 本实例做了跨平台的适配, 支持PC终端,Android安卓终端,iOS苹果终端,WP终端的正常播放。
* 提示1:本实例请在IIS/Apache等网站环境下测试;
* 提示2:本实例仅支持hls(m3u8)/不支持flv,mp4,f4v;
* 提示3:本实例要求用户自身有实现HLS技术,即输出了HLS(m3u8)地址,比如用wowza流媒体软件输出;

流媒体协议RTMP,RTSP与HLS有什么不同的更多相关文章

  1. 流媒体协议之RTSP详解20170922

    一.RTSP协议介绍 1.什么是rtsp? RTSP协议以客户服务器方式工作,,如:暂停/继续.后退.前进等.它是一个多媒体播放控制协议,用来使用户在播放从因特网下载的实时数据时能够进行控制, 因此 ...

  2. 网络流媒体协议之——RTSP协议

    RTSP(Real-Time Stream Protocol)协议是一个基于文本的多媒体播放控制协议,属于应用层.RTSP以客户端方式工作,对流媒体提供播放.暂停.后退.前进等操作.该标准由IETF指 ...

  3. 流媒体协议之RTSP服务端的实现20180629

    RtspServer是参考了live555和jrtplib实现的,但代码全部是重新书写的,所以不依赖于任何第三方库即可编译和运行, 目前仅支持h264和G711格式,这是rtp打包时决定的,后续将不断 ...

  4. 流媒体协议之RTSP客户端的实现20171014

    RtspClient是基于jrtplib实现的,目前仅支持h264格式,后续将不断迭代优化,加入对其他格式的支持,并且将实现RTSP的服务端. RtspClient的功能是接收服务端过来流,然后写入到 ...

  5. 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)

    RTP           参考文档 RFC3550/RFC3551 Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议.RTP协议详细 ...

  6. [转]流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)

    [转]流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls) http://blog.csdn.net/tttyd/article/details/12032357 RTP       ...

  7. 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls

    http://blog.csdn.net/tttyd/article/details/12032357 RTP           参考文档 RFC3550/RFC3551 Real-time Tra ...

  8. 网络流媒体协议的联系与区别(RTP RTCP RTSP RTMP HLS)

    目录 网络流媒体协议的联系与区别(RTP RTCP RTSP RTMP HLS) 简结 RTP RTCP RTSP 区别与联系 RTSP.RTMP.HLS 区别与联系 关于直播 流媒体各协议层次图 基 ...

  9. Golang开源流媒体服务器(RTMP/RTSP/HLS/FLV等协议)

    一. lal 简介 lal是开源直播流媒体网络传输项目,主要由三部分组成: lalserver:流媒体转发服务器.类似于nginx-rtmp-module等服务,但支持更多的协议,提供更丰富的功能. ...

随机推荐

  1. GB2312简体中文编码表

    GB2312简体中文编码表 code +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F A1A0 . . · ˉ ˇ ¨ " 々 — - | … ...

  2. 简单Gif制作

    没什么需求,只是循环图片的推荐:http://gif.55.la/ ,在线制作,无需下载

  3. vim多行注释与取消

    神操作 在vim中编写代码,常常会遇到多行注释和取消注释的情况,在VS中我们可以用默认的快捷键或者在设置中自定义快捷键来解决这个问题. vim既然这么强大,必然也是有快捷键来完成的.下面给出具体步骤: ...

  4. AlphaGo:用机器学习技术古老的围棋游戏掌握AlphaGo: Mastering the ancient game of Go with Machine Learning

    AlphaGo: Mastering the ancient game of Go with Machine Learning Posted by David Silver and Demis Has ...

  5. 学会了 Vim 还有必要用 GitHub Atom 或者 Sublime Text 么?

    亦俊 ,90后,Vim 专栏作者 563 人赞同 Vim 知乎专栏:http://zhuanlan.zhihu.com/hack-vim 用过 [ Visual Studio 2015 ] [ Sub ...

  6. iOS: 转载CoreData数据库框架

    iphone-CoreData的使用详解 一.概念 1.Core Data 是数据持久化存储的最佳方式 2.数据最终的存储类型可以是:SQLite数据库,XML,二进制,内存里,或自定义数据类型 在M ...

  7. 关于一道面试题,使用C#实现字符串反转算法

    关于一道面试题,使用C#实现字符串反转算法. 题目见http://student.csdn.net/space.php?do=question&ac=detail&qid=490 详细 ...

  8. hybrid app开发中用到的html5新特性localStorage、sessionStorage和websql database

    近期在项目中进行hybrid app开发,项目中有大量的js代码执行在android设备上. 使用到了非常多HTML5的新特性,之前没有遇到过,不了解.这里记录下添加点前端的知识.混合式app开发中. ...

  9. TZOJ 1072: 编辑距离(动态规划)

    1072: 编辑距离 时间限制(普通/Java):1000MS/10000MS     内存限制:65536KByte 总提交: 917            測试通过:275 描写叙述 如果字符串的 ...

  10. 【Python】Python中的深浅拷贝

    [转]python 复制(拷贝)对象 -- ::| 分类: Python |举报|字号 订阅 下载LOFTER我的照片书 | 需求: 你想复制一个对象.因为在Python中,无论你把对象做为参数传递, ...