m3u8是什么格式(安卓m3u8转换器)
M3U8指UTF-8编码格式的M3U文件;M3U文件是记录了索引的纯文本文件。打开后,播放软件不播放,而是根据其索引找到对应音视频文件的网络地址,进行在线播放。
本教程的操作环境:windows7系统,戴尔G3电脑。
一、M3U8简介
M3U8文件是指UTF-8编码格式的M3U文件(M3U由拉丁语-1字符集编码)。M3U文件是一个有记录索引的纯文本文件。打开后,播放软件不播放,而是根据其索引找到对应音视频文件的网络地址,进行在线播放。流程如下:
M3u8播放过程。png
M3U8是一种常见的流媒体格式,主要以文件列表的形式存在,同时支持直播和点播流媒体,尤其是在Android、iOS等平台。
二、M3U8编码格式
M3u8基本可以认为是. M3u格式文件,区别在于m3u8文件是用UTF-8字符编码的。#EXTM3U m3u文件头,必须放在第一行#EXT-X-MEDIA-SEQUENCE第一个TS片的序列号#EXT-X-TARGETDURATION每个片的最大持续时间TS #EXT-X-ALLOW-CACHE是否允许缓存# EXT-X-ENDLIST m3u8文件结束符#EXTINF额外信息,碎片化TS的信息,比如持续时间,带宽等。# ex-x #EXT-X-PLAYLIST-TYPE提供了关于播放列表可变性的信息,该信息对整个播放列表文件有效,并且是可选的。格式如下:# EXT-x-playlist-type: VOD(或EVENT)。视频点播意味着服务器不能更改播放列表文件;事件意味着服务器不能更改或删除PlayList文件的任何部分,但可以在文件中添加新行。
例1:
M3U8文件参考链接:https://dco4urblvvsac.cloudfront.net/811/81095 _ ywfzjuup/game/1000 kbps . m3u 8及其内容:
#EXTM3U #EXT-X-PLAYLIST-TYPE:VOD #EXT-X-TARGETDURATION:10 #EXTINF:10, 1000kbps-00001.ts #EXTINF:10, 1000kbps-00002.ts
...
#EXTINF:10, 1000kbps-00099.ts #EXTINF:10, 1000kbps-00100.ts #ZEN-TOTAL-DURATION:999.70000 # ZEN-AVERAGE-带宽:1098134 # ZEN-最大带宽:1700874 #EXT-X-ENDLIST是一种需要拼接的播放和下载链接的形式。比如第一个TS片段的链接是https://dco4urblsac.cloudfront.net/811/81095 _ ywfzjaup/game/1000kbps-00001 . TS,也就是索引文件中的路径是1000 kbps-0000。
例2:
使用云电视订购直播节目时发送请求: http://121.199.63.236:7613/m3u8/cckw1/szws.m3u8?from = bab & amp乐趣=是& ampchk = y & ampchunk = xax & ampppw = yuntutv & ampauth = yuntutvyuntutvyuntutv & ampauth = yuntutvyuntutvyuntutv & ampnwtime = 1406515232 & ampsign = 033d 5483609 e6b c 87987 fc 7 d2f 30 a 024返回M3U8文件,内容如下: #EXTM3U # EXT-X-Media-SEQUENCE:140651513 #EXT-X-TARGETDURATION:10 #EXTINF:8, http://vapp 1 . fw . live . cntv . cn/cache/289 _/seg 0/index 140651513[140651513]。分时(同timesharing) #EXTINF:9, http://vapp 1 . fw . live . cntv . cn/cache/289 _/seg 0/index 140651514[140651514]。分时(同timesharing) #EXTINF:11, http://vapp 1 . fw . live . cntv . cn/cache/289 _/seg 0/index 140651515[140651515]。分时(同timesharing) #EXTINF:10, http://vapp 1 . fw . live . cntv . cn/cache/289 _/seg 0/index 140651516[140651516]。分时(同timesharing) #EXTINF:12, http://vapp 1 . fw . live . cntv . cn/cache/289 _/seg 0/index 140651517[140651517]。分时(同timesharing) #EXTINF:8, http://vapp 1 . fw . live . cntv . cn/cache/289 _/seg 0/index 140651518[140651518]。分时(同timesharing) #EXTINF:12, http://vapp 1 . fw . live . cntv . cn/cache/289 _/seg 0/index 140651519[140651519]。分时(同timesharing) #EXTINF:8, http://vapp 1 . fw . live . cntv . cn/cache/289 _/seg 0/index 140651520[140651520]。分时(同timesharing) #EXTINF:9, http://vapp 1 . fw . live . cntv . cn/cache/289 _/seg 0/index 140651521[140651521]。分时(同timesharing) #EXTINF:13, http://vapp 1 . fw . live . cntv . cn/cache/289 _/seg 0/index 140651522[140651522]。分时(同timesharing)
...这种形式的播放和下载链接直接显示在索引文件中。
三.M3U8的优势
1.它可以适应多种码率。客户端会根据网络带宽自动选择一个自己比特率的文件播放,以保证视频流的流畅,以苹果的HLS(HTTP Live Streaming)为代表。HLS有一个特点:自适应流媒体,客户端可以根据网络情况自动选择不同比特率的视频流,条件允许时使用高比特率,网络繁忙时使用低比特率,并在两者之间随意自动切换。这对于在移动设备网络不稳定的情况下保证流畅播放很有帮助。
2.降低源服务器的负载压力。M3u的特点是将流媒体分成若干ts片段,然后通过扩展的M3U列表文件收集这些TS片段供客户端播放器接收。与RTSP协议相比,这种方法的优点是,一旦分段完成,后续的分发过程不需要使用任何特殊的软件,可以使用普通的网络服务器,大大降低了CDN边缘服务器的配置要求,可以使用任何现成的CDN。用于分发的协议是最常见的HTTP,代理服务器在该协议的缓存优化方面已经相当成熟,而很少有代理服务器对RTSP的缓存进行优化。
3.对于非实时视频,也有优势:使用HTTP协议播放单个MP4视频文件时,代理服务器需要支持HTTP range请求才能获得大文件的一部分,但并不是所有的代理服务器对此都有很好的支持。而M3U只需要根据列表文件中的时间线找出对应的TS片段进行下载,不需要范围请求,对代理服务器的要求少很多。所有代理服务器都支持小文件的高效缓存。
4.为什么用TS代替MP4?这是因为两个TS片段可以无缝拼接,播放器可以连续播放。但是由于MP4文件的编码方式,两个MP4文件无法无缝拼接,播放器会连续播放两个MP4文件,造成声音破碎,画面断断续续,影响用户体验。