`
david_je
  • 浏览: 373280 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

如何理解EXT-X-VERSION标记

 
阅读更多

Q:当在.m3u8文件中的EXT-X-VERSIOn标记中指定了协议的版本,HLS的哪些功能可以使用?

A:标记EXT-X-VERSION可以指示出playlist文件的兼容版本,playlist和相关的媒体文件,还有服务器必须符合IETF Internet Draft of the HTTP Live Streaming Protocol specification规定的标记规范。如果playlist文件不包含EXT-X-VERSION标记,默认为协议的第一个版本。

 

注意:为了理解HLS的工作原理, 必须一直参考最新的IETF internet Draft,旧版本的文档记录了更新的历史。

 

下表是版本和标记的对应关系:

你只需要指定协议版本需要向后兼容性的一个给定的特性。

 

例如,您不必指定协议版本5如果你刚刚添加SUBTITLE标记。如果你不这样做,老客户会简单地忽略SUBTITLES标记,但仍然以某种形式播放。

当然,以下功能是不能乡下兼容的,老版本的客户端在使用这个标记的时候,如果没有指定相应的协议版本号可能会失败。

在EXT- X-KEY标记中使用IV必须指定协议的版本号是2

在EXTINF中使用浮点数的值必须指定协议版本号是3

使用 EXT-X-BYTERANGE 和 EXT-X-IFRAME-ONLY标记必须指定协议的版本号是4

在EXT-X-KEY标记中使用SAMPLE-AES必须指定协议的版本是5

 

下图是IETF internet Draft 和iOS对应的实现和支持的功能:

 

 

 

 

 

分享到:
评论

相关推荐

    苹果hls协议规范

    例如,在`EXT-X-STREAM-INF`标签后可以定义一个或多个属性,如分辨率、带宽等,来描述媒体流的特性。 ##### 3.3 标准标签(Standard Tags) ###### 3.3.1 `EXTM3U` 这是一个播放列表的开头标记,用于表示M3U8文件的...

    m3u8-parser:一个m3u8解析器

    bower install --save m3u8-parser 用法var manifest = [ '#EXTM3U' , '#EXT-X-VERSION:3' , '#EXT-X-TARGETDURATION:6' , '#EXT-X-MEDIA-SEQUENCE:0' , '#EXT-X-DISCONTINUITY-SEQUENCE:0' , '#EXTINF:6,' , '0.ts...

    hlsdemo.rar_h264 TS_m3u8_trade3sy_ts aac_ts h264 aac

    这里,`#EXTM3U`是M3U8文件的起始标记,`#EXT-X-VERSION`表示M3U8的版本号,`#EXT-X-TARGETDURATION`声明了每个TS片段的最大时长,`#EXT-X-MEDIA-SEQUENCE`是TS文件的序列号,`#EXTINF`定义了每个片段的时长和对应的...

    m3u8.m3u

    - `#EXT-X-VERSION` 定义了m3u8文件的版本号,表明支持的扩展特性。 - `#EXT-X-TARGETDURATION` 声明了每个媒体段的最大持续时间,用于客户端计算缓冲区。 - `#EXT-X-MEDIA-SEQUENCE` 提供了媒体段的序列号,便于...

    HLSM3U8.zip_软件设计/软件工程_Visual_C++_

    1. **头部信息**:包含播放列表的基本属性,如#EXTM3U标识符,表示这是一个M3U8文件,还有#EXT-X-VERSION指示M3U8文件的版本。 2. **媒体序列**:#EXT-X-MEDIA-SEQUENCE标记序列号,表明了TS分片的顺序。 3. **...

    iptv.m3u

    #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:10 #EXTINF:60,Channel 1 http://example.com/channel1.stream.m3u8 #EXTINF:60,Channel 2 http://example.com/channel2.stream.m3u8 ... ``` 在上述示例中,`#EXTM3U`是M3...

    freemarker-ext:Freemarker模板引擎的扩展

    < dependency> < groupId>org.eluder.freemarker</ groupId> < artifactId>freemarker-ext</ artifactId> < version>0.9.2</ version></ dependency>HTML转义Freemarker是通用模板引擎,这意味着它的范围不仅限于...

    100亿数据1万属性数据架构设计.docx

    它通过`version`字段来标记不同阶段或类型的属性集,`ext`字段则用来存储这些可变的属性值。例如,当`version=0`时,`ext`可能包含`passwd`和`nick`;而`version=1`时,`ext`可能增加了`age`和`sex`等字段。这种方法...

    vimwiki.txt

    - `- [x] 任务`:标记已完成的待办事项。 #### 九、表格 Vimwiki 支持 Markdown 样式的表格,使得数据呈现更为直观。 #### 十、日记 Vimwiki 可以自动创建和管理日记条目,用户可以通过简单的命令快速访问特定...

    phing-GrowlNotifyTask:Phing的咆哮通知任务

    咆哮通知任务 状态这个任务现在包括在Phing分布自 (门票#845) 特征 完成长任务时收到通知 不要忘记带有粘性选项的通知 定义消息的优先级 兼容 Windows 和 Mac/OSX ...可自定义应用程序和消息图标 ...xml version

    Android 之 单元测试

    androidTestImplementation 'androidx.test.ext:junit:1.1.3' // Android测试扩展 androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' // UI测试 } ``` 接下来,我们需要创建测试类。在...

Global site tag (gtag.js) - Google Analytics