权威的itef官方文档参见:

https://datatracker.ietf.org/doc/draft-pantos-http-live-streaming/

另外参见苹果官方文档

https://developer.apple.com/streaming/

#EXTM3U //必需,表示一个扩展的m3u文件

#EXT-X-VERSION:3            //hls的协议版本号,暗示媒体流的兼容性
#EXT-X-MEDIA-SEQUENCE:3560  //暗示首个视频分段的sequence number,只能有一个该字段,也可以没有,若没有就假设首个视频分段的sequence number为0
#EXT-X-ALLOW-CACHE:NO       //是否允许客户端对下载的视频分段缓存用于以后播放?
#EXT-X-TARGETDURATION:25    //每个视频分段最大的时长(单位秒)
#EXT-X-DISCONTINUITY        //暗示当前的视频分段和它之前及之后的视频分段有不同的编码不连续性
#EXTINF:<duration>,        //每个视频分段都由以下三行信息组成,duration表示该段的时长,以秒为单位,注意最后有个逗号
http:......mp4    //视频分段的地址
#EXT-X-DISCONTINUITY //视频分段结束,如果是最后一个分段,则不需要这一行

.....    //其他分段的信息,每个分段同样由三行信息组成。

#EXTINF:10,
http://113.108.235.97:80/ipad/160_15607_4578/20130307153030.ts?userid=VSDNNP-183081183068_160_15607_4578

#EXT-X-ENDLIST //暗示不再有视频分段加入,可出现在playlist文件的任何地方

嵌套包含的情况:
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=500000
http://ipad.vsdn.tv380.com/5B63686E5D445830303030303034367C313735397C317C313030307C434354562D357C687474707C74735B2F63686E5D5B74735D307C687474705B2F74735DVSDNSOOONERCOM00/cctv5.m3u8 //嵌套定义一个媒体URI作为一个playlist文件,它包括多媒体展示及展示的元信息,必须包括BANDWIDTH
#EXT-X-STREAM-INF:<attribute-list>
<URI>

下面是相关的属性列表:
BANDWIDTH  每个视频分段的总体bitrate的最大值

PROGRAM-ID 唯一定义playlist文件范围里的一个特别的presentation

下面是使用ffmpeg生成的一个m3u8文件的样例

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:16
#EXTINF:14.040000,
output_file-0.ts
#EXTINF:5.960000,
output_file-1.ts
#EXTINF:11.360000,
output_file-2.ts
#EXTINF:13.160000,
output_file-3.ts
#EXTINF:6.000000,
output_file-4.ts
#EXTINF:12.000000,
output_file-5.ts
#EXTINF:12.000000,
output_file-6.ts
#EXTINF:6.160000,
output_file-7.ts
#EXTINF:12.120000,
output_file-8.ts
#EXTINF:10.560000,
output_file-9.ts
#EXTINF:8.440000,
output_file-10.ts
#EXTINF:12.680000,
output_file-11.ts
#EXTINF:6.000000,
output_file-12.ts
#EXTINF:11.560000,
output_file-13.ts
#EXTINF:11.040000,
output_file-14.ts
#EXTINF:12.840000,
output_file-15.ts
#EXTINF:5.360000,
output_file-16.ts
#EXTINF:14.280000,
output_file-17.ts
#EXTINF:5.840000,
output_file-18.ts
#EXTINF:9.120000,
output_file-19.ts
#EXTINF:12.800000,
output_file-20.ts
#EXTINF:8.640000,
output_file-21.ts
#EXTINF:12.640000,
output_file-22.ts
#EXTINF:5.880000,
output_file-23.ts
#EXTINF:10.360000,
output_file-24.ts
#EXTINF:11.440000,
output_file-25.ts
#EXTINF:8.200000,
output_file-26.ts
#EXTINF:10.000000,
output_file-27.ts
#EXTINF:15.120000,
output_file-28.ts
#EXTINF:4.800000,
output_file-29.ts
#EXTINF:10.920000,
output_file-30.ts
#EXTINF:11.200000,
output_file-31.ts
#EXTINF:8.520000,
output_file-32.ts
#EXTINF:12.000000,
output_file-33.ts
#EXTINF:10.000000,
output_file-34.ts
#EXTINF:11.480000,
output_file-35.ts
#EXTINF:11.120000,
output_file-36.ts
#EXT-X-ENDLIST

HLS中m3u8格式规范解读相关推荐

  1. Thingjs嵌入视频hls.js+m3u8格式

    thingjs在使用外部资源时,需要复制第三方资源代码到该平台,在嵌入视频之前需要引入hls.jsjs资源代码下载 hls.js支持处理m3u8格式,m8u3在线解析器 正题来了,贴代码贴代码(~~) ...

  2. 网页中,M3U8格式的视频下载

    应用背景: 1.想要下载某网站的视频,经过抓包,获取不到.mp4这样的链接. 但是惊奇地发现,使用检查功能,将实时光标移动到播放器有这样以blob:http://格式开头的链接 百度下发现,这个属于加 ...

  3. 数学符号在论文中的格式规范

    一,使用斜体的情况:  1) 变量(variables)应该用斜体表示:例如T表示温度(temperature),r表示速率(rate).  注意:即便用变量来作为形容词的组成部分,依然要保持斜体,  ...

  4. 第一次在Vue项目中播放m3u8格式视频遇到的问题和解决方法

    一.m3u8文件 第一次接触这种m3u8格式的视频文件,开始以为类似与.mp4这种,所以在项目中我通过html5提供的video标签做播放功能发现并不能成功,后来了解到M3U8文件是一种UTF-8编码 ...

  5. 使用 阿里云 播放器播放 .flv 和 hls(.m3u8) 格式的视频流

    一.使用 阿里云 播放器播放 .flv 和 hls(.m3u8) 格式的视频流 官方教程:https://help.aliyun.com/document_detail/125570.htm?spm= ...

  6. html5的video标签实现对HLS(m3u8格式)的支持(附代码实例)

    html5的video标签实现对HLS(m3u8格式)的支持(附代码实例) <script src="https://cdn.jsdelivr.net/hls.js/latest/hl ...

  7. 在vue3中使用videojs播放 .m3u8格式文件

    最近项目中有做视频播放,但是由于视频量大,所以后端处理用的是把视频切片放在m3u8里给前端,然后前端自己播放. 什么是M3U8文件呢?M3U8文件是指UTF-8编码格式的M3U文件.M3U8文件是记录 ...

  8. UE5接入在线直播视频源,如hls(m3u8)格式

    文章目录 1.实现目标 2.实现过程 2.1 VlcMedia插件重编译 2.2 UE5接入在线直播 2.3 创建材质 3.参考资料 1.实现目标 通过重编译VlcMedia插件,以支持在线直播视频在 ...

  9. 音视频 HLS协议和m3u8格式分析

    什么是HLS HLS协议草案历史:https://datatracker.ietf.org/doc/rfc8216/ 可直接看:https://www.rfc-editor.org/rfc/rfc82 ...

最新文章

  1. 心累了,就笑一笑,学会爱自己
  2. 从零开始学习Sencha Touch MVC应用之七
  3. 无论你在学什么语言,都能有小姐姐来陪着你一起学习!
  4. C++智能指针(设计和使用)
  5. php文件上传及头像预览
  6. 【CodeForces - 514C】Watto and Mechanism(字符串哈希)
  7. 下载的字幕php是什么格式的,mkv是什么文件格式
  8. oracle语句报错 * ERROR at line 2: ORA-00923: FROM keyword not found where expected
  9. java P1195 口袋的天空
  10. 有没有好用的视频压缩软件?分享几个好用的压缩视频软件
  11. html方框里打勾,word里如何在□里打√!框框里打勾!!!!!
  12. 纽约州推出“被遗忘权”提案 用户或能要求将个人隐私信息从搜索结果中移
  13. MALLOWS模型平均-R代码
  14. 缺流量时代,App们需要如何突围?
  15. mysql字符集与校对规则设置_mysql中的字符集和校对规则(mysql校对集)
  16. OSError: cannot load library ‘C:\...\site-packages\_soundfile_data\libsndfile64bit.dll‘: error 0x7e
  17. C# Hex工具类(可用于mac转化)
  18. 【Chrome+selenium】使用selenium时报错显示,如何查看Chrome 版本并安装相对应的webdriver 驱动
  19. 购买或者租用服务器注意项
  20. java自定义注解详解

热门文章

  1. 删除maven仓库中的LastUpdated文件
  2. linux svn更换数据仓库,Linux环境下SVN数据仓库迁移
  3. SER SERVER存储过程
  4. 企业支付宝账号开发接口实现
  5. 太TM难看了,我自己都看不下去了
  6. VScode配置CMAKE文件
  7. Windows启动exe应用程序,无法正常启动(0xc000007b)的解决办法
  8. 顺丰职级分成4级_14368!4月全国程序员均薪新鲜出炉!
  9. robo3t 连接服务器数据库_车牌识别软件连接各种数据库方法大全
  10. 龙岩学院计算机二级报名时间,福建龙岩学院2015年12月计算机等级考试报名通知...