HLS(HTTP Live Streaming)学习和探讨
Introduction
HTTP Live Streaming lets you send audio and video over HTTP from an ordinary web server for playback on iOS-based devices—including iPhone, iPad, iPod touch, and Apple TV—and on desktop computers (Mac OS X). HTTP Live Streaming supports both live broadcasts and prerecorded content (video on demand). HTTP Live Streaming supports multiple alternate streams at different bit rates, and the client software can switch streams intelligently as network bandwidth changes. HTTP Live Streaming also provides for media encryption and user authentication over HTTPS, allowing publishers to protect their work.
Send live and on‐demand audio and video to iPhone, iPad, Mac, Apple TV, and PC with HTTP Live Streaming (HLS) technology from Apple. Using the same protocol that powers the web, HLS lets you deploy content using ordinary web servers and content delivery networks. HLS is designed for reliability and dynamically adapts to network conditions by optimizing playback for the available speed of wired and wireless connections.
Points
Resources
- http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/sl.m3u8
- http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8
- http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8
- http://devimages.apple.com/iphone/samples/bipbop/gear2/prog_index.m3u8
- http://devimages.apple.com/iphone/samples/bipbop/gear3/prog_index.m3u8
- http://devimages.apple.com/iphone/samples/bipbop/gear4/prog_index.m3u8
- http://playertest.longtailvideo.com/adaptive/oceans_aes/oceans_aes.m3u8
(AES encrypted) - http://playertest.longtailvideo.com/adaptive/captions/playlist.m3u8
(HLS stream with CEA-608 captions) - http://playertest.longtailvideo.com/adaptive/wowzaid3/playlist.m3u8
(with metadata) - http://content.jwplatform.com/manifests/vM7nH0Kl.m3u8
- http://cdn-fms.rbs.com.br/hls-vod/sample1_1500kbps.f4v.m3u8
- http://cdn-fms.rbs.com.br/vod/hls_sample1_manifest.m3u8
- http://vevoplaylist-live.hls.adaptive.level3.net/vevo/ch1/appleman.m3u8
(LIVE TV) - http://vevoplaylist-live.hls.adaptive.level3.net/vevo/ch2/appleman.m3u8
(LIVE TV) - http://vevoplaylist-live.hls.adaptive.level3.net/vevo/ch3/appleman.m3u8
(LIVE TV) - https://dl.dropboxusercontent.com/u/7303267/website/m3u8/index.m3u8
(VOD) - [updated] - http://content.jwplatform.com/manifests/vM7nH0Kl.m3u8
(link protection, video not encrypted) - http://sample.vodobox.net/skate_phantom_flex_4k/skate_phantom_flex_4k.m3u8
(4K) - http://cdn3.viblast.com/streams/hls/airshow/playlist.m3u8
(4K) - http://osmfhls.kutu.ru/static/vod/sl_vod.m3u8
- http://walterebert.com/playground/video/hls/sintel-trailer.m3u8
Session Types
The HTTP Live Streaming protocol supports two types of sessions: events (live broadcasts) and video on demand (VOD).
VOD Sessions
For VOD sessions, media files are available representing the entire duration of the presentation. The index file is static and contains a complete list of all files created since the beginning of the presentation. This kind of session allows the client full access to the entire program.
VOD can also be used to deliver “canned” media. HTTP Live Streaming offers advantages over progressive download for VOD, such as support for media encryption and dynamic switching between streams of different data rates in response to changing connection speeds. (QuickTime also supports multiple-data-rate movies using progressive download, but QuickTime movies do not support dynamically switching between data rates in mid-movie.)
Live Sessions
Live sessions (events) can be presented as a complete record of an event, or as a sliding window with a limited time range the user can seek within.
For live sessions, as new media files are created and made available, the index file is updated. The new index file lists the new media files. Older media files can be removed from the index and discarded, presenting a moving window into a continuous stream—this type of session is suitable for continuous broadcasts. Alternatively, the index can simply add new media files to the existing list—this type of session can be easily converted to VOD after the event completes.
It is possible to create a live broadcast of an event that is instantly available for video on demand. To convert a live broadcast to VOD, do not remove the old media files from the server or delete their URLs from the index file; instead, add an #EXT-X-ENDLIST tag to the index when the event ends. This allows clients to join the broadcast late and still see the entire event. It also allows an event to be archived for rebroadcast with no additional time or effort.
If your playlist contains an EXT-X-PLAYLIST-TYPE tag, you should also change the value from EVENT to VOD.
Notes
HLS isn't supported by all the clients you listed. It is supported by iPad and android >= 3.0, but not supported by IE9 or Chrome. For HLS, you need a MPEG2TS with MPEG4-AVC(h.264) and AAC as the video and audio codecs. The ts stream needs to be segmented with a tool like this.
You might want to look into providing just a progressive stream instead of HLS. That should be supported by html5 in IE9 and Chrome. As for video format, you'll need and MPEG4 container with AVC(h.264) and AAC.
References
- HTTP Live Streaming By Apple
- HTTP Live Streaming Overview
- CROSS BROWSER SUPPORT FOR HTTP Live Streaming
- ietf - HTTP Live Streaming draft-pantos-http-live-streaming-19
- Using HTTP Live Streaming
- Vod Url
- Event Url
- HTTP Live Streaming Examples
- HLS streaming video URL Need for testing
Gift
巴黎酒店初学者 - 来自法国的浪漫爱情虐心剧
迅雷下载
在线播放
HLS(HTTP Live Streaming)学习和探讨的更多相关文章
- 基于HLS(HTTP Live Streaming)的视频直播分析与实现
转自:http://www.cnblogs.com/haibindev/archive/2013/01/30/2880764.html HLS(HTTP Live Streaming)的分析: HTT ...
- What Is HLS (HTTP Live Streaming)?
HTTP Live Streaming (HLS) Executive Summary HTTP Live Streaming (or HLS) is an adaptive streaming c ...
- 将视频转换为 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/_ ...
- 调用Live555接收RTSP直播流,转换为Http Live Streaming(iOS直播)协议
Live555接收RTSP直播流,转换Http Live Streaming(iOS直播)协议 RTSP协议也是广泛使用的直播/点播流媒体协议,之前实现过一个通过live555接收RTSP协议,然后转 ...
- iOS 视频开发学习
原文:浅谈iOS视频开发 这段时间对视频开发进行了一些了解,在这里和大家分享一下我自己觉得学习步骤和资料,希望对那些对视频感兴趣的朋友有些帮助. 一.iOS系统自带播放器 要了解iOS视频开发,首先我 ...
- 5分钟spark streaming实践之 与kafka联姻
你:kafka是什么? 我:嗯,这个嘛..看官网. Apache Kafka® is a distributed streaming platform Kafka is generally used ...
- [Hadoop] Hadoop学习历程 [持续更新中…]
1. Hadoop FS Shell Hadoop之所以可以实现分布式计算,主要的原因之一是因为其背后的分布式文件系统(HDFS).所以,对于Hadoop的文件操作需要有一套全新的shell指令来完成 ...
随机推荐
- JS null问题
在学习getElementById()方法的过程中出现了这样一个问题,便想记录下来. 分析问题之前,我们最好还是先来认识一下getElementById()方法.getElementById()方法, ...
- Java8学习之旅2---基于Lambda的JDBC编程
Java8的Lambda表达式确实是一个很好的特性.可是在哪些场合下使用.事实上还是须要细致考虑的.我们当然不能为了使用而使用,而是须要找到切实实用的场合.在JDBC编程中,比如查询语句,首先须要进行 ...
- 日志报错Can't add self as subview
#pragma mark- add 20151112 导航动画时间太短导致崩溃,重写UINavigationcontroller以下相关方法 - (id)navigationLock; ///< ...
- HTML5物理游戏开发 - 越野山地自行车(三)粉碎自行车
自上一章公布到如今已时隔四月,实在对不住大家.让大家久等了~话说不是我不关注我的博客,而是事情一多起来写博客的时间就少了. 待到今日有空了,回头看了看自己曾经写的文章,猛得发现已经四个月不曾写文章了. ...
- [React Native] Installing and Linking Modules with Native Code in React Native
Learn to install JavaScript modules that include native code. Some React Native modules include nati ...
- 小强的HTML5移动开发之路(30)—— JavaScript回顾5
一.查找 第一种方式:依据id查找 var obj = document.getElementById(id); //document是HTMLDocument的实例 <html> & ...
- AJAX代码格式
var request; //XMLHttpRequest的创建 function createRequest(url){ if(window.XMLHttpRequest){ request = n ...
- spring boot jar 部署linux服务器
用命令启动spring boot 项目,一旦终端命令窗口关闭,项目也就关闭了,所以我们采用脚本的方式来运行jar 正常命令 java -jar xxx.jar 脚本启动,vim 创建 start.sh ...
- Cocos2d-x 3.1.1 Lua演示样例 ActionManagerTest(动作管理)
Cocos2d-x 3.1.1 Lua演示样例 ActionManagerTest(动作管理) 本篇博客介绍Cocos2d-x的动作管理样例,这个样例展示了Cocos2d-x的几个动作: MoveTo ...
- ASP.NET Core框架的本质
源文章地址:http://www.cnblogs.com/artech/p/inside-asp-net-core-framework.html 1.从Hello World谈起 当我们最开始学习一门 ...