偃师网站,wordpress绝对路径图片不显示,wordpress 中文论坛,蓝色系 网站1.协议简介2.工作原理2.1总体架构2.2 优势及劣势2.3 M3U8简介2.3.1 tag说明2.3.2 常用tag详解 1.协议简介
HLS全称为HTTP Live Streaming#xff0c;是苹果公司提出的基于HTTP的流媒体网络传输协议。它的工作原理是把整个媒体流分成一个个小的基于HTTP的媒体分片来下载#… 1.协议简介2.工作原理2.1总体架构2.2 优势及劣势2.3 M3U8简介2.3.1 tag说明2.3.2 常用tag详解 1.协议简介
HLS全称为HTTP Live Streaming是苹果公司提出的基于HTTP的流媒体网络传输协议。它的工作原理是把整个媒体流分成一个个小的基于HTTP的媒体分片来下载每次只下载一些分片。在开始一个流媒体会话时客户端会下载一个包含媒体分片的索引文件即extended M3U playlist文件(m3u8)用于寻找可用的媒体分片。
HLS中索引文件可以嵌套一般只有一级索引和二级索引媒体流封分片装格式只支持MPEG-2传输流ts、WebVTT [WebVTT]文件或Packed Audio文件。
下图为索引文件m3u8和媒体分片ts之间的关系图一级m3u8嵌套二级m3u8二级m3u8描述ts分片。 2.工作原理
2.1总体架构 1、 服务器将媒体文件转换为m3u8及ts分片对于直播源服务器需要实时动态更新。 2、 客户端请求m3u8文件根据索引获取ts分片点播与直播服务器不同的地方是 直播的 m3u8 文件会不断更新而点播的 m3u8 文件是不会变的只需要客户端在开始时请求一次即可。
客户端与服务器通过HTTP协议进行交互以两级m3u8嵌套为例客户端先GET请求到一级m3u8一级m3u8里面包含了服务器端可以用于传播的一个或多个不同带宽的URL这URL可以获取到二级m3u8二级m3u8包含了多个ts分片的duration及其URL最后带过这个URL下载ts分片。交互方式如下
2.2 优势及劣势
优势
客户端支持简单只需要支持 HTTP 请求即可HTTP 协议无状态只需要按顺序下载媒体片段即可。使用 HTTP 协议网络兼容性好HTTP 数据包也可以方便地通过防火墙或者代理服务器。当媒体流正在播放时客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源允许流媒体会话适应不同的数据速率。
劣势
因其自身的实现方式HLS存在延迟最少有一个分片对于直播等实时敏感的场景体验不好。
2.3 M3U8简介
HLS协议很大一部分内容即是对M3U8文本协议的描述。M3U8即播放索引文件也称为Playlist是由多个独立行组成的文本文件必须通过 URI(.m3u8 或 .m3u) 或者 HTTP Content-Type 来识别(application/vnd.apple.mpegurl 或 audio/mpegurl)。
每行由用 \n 或者 \r\n来标识换行。每一行可以是一个URI、空白行或是一个 以# 号开头的字符串。
以 # 开头的是 tag 或者注释以 #EXT 开头的是 tag 其余的为注释 在解析时应该忽略。URI 表示一个ts分片地址或是Playlist地址。URI 可以用绝对地址或者相对地址如果使用相对地址那么是相对于当前Playlist的地址。 有些tag带有属性值多个属性用逗号分隔。 常见的m3u8文件如下所示 一级m3u8
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID1,BANDWIDTH700000
http://gslbserv.itv.cmvideo.cn/index.m3u8?channel-idbstvodContentid4007432528authCode08210410332183529120stbId009903FF0002288018189C62AB5407DBusergroupg10000000001userTokended7cd85837b64937de618db3e10553310vv
#EXT-X-STREAM-INF:PROGRAM-ID1,BANDWIDTH1300000
http://gslbserv.itv.cmvideo.cn/index.m3u8?channel-idbstvodContentid4007432527authCode08210410332183529120stbId009903FF0002288018189C62AB5407DBusergroupg10000000001userTokended7cd85837b64937de618db3e10553310vv
#EXT-X-STREAM-INF:PROGRAM-ID1,BANDWIDTH2300000
http://gslbserv.itv.cmvideo.cn/index.m3u8?channel-idbstvodContentid4007432526authCode08210410332183529120stbId009903FF0002288018189C62AB5407DBusergroupg10000000001userTokended7cd85837b64937de618db3e10553310vv二级m3u8
#EXTM3U
#EXT-X-VERSION:1
#EXT-X-TARGETDURATION:11
#EXT-X-MEDIA-SEQUENCE:19674922
#EXT-X-PROGRAM-DATE-TIME:2019-03-28T04:33:40Z
#EXTINF:10
19674922.ts?
#EXT-X-PROGRAM-DATE-TIME:2019-03-28T04:33:50Z
#EXTINF:10
19674923.ts?
#EXT-X-PROGRAM-DATE-TIME:2019-03-28T04:34:00Z
#EXTINF:10
19674924.ts?音视频分离m3u8示例1
#EXTM3U
#EXT-X-MEDIA:TYPEAUDIO,GROUP-IDaac,NAMEEnglish, \
DEFAULTYES,AUTOSELECTYES,LANGUAGEen, \
URImain/english-audio.m3u8
#EXT-X-MEDIA:TYPEAUDIO,GROUP-IDaac,NAMEDeutsch, \
DEFAULTNO,AUTOSELECTYES,LANGUAGEde, \
URImain/german-audio.m3u8
#EXT-X-MEDIA:TYPEAUDIO,GROUP-IDaac,NAMECommentary, \
DEFAULTNO,AUTOSELECTNO,LANGUAGEen, \
URIcommentary/audio-only.m3u8
#EXT-X-STREAM-INF:BANDWIDTH1280000,CODECS...,AUDIOaac
low/video-only.m3u8
#EXT-X-STREAM-INF:BANDWIDTH2560000,CODECS...,AUDIOaac
mid/video-only.m3u8
#EXT-X-STREAM-INF:BANDWIDTH7680000,CODECS...,AUDIOaac
hi/video-only.m3u8
音视频分离m3u8示例2
#EXTM3U
#EXT-X-MEDIA:TYPEVIDEO,GROUP-IDlow,NAMEMain, \
DEFAULTYES,URIlow/main/audio-video.m3u8
#EXT-X-MEDIA:TYPEVIDEO,GROUP-IDlow,NAMECenterfield, \
DEFAULTNO,URIlow/centerfield/audio-video.m3u8
#EXT-X-MEDIA:TYPEVIDEO,GROUP-IDlow,NAMEDugout, \
DEFAULTNO,URIlow/dugout/audio-video.m3u8
#EXT-X-STREAM-INF:BANDWIDTH1280000,CODECS...,VIDEOlow
low/main/audio-video.m3u8
#EXT-X-MEDIA:TYPEVIDEO,GROUP-IDmid,NAMEMain, \
DEFAULTYES,URImid/main/audio-video.m3u8
#EXT-X-MEDIA:TYPEVIDEO,GROUP-IDmid,NAMECenterfield, \
DEFAULTNO,URImid/centerfield/audio-video.m3u8
#EXT-X-MEDIA:TYPEVIDEO,GROUP-IDmid,NAMEDugout, \
DEFAULTNO,URImid/dugout/audio-video.m3u8
#EXT-X-STREAM-INF:BANDWIDTH2560000,CODECS...,VIDEOmid
mid/main/audio-video.m3u8
#EXT-X-MEDIA:TYPEVIDEO,GROUP-IDhi,NAMEMain, \
DEFAULTYES,URIhi/main/audio-video.m3u8
#EXT-X-MEDIA:TYPEVIDEO,GROUP-IDhi,NAMECenterfield, \
DEFAULTNO,URIhi/centerfield/audio-video.m3u8
#EXT-X-MEDIA:TYPEVIDEO,GROUP-IDhi,NAMEDugout, \
DEFAULTNO,URIhi/dugout/audio-video.m3u8
#EXT-X-STREAM-INF:BANDWIDTH7680000,CODECS...,VIDEOhi
hi/main/audio-video.m3u8
2.3.1 tag说明
名词说明 1、 Media Playlist携带ts分片url的m3u8 2、 Master Playlist一级m3u8 3、 Media Segmentts分片 4、 Attribute Lists属性列表
Attribute Lists • 有的 tags 的值带有 Attribute Lists。 • 一个 Attribute List是一个用逗号分隔的 attribute/value 对列表。 • 格式为: AttributeNameAttributeValue。 tag以#EXT开头主要分为以下几类
1 Basic Tags
Basic Tags 可以用在 Media Playlist 和 Master Playlist 里面。 • EXTM3U: 必须在文件的第一行 标识是一个 Extended M3U Playlist 文件。 • EXT-X-VERSION: 表示 Playlist 兼容的版本。 2 Media Segment Tags 每一个 Media Segment 通过一系列的 Media Segment tags 跟一个 URI 来指定。有的 Media Segment tags 只应用于下一个 segment 有的则是应用所有下面的 segments。 一个 Media Segment tag 只能出现在 Media Playlist 里面。 • EXTINF: 用于指定 Media Segment 的 duration。 • EXT-X-BYTERANGE: 用于指定 URI 的 sub-range。 • EXT-X-DISCONTINUITY: 表示后续分片属性发生变化如文件格式/编码/序号。 • EXT-X-KEY: 表示Media Segment 已加密该值用于解密。 • EXT-X-MAP: 表示Media Segment的头部信息比如PAT/PMT 或者WebVTT头。 • EXT-X-PROGRAM-DATE-TIME: 和 Media Segment 的第一个sample一起来确定时间戳。 3Media Playlist Tags Media Playlist tags 描述 Media Playlist 的全局参数。 同样地 Media Playlist tags 只能出现在 Media Playlist 里面。 • EXT-X-TARGETDURATION: 用于指定最大的 Media Segment duration。 • EXT-X-MEDIA-SEQUENCE: 用于指定第一个 Media Segment 的序号。 • EXT-X-DISCONTINUITY-SEQUENCE: 用于不同 Variant Stream 之间同步。 • EXT-X-ENDLIST: 表示Media Playlist结束。 • EXT-X-PLAYLIST-TYPE: 可选 指定整个 Playlist 的类型。 • EXT-X-I-FRAMES-ONLY: 表示每个 Media Segment 均为I-frame。 4Master Playlist Tags Master Playlist tags 定义 Variant Streams Renditions 和其他显示的全局参数。 Master Playlist tags 只能出现在 Master Playlist 中。 • EXT-X-MEDIA: 用于关联同一个内容的多个 Media Playlist 的多种翻译。 • EXT-X-STREAM-INF:用于指定下级Media Playlist相关属性。 • EXT-X-I-FRAME-STREAM-INF:与EXT-X-STREAM-INF类似但指向的下级Media Playlist包含Media Segment均为I-frame。 • EXT-X-SESSION-DATA: 可以随意存放一些 session 数据。 5 Media or Master Playlist Tags 这里的 tags 可以出现在 Media Playlist 或者 Master Playlist 中。 但是如果同时出现在同一个 Master Playlist 和 Media Playlist 中时 必须为相同值。 • EXT-X-INDEPENDENT-SEGMENTS: 表示每个 Media Segment 可以独立解码。 • EXT-X-START: 标识一个优选的点来播放这个 Playlist。 2.3.2 常用tag详解
更加详细的描述请参考HLS官方文档。
#EXTM3U 每个M3U文件第一行必须是这个tag。#EXTINF
格式#EXTINF:durationtitle
URI指定每个ts分片的时长这个仅对其后面的URI有效每两个媒体段URI间被这个tag分隔开。
duration表示时长秒必须是整数如果版本在3以上可以是浮点数。
URI表示该ts分片下载地址#EXT-X-TARGETDURATION
格式#EXT-X-TARGETDURATION:s
s指定最大的媒体段时间长秒。#EXTINF中指定的时间长度必须小于或是等于这个最大值。
这个tag在整个PlayList文件中只能出现一次在嵌套的情况下一般有真正ts url的m3u8才会出现该tag。#EXT-X-MEDIA-SEQUENCE
格式#EXT-X-MEDIA-SEQUENCE:number
number表示PlayList中第一个分片开始的序号其他分片序号按此逐步加1
#EXT-X-ENDLIST 表示PlayList的末尾了它可以在PlayList中任意位置出现但是只能出现一个。直播节目不具有此tag一般用此tag来区分是否为直播节目。#EXT-X-STREAM-INF 指定一个包含多媒体信息的 media URI 作为PlayList一般做M3U8的嵌套使用它只对紧跟后面的URI有效。
格式
#EXT-X-STREAM-INF:attribute-list
URI
URI指定下级m3u8下载地址。
attribute-list为属性描述
有以下属性
BANDWIDTH带宽必须有。
PROGRAM-ID该值是一个十进制整数惟一地标识一个在PlayList文件范围内的特定的描述。一个PlayList 文件中可能包含多个有相同ID的此tag。
CODECS不是必须的。
RESOLUTION分辨率。
AUDIO这个值必须和AUDIO类别的“EXT-X-MEDIA”标签中“GROUP-ID”属性值相匹配。
VIDEO同上#EXT-X-MEDIA 被用来在PlayList中表示相同内容的不用语种/译文的版本比如可以通过使用3个这种tag表示3中不用语音的音频或者用2个这个tag表示不同角度的video在PlayLists中。
格式#EXT-X-MEDIA:attribute-list
attribute-list为属性描述包含URI、TYPE、GROUP-ID、LANGUAGE、NAME、DEFAULT、AUTOSELECT。
URI如果没有则表示这个tag描述的可选择版本在主PlayList的EXT-X-STREAM-INF中存在;
TYPE:AUDIO或VIDEO;
GROUP-ID:具有相同ID的MEDIA tag组成一组样式
LANGUAGE确定使用的主要语言
NAME对当前类型的描述如果存在LANGUAGE则改属性必须描述LANGUAGE指定的语言。
DEFAULTYES或是NO默认是No如果是YES则客户端会以这种选项来播放除非用户自己进行选择。
AUTOSELECTYES或是NO默认是No如果是YES则客户端会根据当前播放环境来进行选择用户没有根据自己偏好进行选择的前提下。
#EXT-X-PROGRAM-DATE-TIME 将一个绝对时间或是日期和一个媒体段中的第一个sample相关联只对下一个meida URI有效格式如下
#EXT-X-PROGRAM-DATE-TIME:YYYY-MM-DDThh:mm:ssZ
例如:
#EXT-X-PROGRAM-DATE-TIME:2019-03-26T10:09:10Z#EXT-X-BYTERANGE 表示媒体段是一个媒体URI资源中的一段只对其后的media URI有效
格式#EXT-X-BYTERANGE:n[o]
n表示这个区间的大小
[o]表在URI中的offset
该tag只在V4及以后的版本生效#EXT-X-KEY 表示怎么对media segments进行解码。其作用范围是下次该tag出现前的所有media URI
格式#EXT-X-KEY:attribute-list
attribute-listNONE 或者 AES-128。如果是NONE则URI以及IV属性必须不存在如果是AES-128(Advanced Encryption Standard)则URI必须存在IV可以不存在。对于AES-128的情况keytag和URI属性共同表示了一个key文件通过URI可以获得这个key如果没有IVInitialization Vector则使用序列号作为IV进行编解码将序列号的高位赋到16个字节的buffer中左边补0如果有IV则将改值当成16个字节的16进制数。
文章转载自: http://www.morning.lbxcc.cn.gov.cn.lbxcc.cn http://www.morning.xsymm.cn.gov.cn.xsymm.cn http://www.morning.smdnl.cn.gov.cn.smdnl.cn http://www.morning.qhmql.cn.gov.cn.qhmql.cn http://www.morning.tqdlk.cn.gov.cn.tqdlk.cn http://www.morning.nbgfk.cn.gov.cn.nbgfk.cn http://www.morning.yhwxn.cn.gov.cn.yhwxn.cn http://www.morning.rwzqn.cn.gov.cn.rwzqn.cn http://www.morning.rkzb.cn.gov.cn.rkzb.cn http://www.morning.tsynj.cn.gov.cn.tsynj.cn http://www.morning.hcsqznn.cn.gov.cn.hcsqznn.cn http://www.morning.qnzk.cn.gov.cn.qnzk.cn http://www.morning.krjrb.cn.gov.cn.krjrb.cn http://www.morning.mhpkz.cn.gov.cn.mhpkz.cn http://www.morning.sgcdr.com.gov.cn.sgcdr.com http://www.morning.rywr.cn.gov.cn.rywr.cn http://www.morning.xxrwp.cn.gov.cn.xxrwp.cn http://www.morning.wscfl.cn.gov.cn.wscfl.cn http://www.morning.nllst.cn.gov.cn.nllst.cn http://www.morning.dpnhs.cn.gov.cn.dpnhs.cn http://www.morning.kmcby.cn.gov.cn.kmcby.cn http://www.morning.wjdgx.cn.gov.cn.wjdgx.cn http://www.morning.gwwtm.cn.gov.cn.gwwtm.cn http://www.morning.jlmrx.cn.gov.cn.jlmrx.cn http://www.morning.yqqxj26.cn.gov.cn.yqqxj26.cn http://www.morning.ljhnn.cn.gov.cn.ljhnn.cn http://www.morning.mmsf.cn.gov.cn.mmsf.cn http://www.morning.pggkr.cn.gov.cn.pggkr.cn http://www.morning.ryxbz.cn.gov.cn.ryxbz.cn http://www.morning.tsdjj.cn.gov.cn.tsdjj.cn http://www.morning.fbmzm.cn.gov.cn.fbmzm.cn http://www.morning.sjwzz.cn.gov.cn.sjwzz.cn http://www.morning.wchcx.cn.gov.cn.wchcx.cn http://www.morning.jzxqj.cn.gov.cn.jzxqj.cn http://www.morning.kxwsn.cn.gov.cn.kxwsn.cn http://www.morning.mfsxd.cn.gov.cn.mfsxd.cn http://www.morning.jfmyt.cn.gov.cn.jfmyt.cn http://www.morning.ldsgm.cn.gov.cn.ldsgm.cn http://www.morning.bpmtq.cn.gov.cn.bpmtq.cn http://www.morning.rzjfn.cn.gov.cn.rzjfn.cn http://www.morning.nnykz.cn.gov.cn.nnykz.cn http://www.morning.kmwbq.cn.gov.cn.kmwbq.cn http://www.morning.wlbwp.cn.gov.cn.wlbwp.cn http://www.morning.nqbpz.cn.gov.cn.nqbpz.cn http://www.morning.nqfxq.cn.gov.cn.nqfxq.cn http://www.morning.jppb.cn.gov.cn.jppb.cn http://www.morning.qmzwl.cn.gov.cn.qmzwl.cn http://www.morning.kjtdy.cn.gov.cn.kjtdy.cn http://www.morning.mhnd.cn.gov.cn.mhnd.cn http://www.morning.lbssg.cn.gov.cn.lbssg.cn http://www.morning.gbpanel.com.gov.cn.gbpanel.com http://www.morning.nfzzf.cn.gov.cn.nfzzf.cn http://www.morning.kmkpm.cn.gov.cn.kmkpm.cn http://www.morning.xfxnq.cn.gov.cn.xfxnq.cn http://www.morning.gwsll.cn.gov.cn.gwsll.cn http://www.morning.yrhd.cn.gov.cn.yrhd.cn http://www.morning.gybnk.cn.gov.cn.gybnk.cn http://www.morning.ypfw.cn.gov.cn.ypfw.cn http://www.morning.plydc.cn.gov.cn.plydc.cn http://www.morning.fnywn.cn.gov.cn.fnywn.cn http://www.morning.fhkr.cn.gov.cn.fhkr.cn http://www.morning.wnjbn.cn.gov.cn.wnjbn.cn http://www.morning.sqlh.cn.gov.cn.sqlh.cn http://www.morning.qpnmd.cn.gov.cn.qpnmd.cn http://www.morning.kjtdy.cn.gov.cn.kjtdy.cn http://www.morning.dtmjn.cn.gov.cn.dtmjn.cn http://www.morning.jtybl.cn.gov.cn.jtybl.cn http://www.morning.ckwxs.cn.gov.cn.ckwxs.cn http://www.morning.sfgzx.cn.gov.cn.sfgzx.cn http://www.morning.ljzqb.cn.gov.cn.ljzqb.cn http://www.morning.kfwqd.cn.gov.cn.kfwqd.cn http://www.morning.rpwck.cn.gov.cn.rpwck.cn http://www.morning.fhtbk.cn.gov.cn.fhtbk.cn http://www.morning.dxgt.cn.gov.cn.dxgt.cn http://www.morning.dhdzz.cn.gov.cn.dhdzz.cn http://www.morning.mkrqh.cn.gov.cn.mkrqh.cn http://www.morning.rfwqt.cn.gov.cn.rfwqt.cn http://www.morning.ygth.cn.gov.cn.ygth.cn http://www.morning.stflb.cn.gov.cn.stflb.cn http://www.morning.cykqg.cn.gov.cn.cykqg.cn