基于HLS协议视频流的分析处理技术探讨彭莲香郭星涛(内蒙古自治区大数据中心,内蒙古呼和浩特010010)HTTPLiveStreaming(以下简称HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议。它的特点是将容量巨大的媒体数据流分割成连续的ts分片,然后在服务端建立对这些ts分片的extendM3U(m3u8)playlist索引文件。客户端基于HTTP的方式向服务器请求m3u8文件并进行解析,向服务器连续的请求下载ts分片来实现完整的播放[1]。当播放媒体流时,客户端可以选择从不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率,根据网络质量完成视频清晰度的切换[2]。随着HTML5标准的兴起,Web浏览器在各方面都有了很大的提升,许多基于HLS协议的视频可同时在移动端和PC端播放,比如课程学习、电影电视剧、广播电视网络直播系统[3]等,但其都存在无法下载、无法二次剪辑创作等问题。文献[4]采用Python语言进行程序设计,借助爬虫技术实现视频文件的自动化下载和拼接,实现了视频资源的本地化保存。本文对基于HLS协议的视频流传输技术进行分析,提出了多种方式来实现视频流下载和处理的功能,对提升大数据时代下视频流智能化分析处理能力进行了探索。1HLS介绍1.1基于HLS的视频流播放基于HLS协议的视频播放过程如图1所示,首先是由服务器采集并编码传输视频到切片器,切片器对视频创建索引文件,并且切割成n个ts文件,将索引文件和ts文件传输到HTTP服务器上,网站/客户端根据索引文件查找HTTP服务器上的ts文件,连续播放这n个ts文件,就实现视频播放,并且可以根据网络状况自动切换视频的清晰度。1.2m3u8与ts文件结构索引文件即m3u8文本文件,如图2所示。#EXT-X-VER-SION为M3U8文件的版本,常见的是3。#EXT-X-TARGET-DURATION指定当前视频流中的切片文件的最大时长,也就是说这些ts切片的时长不能大于#EXT-X-TARGETDURATION的值。#EXT-X-MEDIA-SEQUENCE是m3u8直播是的直播切换序列,当播放打开m3u8时,以这个标签的值作为参考,播放对应的序列号的切片。#EXT-X-PLAYLIST-TYPE:VOD的意思是当前的视频流是一个点播流,即该视频的全部的ts文件已经被生成好了。#EXTINF:EXTINF为m3u8列表中每一个分片的duration。#EXTINF表示每个ts切片视频文件的时长。#EXT-X-ENDLIST表明m3u8文件不会再产生更多的切片,可以理解为该m3u8已停止更新,并且播放分片到这个标签后结束。2其他相关技术介绍HLS视频流解析获取的主流技术有Python、Java...