m3u8和mp4格式有什么区别
m3u8和mp4格式是数字视频编码和流媒体传输协议中使用最多的格式,它们在视频编码和流媒体传输上有着不同的优势。
1)文件格式:m3u8是一种基于HTTP 协议的文本文件,它的内容是指向网络上的视频片段的链接;而mp4是媒体文件格式,它的内容是视频和音频的数据流。
2)传输方式:m3u8采用HTTP协议实现边下边播放,它利用了客户端和服务器端间的“请求-响应”机制,当客户端发出请求时,服务器端会及时响应,这样可以保证流畅的视频观看;mp4采用“点播”方式,也就是一次性把整个视频文件传输给客户端,客户端接收完视频文件后便可以播放了。
3)加密方式:m3u8采用AES-128加密方式实现安全传输,该加密方式可以有效的防止视频的泄露和被窃取;mp4的加密是基于文件的,它将整个文件以一种加密算法进行加密,一旦被破解,那么整个文件就会泄露。
4)适用平台:m3u8可以被平台无关的客户端播放,它适用于iOS、Android、Windows和Mac等多种操作系统;而mp4文件只能被特定的客户端播放,受硬件等限制,在不同的操作系统上可能会有不同的播放效果。
5)兼容性:m3u8支持多种流媒体服务器,它兼容多种流媒体协议,可以实现服务器端的转码功能;而mp4的格式更加的简单,它不能实现服务器端的转码功能,也可能会受到硬件设备的限制。
6)分辨率:m3u8文件可以实现码流的自适应切换,它可以根据不同的网络状况自动切换分辨率;而mp4文件采用固定分辨率,在网络状况较差的情况下,画面可能会出现模糊和卡顿现象。
为什么不用 mp4 格式
M3U8格式更加适合在网络环境较差的情况下进行视频播放,因为它可以将视频文件分成多个片段,从而可以有效的提高视频的传输效率,而MP4格式则更加适合在需要快速存取视频文件的情况下使用,因为它可以将一个完整的视频文件保存为一个文件,从而使视频文件的存取更加方便快捷。
为什么最终选择 m3u8 格式
1)本身就是 ts 分片存储形式,不需要再单独考虑大文件的切片问题。
2)现有播放器方案支持 m3u8 格式,不需要再单独进行适配。
3)具有一定的技术储备,开发上手快,开发周期可控。
4)相应的覆盖策略执行起来会更加方便。
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:17
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:11.933333,
index_0000.ts
#EXTINF:3.866667,
index_0001.ts
#EXTINF:7.333333,
index_0002.ts
#EXTINF:16.666667,
index_0003.ts
#EXTINF:4.133333,
index_0004.ts
#EXT-X-ENDLIST
通过上述文件,可以知道这个 m3u8 文件包含了 5 个 ts 分片,以及它们各自的时长信息。文件以 #EXTM3U 标签开始,并以 #EXT-X-ENDLIST 标签结束。这里有一点需要注意,如果是直播使用的 m3u8 文件,它是没有 #EXT-X-ENDLIST 标签的。
总结:
M3U8 是一种用于描述媒体播放列表的文件格式。它可以包含多个媒体片段的 URL,允许视频播放器顺序播放这些片段。这种文件格式可以用于实现流式视频播放,可以支持多种视频编码格式,并具有良好的可扩展性。因此,许多视频网站都使用 M3U8 来实现流式视频播放。使用 M3U8 文件格式可以实现视频流式播放,这样可以节省带宽,提高播放流畅度。同时,M3U8 文件格式可以支持多种视频编码格式,具有良好的可扩展性。这对于视频网站来说是非常有用的,因为它可以支持更多的设备和平台,同时可以提供更优质的用户体验。此外,M3U8 文件格式具有良好的可读性,可以方便视频网站的开发人员进行维护和更新。