这两者最大的区别是他们所使用的程序以及内容有所不同,具体的发挥出来的效果也有所不一样,所以各有优劣。m3u8的格式一般在播放器当中很难播放,但是MP4格式在播放器当中一般流畅度很高。
其实m3u8 它不是一种真正的视频文件,它你可以理解为是你桌面的快捷方式,m3u8就是个含有视频文件路径的指向文件,类似于快捷方式,用文本方式打开文件把里面的视频按顺序下载过来再合并就可以了,如果是直播的,m3u8里面的路径是一直更新的。
根据资料显示:
1、HTML5 直接支持m3u8协议。
2、m3u8其实是一个协议而不是一种视频格式,m3u8里面包括的多是视频块索引。可以通过网络状态自动切换码率。MP4就没有这方面优势了。
3、m3u8允许客户在进行播放时,从许多不同的备用源中下载视频块。
4、m3u8是HLS协议的部分内容。是一种能够通过http报文就能够请求和访问了。
MP4如果要实现在线播放那么就需要RTP协议来实现。两种手段有比较大的区别。
5、更高性能上能够将部分m3u8的播放块切块之后直接加载到服务器内存中,让客户端可以更快的得到数据。
6、m3u8 由于是采用切块技术,那么下载的播放文件 就可以少很多,只有当前播放的部分。这一点用在在线直播上有很大优势。
最后, 容易卡顿,可能是你访问该服务器的m3u8 延迟较高,网络问题,也可能是服务器没配好而已。
而mp4的劣势:
mp4 对HTML5和flash播放器亲和度都挺好。但是文件头太大,结构复杂,长视频的大文件头影响加载速度的视频体验,所以短视频更常见。
m3u8 采用苹果的HLS协议,目前 ios与android设备均已支持。由于其工作原因是将整个视频流分成一个个小的基于Http的文件进行下载播放,因此支持视频直播。
基本上我们可以确认一个,只要用H5开发的网站都可以用m3u8,至于APP嘛那么想都不用想了,非m3u8不可。
m3u8是UTF-8编码格式的M3U文件。
M3U文件是记录了一个索引纯文本文件,打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放。
M3U8编码格式
m3u8基本上可以认为就是.m3u格式文件,区别在于,m3u8文件使用UTF-8字符编码。
#EXTM3U m3u文件头,必须放在第一行。
#EXT-X-MEDIA-SEQUENCE第一个TS分片的序列号。
#EXT-X-TARGETDURATION每个分片TS的最大的时长。
#EXT-X-ALLOW-CACHE是否允许cache。
#EXT-X-ENDLIST m3u8文件结束符。
#EXTINF extra info,分片TS的信息,如时长,带宽等。
#EXT-X-PLAYLIST-TYPE提供关于PlayList的可变性的信息,对整个PlayList文件有效,是可选项。格式如下:#EXT-X-PLAYLIST-TYPE:VOD(或者EVENT)。VOD表示服务器不能改变PlayList文件;EVENT则表示服务器不能改变或是删除PlayList文件中的任何部分,但是可以向该文件中增加新的一行内容。
最终的原因是在ServerSocket接收到客户端请求的Socket后没有给客户端Socket设置read超时时间,并且也没有主动去关闭socket,所以就导致了客户端以为没有服务器没有输出完数据,一直在等待中。。。欢迎分享,转载请注明来源:夏雨云
评论列表(0条)