本发明属于网络测量技术领域,尤其涉及一种面向youtubedash加密视频的指纹数据库构建方法。
背景技术:
越来越多的网络视频服务商开始采用加密流量进行数据传输,世界上最大的视频分享服务商youtube率先对所有视频流进行加密传输,针对市场占有率最高的安卓终端,使用dash视频传输机制。接入服务商为了监测用户对网络带宽的需求,以及出于可能的网络安全监测需求,需要构建加密视频的指纹数据库作为识别加密视频识别的基础。
youtubedash视频传输前会按照播放时长对音频数据和视频数据分别切片,音频的每个片段长度基本是相等的,但是由于视频内容各不同,基于现有的编码方式,切片后每个视频片段的长度不同,因此对一个视频来说,被切片后的视频片段序列的数据长度构成了视频的基本指纹,但是由于数据被加密传输,接入服务商无法直接获得每个片段的长度,也无法构建视频的基本指纹数据库。
目前公开文献中的针对youtube加密视频指纹数据库构建方法,是对某个热点视频,在测试终端进行视频点播,并同时在网络接入点采集视频流的报文数据。对一个客户请求后的服务器发出的一簇密集的响应报文负载进行累加,认为一簇密集的响应报文对应一个视频片段,由此构建视频的指纹数据库。现有的方法存在三个主要问题:(1)由于youtubedash机制中,一个视频播放的时候有两条数据流并行传输,并且音频片段会和视频片段并行传输,因此现有的指纹数据库构建方法忽视了数据量较小的音频片段也被累加造成的数据量误差;(2)网络传输总是会存在数据丢包的情况,服务器和客户经过协商会重传丢失的数据包或者放弃重传,现有的指纹数据库构建方法无法从加密数据中识别出丢包,因此对数据长度的累加中无法考虑丢包造成误差;(3)网络信道条件是不断动态变化的,youtube采用的是自适应的传输机制,因此每次传输时其两条流上视频片段和音频片段的并行传输过程是随着网络状态而不同的,但是现有的方法是通过真实的数据传输进行统计,实际上获得的只是某次的传输指纹,网络环境变化后同样的视频传输时会有不同的传输指纹,这样的传输指纹却无法在指纹数据库中找到。上述三个问题导致现有的指纹数据库构建方法无法对youtube视频构建准确、全面的指纹数据库。
技术实现要素:
发明目的:针对以上问题,本发明提出一种面向youtubedash加密视频的指纹数据库构建方法,通过代理设备获得视频数据,对数据进行分析构建加密视频指纹数据库。
技术方案:为实现本发明的目的,本发明所采用的技术方案是:一种面向youtubedash加密视频的指纹数据库构建方法,该方法包括以下步骤:
(1)搭建数据采集环境,采集目标youtubeapp视频数据并保存;
(2)读取描述视频片段和音频片段特征的视频基本信息指纹,并基于youtube视频分发机制和dash视频传输机制进行数据分析获得视频传输指纹;
(3)根据获得的视频基本信息指纹和视频传输指纹构建指纹数据库。
进一步,所述步骤(1)中,搭建数据采集环境的方法为:代理设备和装有youtubeapp的移动终端连接同一无线网络,在代理设备上开启https代理服务,视频数据通过代理设备的时候采集视频数据。
进一步,所述步骤(1)中,采集目标youtubeapp视频数据并保存的方法如下:
(1.1)建立目标视频列表,设置当前视频为视频列表的第一个视频;
(1.2)在youtubeapp界面搜索到当前视频,设置该视频的最低分辨率为当前分辨率;
(1.3)在界面中选择分辨率为当前分辨率;
(1.4)启动代理设备上的代理应用开始采集;
(1.5)点击youtubeapp的播放按钮;
(1.6)播放结束时停止采集,存储当前采集数据文件;
(1.7)如果当前视频有更高分辨率选项,则设置当前分辨率为更高一级的分辨率,进入步骤(1.3),否则进入步骤(1.8);
(1.8)如果视频列表还有未采集的视频,则设置当前视频为下一个未采集的视频,进入步骤(1.2),否则采集视频结束。
进一步,步骤(2)中,所述基本信息指纹包括音频片段数目、视频片段数目、所有音频片段和视频片段的数据长度、开始播放时间、播放时长。
进一步,步骤(2)中,获得视频传输指纹的方法如下:
(2.1)文件指针指向第一个被采集的数据文件;
(2.2)从文件里读取描述视频片段和音频片段特征的视频基本信息指纹,分别存入视频片段或音频片段数据链表中;设视频基本信息指纹中视频片段数目为n,音频片段数目为m,当前数据文件所记录的视频和分辨率下的第i段dash视频片段vi的数据长度为lvi,开始播放时间为tvi,播放时长为pvi,第j段音频片段aj的数据长度为laj,开始播放时间为taj,播放时长为paj,1≤i≤n,1≤j≤m;所述视频传输指纹的计算方法为:
(2.3)初始化设置所有视频片段和音频片段为不能并行传输;
(2.4)i=1;
(2.5)读取vi片段信息;
(2.6)j=1;
(2.7)读取aj片段信息;
(2.8)如果(taj≥tviandtaj<tvi+pvi)or(taj+paj>tviandtaj+paj≤tvi+pvi)是真,进入(2.9),否则进入步骤(2.10);
(2.9)如果aj已有常规并行传输标记,表明常规情况下该音频片段已经传输过了,此时再次出现在并行传输里,则为非常规并行传输,记录非常规并行传输指纹(vi,aj),否则记录常规并行传输指纹(vi,aj),并为音频片段aj标注常规并行传输标记;
(2.10)j++;
(2.11)如果有下一个音频片段,进入步骤(2.7);
(2.12)i++;
(2.13)如果有下一个视频片段,进入步骤(2.5),否则结束本次计算过程;
(2.14)文件指针后移,如果还有待分析的数据文件,则重复(2.2)-(2.13)的过程。
进一步,步骤(3)中,根据获得的视频基本信息指纹和视频传输指纹构建指纹数据库方法如下:将所有视频的视频基本信息指纹和视频传输指纹存入指纹数据库,完成指纹数据库的构建。
有益效果:与现有技术相比,本发明的技术方案具有以下有益技术效果:
(1)本发明建库通过代理设备采集视频数据,在采集过程中切换所有的分辨率,可以获得被点播视频所有分辨率的片段摘要信息,通过解析代理设备采集的数据,可以读取出该视频各分辨率中视频片段、音频分段的长度信息。除此之外本发明避免了现有方法中无法区分音频片段、视频片段的问题,避免了现有方法中无法考虑丢包所带来的问题。
(2)从采集数据中读取到的音频片段、视频片段序列的长度信息构成了视频的基本信息指纹。除此之外,本发明提出了视频传输指纹的概念及其计算方法。基于youtube视频分发机制和dash视频传输机制对视频的基本信息指纹分析,计算出在不同的网络信道条件下所有可能的音频和视频并行传输可能性,获得该视频在不同的网络服务质量情况下所有可能的传输指纹,因此可以应用于网络性能不断变化的真实网络,具有较好的适用性。
(3)已有的发明专利“一种视频指纹数据库建立、视频指纹识别方法及装置”为模式识别领域技术,应用的前提是已经有了视频的帧图片,对获取的帧图片进行分块,根据每个分块的像素对所述帧图片进行编码形成视频指纹,不涉及数据采集过程,也不涉及网络传输过程;本发明技术为网络流量测量领域技术,应用时不需要获取视频的帧图片,而是基于youtube视频分发机制和dash视频传输机制计算出视频传输时会呈现的传输特性,数据采集的位置为视频流在网络上传输所经过的节点。本发明与已有的发明技术完全不一样,应用场景也完全不一样。
附图说明
图1为本发明方法的系统结构示意图;
图2为数据采集流程图;
图3为数据分析,获得视频指纹并入库的流程图;
图4为计算视频传输指纹的流程图。
具体实施方式
下面结合实施例和说明书附图对本发明作进一步的说明。
步骤一:搭建数据采集环境;
代理设备和装有youtubeapp的移动终端连接同一无线网络,在代理设备上开启https代理服务,视频数据通过代理设备的时候采集视频数据。
步骤二:数据采集人员建立目标视频列表,设置当前视频为视频列表的第一个视频;该目标视频列表是需要采集的视频数据列表,由采集人员设定的,可以是一系列的url,或者一系列视频名称。
步骤三:数据采集人员在youtubeapp界面搜索到当前视频,设置该视频的最低分辨率为当前分辨率;
步骤四:在界面中选择分辨率为当前分辨率;
步骤五:启动代理设备上的代理应用,开始采集;
步骤六:数据采集人员点击youtubeapp的播放按钮;
步骤七:播放结束时停止采集,存储当前采集数据文件;
步骤八:如果当前视频有更高分辨率选项,则设置当前分辨率为更高一级的分辨率,进入步骤四,否则进入步骤九;
步骤九:如果视频列表还有未采集的视频,则设置当前视频为下一个未采集的视频,进入步骤三,否则进入步骤十;
步骤十:文件指针指向第一个被采集的数据文件;
步骤十一:从文件里读取描述视频整体特征的视频编号、分辨率、音频编码方式、视频编码方式,存入视频整体信息表;从文件里读取描述视频片段和音频片段特征的视频基本信息指纹,基本信息指纹包括音频片段数目、视频片段数目、所有音频片段和视频片段的数据长度、开始播放时间、播放时长,分别存入视频片段或音频片段数据链表中;
例如,对一个youtubedash视频,视频编号为wkj9kzgqq0w,分辨率为480p,音频编码格式为mp4格式,固定码率为128kbps,视频编码为webm。该视频的音频片段数目为6,视频片段数目为6。各视频片段、音频片段的数据量、开始播放时间、播放时长数值如下:
视频片段的具体数值如下:
步骤十二:通过视频基本信息指纹,基于youtube视频分发机制和dash视频传输机制进行数据分析获得视频传输指纹,视频传输指纹包括常规并行指纹和非常规并行指纹。常规情况下当视频片段下载结束时,与这个视频片段对应的所有音频片段都应该下载结束,这种情况下的视频传输指纹为常规并行传输指纹,但是在一些情况中,当视频片段下载结束时,与这个视频片段对应的音频片段并没有下载结束,这种情况下的视频传输指纹为非常规并行传输指纹。
youtube视频分发机制如下:整个视频的视频信息和音频信息根据播放时长被切分为一系列视频片段和音频片段,视频片段和音频片段的切分时长大部分是不同的。客户端会根据目录依次请求视频片段,当客户端对一个视频片段发出请求时,会依次对这个视频片段所需的音频片段发出请求。有两个并行的数据流同时传输属于一个视频的视频片段和音频片段,视频片段和音频片段在这两个数据流中并行依次传输,如果请求的数据已经被传输完毕,数据流中会暂时没有数据传输,直到下一个请求被客户端发出。当视频片段所需的音频片段传输完成而视频片段传输尚未完成时,将不会请求下载新的音频片段,此为常规现象,被称为常规并行传输。当视频片段所需的音频片段传输尚未完成而视频片段传输完成时,将会请求下载下一个视频片段,此为非常规现象,被称为非常规并行传输。
dash视频传输机制:dash的全称为dynamicadaptivestreamingoverhttp,是mpeg推出的自适应流媒体技术。mpeg动态图像专家组(movingpictureexpertsgroup)是国际标准化组织iso(internationalstandardizationorganization)与国际电工委员会iec(internationalelectrotechnicalcommission)于1988年成立的专门针对运动图像和语音压缩制定国际标准的组织。
假设通过步骤十一得到其视频片段数目为n,音频片段数目为m,当前数据文件所记录的视频和分辨率下的第i段dash视频片段vi的数据长度为lvi,开始播放时间为tvi,播放时长为pvi,第j段音频片段aj的数据长度为laj,开始播放时间为taj,播放时长为paj,其中1≤i≤n,1≤j≤m。
常规并行传输指纹和非常规并行传输指纹的计算方法为:
(1)初始化设置所有视频片段和音频片段为不可能并行传输;
(2)i=1;
(3)读取vi片段信息;
(4)j=1;
(5)读取aj片段信息;
(6)如果(taj≥tviandtaj<tvi+pvi)or(taj+paj>tviandtaj+paj≤tvi+pvi)是真,进入(7),否则进入(8);
(7)如果aj已有常规并行传输标记,表明常规情况下该音频片段应该已经传输过了,此时再次出现在并行传输里,则为非常规并行传输,记录非常规并行传输指纹(vi,aj),否则记录常规并行传输指纹(vi,aj),并为音频片段aj标注常规并行传输标记;
(8)j++;
(9)如果有下一个音频片段,进入(5);
(10)i++;
(11)如果有下一个视频片段,进入(3),否则结束本次计算过程。
根据上述计算流程,将步骤十一中获得的视频基本信息指纹带入判断公式做并行传输判断,获得常规并行传输指纹:(v1,a1),(v1,a2),(v2,a3),(v3,a4),(v4,a5),(v5,a6);非常规并行传输指纹:(v2,a2),(v3,a3),(v4,a4),(v5,a5),(v6,a6)。
步骤十三:将获得的视频基本信息指纹和视频传输指纹存入指纹数据库,文件指针后移;
步骤十四:如果还有待分析的数据文件,进入步骤十一,否则结束本次指纹数据库数据收集过程。此外,也可以是计算全部视频传输指纹后,将获得的视频基本信息指纹和视频传输指纹存入指纹数据库。
上述实施例仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和等同替换,这些对本发明权利要求进行改进和等同替换后的技术方案,均落入本发明的保护范围。