视频中常用的HLS(m3u8)协议分析
视频中常用的HLS(m3u8)协议分析
HLS 全称是 HTTP Live Streaming,是 Apple 提出的流媒体协议,苹果官方的介绍是这样的子的:
HTTP Live Streaming
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.
使用来自苹果的HTTP直播流媒体技术,可以向iPhone、iPad、Mac、Apple TV和PC发送实时的音频和视频信息流。使用与Web相同的协议,HLS允许您使用普通Web服务器和内容传递网络来部署内容。HLS是为可靠性而设计的,并且通过优化有线和无线连接的可用速度的回放来动态地适应网络条件。
HLS(m3u8)协议
HLS 对言的文件格式是 .m3u8 文件及对应的 .ts 播放文件,即服务器端会有一份 .m3u8 文件和其它很多的 .ts 文件,说得简单好理解一些是这样,m3u8文件是一个索引文件,ts为实际的播放内容。
好了,上一个m3u8实例:
- <video controls autoplay>
- <source src="http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8" type="application/vnd.apple.mpegurl" />
- <p class="warning">Your browser does not support HTML5 video.</p>
- </video>
内容:
- #EXT-X-VERSION:3 PlayList 的版本,可带可不带。下面有说明
- #EXTM3U m3u文件头
- #EXT-X-TARGETDURATION:10 分片最大时长,单位为 s
- #EXT-X-MEDIA-SEQUENCE:1 第一个TS分片的序列号,如果没有,默认为 0
- #EXT-X-ALLOW-CACHE 是否允许cache
- #EXT-X-ENDLIST m3u8文件结束符
- #EXTINF 指定每个媒体段(ts)的持续时间(秒),仅对其后面的URI有效
视频中常用的HLS(m3u8)协议分析
热门文章推荐
- 10款html5网页播放器推荐(总有一款适合你)
- [html5]html5+css3实现图片斜角切成直角梯形显示的源代码
- [HTML5]HTML5视频video时间事件代码
- [微信]iOS苹果和微信中音频和视频实现自动播放的方法
- [html5]html5视频全屏实现的源代码
- [Html5]mobile-agent移动Agent,就是具有移动性的智能Agent
- [html5]视频播放器js控制vedio视频和分段播放
- [html5]H5播放器:竖屏播放\横屏播放\跟随旋转例子