M3U8 文件介绍 与 播放方法

目录

通俗点:

官方一点:

M3U8文件内容:

M3U8 文件播放:

补充


通俗点:

播放音视频的时候,因为音视频文件较大,尤其是视频,所以通常会把音视频文件分成一个个的小块,而M3U8则是记录每个小块的地址与播放顺序。

播放M3U8文件时播放软件并不是播放它,而是根据它记录的音视频分块索引找到对应的音视频文件的网络地址进行在线播放。

官方一点:

M3U8 文件是指UTF-8编码格式的M3U文件。

M3U8 是一种索引文件,通常一个音视频文件会被分割成若干小文件,然后通过M3U8记录每个文件的地址与播放顺序。

在实际播放网页视频的时候,实际上是通过它来解析放在服务器上的各分块音视频网络地址,从而实现在线播放。

使用 M3U8 格式文件主要因为它可以实现多码率视频的适配,视频网站可以根据用户的网络带宽情况,自动为客户端匹配一个合适的码率文件进行播放,从而保证视频的流畅度。

M3U8 是一种常见的流媒体格式,主要以文件列表的形式存在,既支持直播又支持点播,尤其在Android、iOS等平台最为常用。


M3U8文件内容:

下面是一个M3U8文件的截图,中间三个点号,是我省略的内容,毕竟内容太多。

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:6.000000,
/hls/20191213/083a649dc93e63742c37533e6292fcac/1576224239/film_00000.ts
#EXTINF:5.440000,
/hls/20191213/083a649dc93e63742c37533e6292fcac/1576224239/film_00001.ts
#EXTINF:4.080000,
/hls/20191213/083a649dc93e63742c37533e6292fcac/1576224239/film_00002.ts
#EXTINF:6.000000,
/hls/20191213/083a649dc93e63742c37533e6292fcac/1576224239/film_00003.ts
.
.
.
/hls/20191213/083a649dc93e63742c37533e6292fcac/1576224239/film_01852.ts
#EXTINF:1.640000,
/hls/20191213/083a649dc93e63742c37533e6292fcac/1576224239/film_01853.ts
#EXT-X-ENDLIST

 

M3U8 文件播放:

详细操作点击此处查看

1. 浏览器安装插件:Native HLS Playback,之后直接在浏览器地址栏输入想播放的m3u8链接回车就可以播放了。

2. vlc播放器播放,打开vlc后点击媒体-->打开网络串流->输入想播放的m3u8链接回车就可以播放了。

其他方法可以自行百度。

 

补充

M3U8 是 Unicode 版本的 M3U,用 UTF-8 编码。"M3U" 和 "M3U8" 文件都是苹果公司使用的 HTTP Live Streaming(HLS) 协议格式的基础,这种协议格式可以在 iPhone 和 Macbook 等设备播放。

上述文字定义来自于维基百科。可以看到,m3u8 文件其实是 HTTP Live Streaming(缩写为 HLS) 协议的部分内容,而 HLS 是一个由苹果公司提出的基于 HTTP 的流媒体网络传输协议。

HLS 的工作原理是把整个流分成一个个小的基于 HTTP 的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会下载一个包含元数据的 extended M3U (m3u8) playlist文件,用于寻找可用的媒体流。
HLS 只请求基本的 HTTP 报文,与实时传输协议(RTP)不同,HLS 可以穿过任何允许 HTTP 数据通过的防火墙或者代理服务器。它也很容易使用内容分发网络来传输媒体流。

简而言之,HLS 是新一代流媒体传输协议,其基本实现原理为将一个大的媒体文件进行分片,将该分片文件资源路径记录于 m3u8 文件(即 playlist)内,其中附带一些额外描述(比如该资源的多带宽信息···)用于提供给客户端。客户端依据该 m3u8 文件即可获取对应的媒体资源,进行播放。

因此,客户端获取 HLS 流文件,主要就是对 m3u8 文件进行解析操作。

你可能感兴趣的:(技术志)