M3U8是什么以及简单的播放M3U8格式的网络视频

1.初识M3U8

最近做播放器,后台给的链接是M3U8格式的,一脸懵逼,查了一些资料才了解m3u8是苹果公司推出一种视频播放标准,是m3u的一种,不过 编码方式是utf-8,是一种文件检索格式,将视频切割成一小段一小段的ts格式的视频文件,然后存在服务器中(现在为了减少I/o访问次数,一般存在服务器的内存中),通过m3u8解析出来路径,然后去请求。

这样每次请求很小有段视频,可以做到近似于实时播放的效果。

发个示例链接:http://cdn.can.cibntv.net/12/201702161000/rexuechangan01/rexuechangan01.m3u8 给大家研究研究

第一层

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2650800,RESOLUTION=1920x1080
1.m3u8

观察数据吗,没有用http://开头时,不是真正路径,需要拼接字符串再次请求:http://cdn.can.cibntv.net/12/201702161000/rexuechangan01/1.m3u8 得到数据

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:14
#EXTINF:11.480, 
20170215T224129-1-0.ts
#EXTINF:11.480, 
20170215T224129-1-1.ts
#EXTINF:10.480, 
20170215T224129-1-2.ts
#EXTINF:11.400, 
20170215T224129-1-3.ts
#EXTINF:11.120, 
20170215T224129-1-4.ts
#EXTINF:11.200, 
20170215T224129-1-5.ts
#EXTINF:13.600, 
20170215T224129-1-6.ts
#EXTINF:11.360, 
20170215T224129-1-7.ts
#EXTINF:10.240, 
20170215T224129-1-8.ts
#EXTINF:12.000, 
20170215T224129-1-9.ts
#EXTINF:13.760, 
20170215T224129-1-10.ts
#EXT-X-ENDLIST

看到ts结尾的文件,这才是视频真正的存放路径:http://cdn.can.cibntv.net/12/201702161000/rexuechangan01/20170215T224129-1-0.ts ,这时候用浏览器下载就可以播放。不过这个播放不用我们去解析 android 4.0以后的videoView 就支持自动解析,并拼接播放。


2.简单的m3u8播放示例(网络播放)

	Uri uri = Uri.parse("http://cdn.can.cibntv.net/12/201702161000/rexuechangan01/rexuechangan01.m3u8");
	video_view.setMediaController(new MediaController(this));
	video_view.setVideoURI(uri);
	video_view.requestFocus();
	ideo_view.start();
	这样就可以简单的播放M3u8格式的视频了。

 

	

你可能感兴趣的:(Android,媒体播放)