m3u8文件格式常见标签说明

本文详细介绍了M3U8文件格式,包括其作为播放列表的工作原理,以及EXT-X标签在定义媒体播放列表、媒体段时长、多码率适配等方面的应用。

        m3u8文件格式简介

        m3u8文件是指UTF-8编码格式的M3U文件。M3U文件是记录了一个索引纯文本文件,它并不包含音视频数据。m3u8文件实质是一个播放列表(playlist),打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的地址进行播放。

        m3u8文件类型包含媒体播放列表(Media Playlist)和主列表(Master Playlist)。媒体播放列表(Meida Playlist)类型是指其内部信息记录的是一系列媒体片段资源,顺序播放该片段资源,即可完整展示多媒体资源。既可以用于直播,也可以用于点播。主列表类型是指其内部信息用来描述多个媒体流的元数据信息,包括不同分辨率、码率和编码格式等。客户端可以根据这些信息选择合适的媒体流进行播放,也就是多码率的适配,客户端可以根据网络状况自动选择不同码率的视频流,条件允许的情况下使用高码率,网络繁忙的时候使用低码率,并且自动在二者间随意切换。既可以用于直播,也可以用于点播。

常见标签解析

EXTM3U  

表示该文件是一个m3u8文件,它必须在媒体播放列表和每个主播放列表的第一行。

格式:#EXTM3U

EXT-X-VERSION

表示播放列表文件、其相关媒体及其服务器的兼容版本。该标签作用于整个m3u8文件。每个m3u8文件内最多只能出现一个该标签定义。如果m3u8文件不包含该标签,则默认为协议的第1个版本。

格式:#EXT-X-VERSION:<n>

例如:#EXT-X-VERSION:3

EXT-X-TARGETDURATION

表示每个媒体段最大的时长(秒),该标签为必选标签。

格式:#EXT-X-TARGETDURATION:<s>   其中,s是一个十进制整数,表示媒体段的最大时长(秒)

例如:#EXT-X-TARGETDURATION:8

EXT-X-MEDIA-SEQUENCE

表示播放列表第一个媒体段的URI的序列号,每个媒体片段的URI都拥有一个唯一的整型序列号。每个媒体片段序列号按出现顺序依次加1。如果没有该标签,则默认序列号从0开始。媒体段序列号与片段文件名无关。该标签为可选标签。

格式:#EXT-X-MEDIA-SEQUENCE:<number>   其中,number是一个十进制数,表示第一个媒体段段起始序号
例如:#EXT-X-MEDIA-SEQUENCE:0

EXTINF

EXTINF标记指定当前媒体段的持续时间,只作用于一个媒体段。

格式:#EXTINF:<duration>,[<title>]                                                                                          

其中,duration是十进制浮点或十进制整数,用于指定媒体段的持续时间(以秒为单位)。持续时间应为十进制浮点,具有足够的精度,以避免计算总时长把每个片段时间加合时出现明显的时间错误。但是,如果兼容版本号小于3,则持续时间必须是整数,是真实时间四舍五入到最接近的整数。逗号后面的行的其余部分是媒体段的可选可读信息标题。

例如:#EXTINF:7.340667,000.ts

表示000.ts的时长是7.340667秒

EXT-X-ENDLIST

表示媒体播放列表到此结束。

格式:#EXT-X-ENDLIST

EXT-X-STREAM-INF

EXT-X-STREAM-INF标签出现在M3U8时,主要是出现在多级M3U8文件中时,例如M3U8中包含子M3U8列表,或者主M3U8中包含多码率M3U8时;该标签后需要跟一些属性,下面就来逐一说明一下这些属性:

BANDWIDTH

BANDWIDTH的值为最高码率值,当播放EXT-X-STREAM-INF下对应的M3U8时占用的最大码率(必要参数)。


AVERAGE-BANDWIDTH

AVERAGE-BANDWIDTH的值为平均码率值,当播放EXT-X-STREAM-INF下对应的M3U8时占用的平均码率。(可选参数)。

CODECS

CODECS的值用于声明EXT-X-STREAM-INF下面对应M3U8里面的音视频编码、视频编码的信息(可选参数)。

RESOLUTION

M3U8中视频的宽高信息描述(可选参数)。

FRAME-RATE

子M3U8中的视频帧率(可选参数)。

待续。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

视图猿人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值