TSINGSEE青犀视频云边端架构视频平台HLS视频流内m3u8文件和TS切片是什么关系?

TSINGSEE青犀视频云边端架构视频平台EasyNVR、EasyGBS、EasyDSS、EasyCVR等都是能够输出RTSP、RTMP、FLV、HLS等视频流的,其中输出的HLS视频流保存到本地与其他有所不同,本地文件是TS切片文件,需要通过m3u8文件进行检索。

我们之前分享过一些关于TS文件的内容,大家有兴趣可以参考一下(无插件直播视频平台如何设置ts切片大小),本文主要是想和大家分享下m3u8文件和TS切片是怎样的存在,以及两者之间有什么关系。

TS切片文件

大多数视频网站都采用渐进式下载,这意味着视频会下载到我的设备上。视频一般采用流式传输,这意味着我们不只是下载了1个文件,而是下载了很多小包(本文指的是.ts传输流切片文件)。既然.ts文件只是一种视频切片文件,那么它支持直接播放吗?当我们把它下载到本地后,都是可以正常播放的。

m3u8文件

m3u8文件实质是一个播放列表(playlist),其可能是一个媒体播放列表(Media Playlist),或者是一个主列表(Master Playlist)。但无论是哪种播放列表,其内部文字使用的都是 utf-8 编码。 当 m3u8 文件作为媒体播放列表(Meida Playlist)时,其内部信息记录的是一系列媒体片段资源,顺序播放该片段资源,即可完整展示多媒体资源,由此可知,整个视频的总时长就是各个.ts切片资源的时长之和。

M3U8和TS文件

HLS基于HTTP协议实现,传输内容包括两部分,一是M3U8描述文件,二是TS媒体文件。ts层的内容是通过PID值来标识的,主要内容包括:PAT表、PMT表、音频流、视频流。解析ts流要先找到PAT表,只要找到PAT就可以找到PMT,然后就可以找到音视频流了。

请求m3u8播放列表的方法

一是通过m3u8的URI进行请求,则该文件必须以.m3u8或.m3u结尾;
二是通过 HTTP 进行请求,则请求头 Content-Type 必须设置为 “application/vnd.apple.mpegurl” 或者 “audio/mpegurl”。

本文和大家大概聊了下TSINGSEE青犀视频云边端架构产品中HLS视频流内m3u8文件和TS切片的内容,我们欢迎大家和我们做深入的交流和探讨,如果大家还想了解更多视频相关解决方案,也欢迎联系我们。

原文地址:https://www.cnblogs.com/TSINGSEE/p/13952796.html