视频分片的两种方式

MP4只是个封装格式而已。MP4可以有两种方式存在:
一种是将Meta全部放在文件头,后面所有的媒体数据为一个整体。这样虽然在流化后也能做到边缓冲边播放,但由于MP4的Meta体积较大,所以在播放之前可能会出现较长缓冲时间(特别是视频时间很长的情况下)。

另一种是在一个MP4内封装多段媒体数据,并且每一段媒体数据都有自己独立的Meta,这样就可实现渐进式下载+快速缓冲的效果,Youtube也这样实现的。

另外,HLS一般不用于点播业务。因为m3u8只是一个索引文件,用户请求调用m3u8之后,流媒体服务器会向存储继续请求实体的TS文件,从而造成请求过于频繁,对存储压力是很大的,也无法让流媒体服务器实现大规模并发支撑。

而几乎所有视频网站的点播业务都采用MP4分片,就是因为流媒体服务器无需频繁向存储请求数据,调用一次即可,甚至可以缓存至前端的Transfer或本地硬盘,这样的话效率远比使用HLS实现点播更高。

HLS用于直播业务,主要是为了解决时效性问题(先收录到本地,再封装成MP4的时效性无法满足直播业务)。

备注:ffmpeg可以把mp4切片成ts文件,生成m3u8列表文件

猜你喜欢

转载自blog.csdn.net/qq_15766181/article/details/79972869