HLS科普5 播放列表

1.播放列表必须是扩展的M3U文件,该文档通过定义新的标签扩展了m3u文件的格式。M3U播放列表是一个文本文件,它包含了各自独立的行。

2.HLS的播放列表文本文件必须是UTF-8编码格式。

3.M3U播放列表是一个文本文件,它包含了各自独立的行,行以一个LF字符或者LF字符紧跟一个CR字符来结束。行可以是一个URI,空行,或者以字符#开头。空行将会被忽略。空格只能作为一行中不同元素间的分隔。

4.以注释字符#开头的行可能是注释或者标签,标签以#EXT开头,其他所有行都应该被忽略。播放列表文件的持续时间是他所指向的媒体文件的时长的总和。

5.每个媒体片段的码率的计算方式:当前媒体片段的size/当前的播放时长  单位一般为bps(一秒钟播放多少bits)该计算方法可能含有容器头(如TS包头信息等),但是不含有传输系统提供的头信息(如:HTTP, TCP 或 IP头信息)。

6.峰值码率计算:选取连续一组媒体片段的集合的最大码率(所有片段的size和/所有片段播放时长和,其中需要保证所有片段播放时长和在目标duration的0.5倍到1.5倍之间)。

7. 平均码率计算:所有媒体片段的size和/所有媒体偏度的播放时长和

8. 列表属性

    在一些特性标签中,会有一些列表属性值。列表属性名称和列表属性值会成对出现。如PROGRAM-ID=1,BANDWIDTH=1280000。并且注意:属性名称与属性值中间不能出现空格,属性之间用逗号隔开

    表示方式:属性名称1=属性值1,属性名称2=属性值2   中间用一个等号连接

     属性名称只能用"A~Z","0~9"以及"_"表示,也就是说属性名称不能出现小写字母,并且属性名称与属性值都不允许出现空格

     播放列表中某一属性只允许最多出现一次,多次的,客户端可以选择拒绝播放

     属性值解析:

     1) 十进制整数:范围是0到2^(64-1) (18446744073709551615)  也就是说最多占用20个字符空间

      2) 十六进制数字序列:表示方式0xAF098A 或者 0XAF098A  它的最大长度取决于属性名称

      3) 浮点数:必须是非负的浮点数,如 9.876

      4) 带符号位的浮点数: 如 9.876 ,负数:-9.876

      5) quoted-string : 字符串  方式 :属性名称=“xxxxx”   注意:含有引号  其中的字符不能含有"0x22" (引号)、"0x0A" (换行符)、"0x0D" (回车符)

             QuotedString和UnquotedString 区别:

              有引号字符串(QuotedString)和无引号字符串(UnquotedString)
             区别:

它们的主要区别还是体现在最终的显示上,我们平时定义一个字符串,比如说String pig = "Where is pig"; 那么pig就是一个无引号字符串(UnquotedString),别看它定义的时候用引号引着,它就是无引号字符串,因为刚才说了,有引号还是无引号是相对于最终显示来定的。

显然,pig最终的显示是这样的(没有带引号):

Where is pig 

那么如果要让pig变成有引号字符串(QuotedString)该怎么搞呢?

下面的方式肯定是不行的,编译器直接报错:      

String pig = ""Where is pig"";  
当然,是有好多方法来实现的,这里就不贴了,它最终的显示结果是这样的:
"Where is pig"

      6)枚举类型字符串:方式 :属性名称=xxxxx  注意:xxx不含有引号,逗号,以及空格

      7)宽高分辨率: 方式:属性名称= wxh  ,分别表示宽度和高度,中间用x连接,如 1920x1080  宽度为1920  高度为1080

      样例:    

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1280000
http://example.com/low.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2560000
http://example.com/mid.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000
http://example.com/hi.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=65000,CODECS="mp4a.40.5"
http://example.com/audio-only.m3u8

 

### 回答1: H5播放HLS(Hypertext Live Streaming)是指使用HTML5技术在网页中播放HLS格式的视频流。HLS是一种基于HTTP协议的流媒体传输协议,它通过将视频流分割成小的TS文件,并使用M3U8文件作为索引,实现视频的分段加载和播放。 为了在网页中实现H5播放HLS,可以使用hls.js库(hls.min.js)。hls.js是一个开源的JavaScript库,它提供了一个HLS播放器,可以在支持HTML5的浏览器中播放HLS视频。 使用hls.js库,需要在网页中引入hls.min.js文件,并创建一个Hls对象。然后,根据视频地址创建一个video元素,并将其作为参数传递给Hls对象的attachMedia方法。接下来,可以监听Hls对象的一些事件(如Hls.Events.MANIFEST_PARSED),根据需要设置一些配置选项,如自动播放、循环播放等。最后,调用Hls对象的loadSource方法并传入视频地址,开始加载并播放HLS视频。 使用hls.js库,可以实现在网页中无插件地播放HLS视频,而无需依赖Flash等第三方插件。它还提供了一些功能,如自适应码率切换、缓冲控制、清晰度切换等,来提升用户体验。总的来说,hls.js库为开发者提供了一种简单、可靠的方式来实现H5播放HLS视频的功能。 ### 回答2: h5播放HLS(HTTP Live Streaming)是一种流媒体传输协议,可以在网络不稳定或带宽较低的情况下流畅播放视频。为了实现在H5页面上播放HLS格式的视频,我们可以使用hls.min.js库。 hls.min.js是一个开源的JavaScript库,它是HLS.js的压缩版本。HLS.js是一个在Web平台上实现HLS播放的JavaScript库,它使用Media Source Extension(MSE)技术来实现HLS的解析和播放。 在使用hls.min.js之前,我们需要先在HTML页面中引入该库的脚本。可以通过在<script>标签中增加src属性指向hls.min.js文件所在的URL来进行引入。例如: <script src="hls.min.js"></script> 接下来,我们需要创建一个HLS对象并将其绑定到video元素上。这可以通过以下代码来实现: var videoElement = document.getElementById('video'); var hls = new Hls(); hls.loadSource('video_url.m3u8'); hls.attachMedia(videoElement); 在上面的代码中,videoElement是我们在HTML中定义的video元素,'video_url.m3u8'是HLS视频流的URL。通过loadSource()方法来加载HLS视频流,并通过attachMedia()方法将HLS对象绑定到video元素上。 最后,我们需要监听HLS对象的一些事件来处理播放状态的变化。例如,我们可以监听HLS对象的'Hls.Events.MANIFEST_PARSED'事件来确保视频流已经解析完毕并可以开始播放: hls.on(Hls.Events.MANIFEST_PARSED, function() { videoElement.play(); }); 通过以上步骤,我们就可以在H5页面上使用hls.min.js库来播放HLS格式的视频了。 ### 回答3: hls.min.js是一个用于播放HLS(HTTP Live Streaming)视频的JavaScript库。HLS是一种基于HTTP的流媒体传输协议,它将视频切分成小片段,并通过HTTP协议逐个下载和播放这些片段。 hls.min.js库可以实现在支持HTML5的浏览器中播放HLS视频流。它提供了一些API和事件监听器,用于控制和管理视频的播放。 首先,我们需要在HTML页面中引入hls.min.js库文件。然后,通过创建一个新的Hls对象来初始化播放器。使用Hls对象的loadSource方法可以加载一个HLS视频流的URL。一旦视频流加载完毕,可以通过调用Hls对象的attachMedia方法将视频流与HTML中的video元素关联起来。 hls.min.js库还提供了一些事件监听器,例如在视频播放开始或结束时触发的事件。我们可以通过添加这些事件监听器来执行自定义的操作,例如在视频播放结束后自动加载下一个视频片段。 此外,hls.min.js还支持视频流的动态切换。如果视频有多个分辨率或质量选项,可以通过调用Hls对象的startLoad或nextLevel方法来切换视频的质量。 总之,hls.min.js库是一个方便并且易于使用的工具,可以使开发者在HTML5中实现HLS视频的播放。它提供了一系列的API和事件监听器,用于控制和管理视频的播放过程,并且支持视频流的动态切换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值