基于HTTP的直播点播HLS

  HLS(HTTP Live Streaming) 是Apple在2009年发布的,可以通过普通的web服务器进行分发的新型流媒体协议。苹果官方对于视频直播服务提出了 HLS 解决方案,该方案主要适用范围在于:

  • 使用 iPhone 、iPod touch、 iPad 以及 Apple TV 进行流媒体直播功能。(MAC 也能用)
  • 不使用特殊的服务软件进行流媒体直播。
  • 需要通过加密和鉴定(authentication)的视频点播服务。

        HLS 的目的在于,让用户可以在苹果设备(包括MAC OS X)上通过普通的网络服务完成流媒体的播放。 HLS 同时支持流媒体的直播和点播服务,也支持不同 bit 速率的多个备用流(平时根据当前网速去自适应视频的清晰度),这样客户端也好根据当前网络的带宽去只能调整当前使用的视频流。安全方面,HLS 提供了通过 HTTPS 加密对媒体文件进行加密 并 对用户进行验证,允许视频发布者去保护自己的网络。

        相对于常见的流媒体直播协议,例如RTMP协议、RTSP协议、MMS协议等,HLS直播最大的不同在于,直播客户端获取到的,并不是一个完整的数据流。HLS协议在服务器端将直播数据流存储为连续的、很短时长的媒体文件(MPEG-TS格式),而客户端则不断的下载并播放这些小文件,因为服务器端总是会将最新的直播数据生成新的小文件,这样客户端只要不停的按顺序播放从服务器获取到的文件,就实现了直播。由此基本上可以认为,HLS是以点播的技术方式来实现直播,HLS的这种技术特点,决定了它的延迟一般总是会高于普通的流媒体直播协议。

        HLS只请求基本的HTTP报文,与实时传输协议(RTP)不同,HLS可以穿过任何允许HTTP数据通过的防火墙或者代理服务器。它也很容易使用内容分发网络来传输媒体流。由于数据通过HTTP协议传输,所以完全不用考虑防火墙或者代理的问题,而且分段文件的时长很短,客户端可以很快的选择和切换码率,以适应不同带宽条件下的播放。

        苹果对于自家的 HLS 推广也是采取了强硬措施,当你的直播内容持续十分钟 或者每五分钟内超过 5 MB 大小时,你的 APP 直播服务必须采用 HLS 架构,否则不允许上架。

    服务支持

Adobe Flash Media Server:从4.5开始支持HLS、Protected HLS(PHLS)。5.0改名为Adobe Media Server

RealNetworks的 Helix Universal Server :2010年4月,版本15.0开始支持iPhone, iPad和iPod的HTTP直播、点播H.264/AAC内容,最新更新在2012年11月。

微软的IIS Media Services:从4.0开始支持HLS。

Nginx RTMP Module:支持直播模式的HLS。

VLC Media Player:从2.0开始支持直播和点播HLS。

Wowza Media Server:2009年12月9日发布2.0,开始全面支持HLS。

VODOBOX Live Server:始支持HLS。

 

 

客户端支持环境

 

Native支持

Android 3.0+

iOS 3.0+

flash支持:Adobe Flash Player从11.0开始支持HLS。

          MediaElement.js(MIT)

Flowplayer(GPL ×)

GrindPlayer(MIT)

video-js-swf(Apache License 2.0)

clappr(BSD IE10+ ×)

Windows 10 的 EDGE 浏览器开始支持HLS。

 

时间: 2024-09-17 03:45:49

基于HTTP的直播点播HLS的相关文章

基于HTTP Live Streaming(HLS) 搭建在线点播系统

1. 为何要使用 HTTP Live Streaming 可以参考wikipedia HTTP Live Streaming(缩写是 HLS)是一个由苹果公司提出的基于HTTP的流媒体 网络传输协议.是苹果公司QuickTime X和iPhone软件系统的一部分.它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些.当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率.在开始一个流媒体会话时,客户端会下载一个包

利用nginx搭建RTMP视频点播、直播、HLS服务器

开发环境 Ubuntu 14.04 server nginx-1.8.1 nginx-rtmp-module nginx的服务器的搭建 安装nginx的依赖库 sudo apt-get update sudo apt-get install libpcre3 libpcre3-dev sudo apt-get install openssl libssl-dev 配置并编译nginx 使用nginx的默认配置,添加nginx的rtmp模块.  ./configure --add-module=.

用nginx搭建http/rtmp/hls协议的MP4/FLV流媒体服务器

前前后后搭建了两三个星期,终于可以告一段落,nginx实在是有点强大.写一篇笔记来记录一下这个过程中的思路和解决方案. 一.搭建nginx平台: 基本是基于http://blog.csdn.net/xiaoliouc/article/details/8363984 一步步安装nginx搭建流媒体服务器 这篇博客来搭建. 我的ubuntu是14.04LTS.各种包的版本是: nginx-1.9.9 nginx_mod_h264_streaming-2.2.7.tar.gz openssl-0.9.

Nginx+ffmpeg的HLS开源服务器搭建配置及开发详

本文概述:           至目前为止,HLS 是移动平台上非常重要并十分流行的流媒体传输协议.做移动平台的流媒体开发,不知道它不掌握它 ,真是一大遗憾.而HLS的平台搭建有一定的难度,本文针对对该方向有一定了解的朋友,将方案实施中的一些细节和流程进行分享交流.本文介绍了,使用开源服务器nginx 搭建 HLS 服务比较详细的方案.测试使用 VLC以及JWPlayer播放.交流邮箱leoluopy@gmail.com,本文出自CSDN-固本培元.转载请注明出处. 切片器:          

关于UCloud直播云所有技术细节都在这里了(二)

上篇我们讲述了如何让直播内容以"最短"路径从主播到观众上,传输层面获得最低延迟,在本篇中我们会介绍直播应用层协议及传输层协议的选择以及对直播体验影响的分析 . 直播协议选择 国内常见公开的直播协议有几个:RTMP.HLS.HDL(HTTP-FLV).RTP,我们来逐一介绍. RTMP协议:是Adobe的专利协议,现在大部分国外的CDN已不支持.在国内流行度很高.原因有几个方面:1.开源软件和开源库的支持稳定完整.如斗鱼主播常用的OBS软件,开源的librtmp库,服务端有nginx-r

淘宝直播技术分享:如何打造体验优秀的“直播+”产品?

2016年是移动直播爆发年,不到半年的时间内无数移动直播App掀起了全民直播的热潮.很多不同产品都在自己的应用里面增加了直播模块,希望能趁着这波移动直播的风潮能快速推进自己的产品.而在电商类的APP中,淘宝率先在手机直播里面试水电商直播,并用实际的数据证明了这是一种非常具备前景的新模式. 本文将重点介绍淘宝直播在业务模式上的探索.移动直播背后的技术难点.优化用户体验等方面的内容.主要内容出自阿里巴巴高级技术专家陈举锋(丰火)在2016杭州云栖大会上的分享. 淘宝直播的产品探索 淘宝直播项目,于2

如何使用OSS RTMP功能直播/鉴黄?

概述 音视频直播平台如何实现数据存储?视频监管及风控需求如何满足?直播视频/图片内容如何自动审核?视频监控行业如何降低视频数据存储成本?为了方便直播/监控用户使用OSS来存储音视频数据,OSS近期推出了RTMP收流功能.用户可以直接用RTMP协议将音视频数据上传到OSS. OSS LiveChannel介绍 LiveChannel是OSS为了管理RTMP推流新增的概念:LiveChannel即直播频道,用来保存推流配置,获取推流状态等:直播频道从属于bucket,一个用户可以在bucket中创建

中国电信基于Mesos+Docker的运维自动化在CDN中的实践

本文讲的是中国电信基于Mesos+Docker的运维自动化在CDN中的实践[编者的话]本次分享将讲解容器技术在CDN系统中的应用,包括应用的容器化,使用Mesos.Marathon.ZooKeeper对线上业务的快速部署.升级.回滚以及Docker在研发测试环境中的实践.在引入Docker技术之后,CDN不同角色的服务部署在一个物理服务器,资源利用率明显提高,另外应用都可以一键部署,运维工作量明显减少. 大家好,我是中国电信云公司CDN运营中心的张其栋,今天跟大家分享的题目是<中国电信基于Mes

nginx RTMP FFmpeg 视频直播

/**************************************************************************** * nginx RTMP FFmpeg 视频直播 * 说明: * 主要是为了体验一下怎么搭建一整套的RTMP直播流,用USB Camera进行视频数据 * 采集,然后推送到nginx RTMP服务端,实现实时视频传输,主要是为了体验一把,目 * 前并没有打算进行更深入层面的测试.解析,记录参考文档,主要参考文档1. * * 2017-3-2