CN115914185A - 一种视频文件播放与传输方法和装置 - Google Patents
一种视频文件播放与传输方法和装置 Download PDFInfo
- Publication number
- CN115914185A CN115914185A CN202211376051.5A CN202211376051A CN115914185A CN 115914185 A CN115914185 A CN 115914185A CN 202211376051 A CN202211376051 A CN 202211376051A CN 115914185 A CN115914185 A CN 115914185A
- Authority
- CN
- China
- Prior art keywords
- video stream
- video
- file
- data
- segment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 239000012634 fragment Substances 0.000 claims abstract description 157
- 238000012795 verification Methods 0.000 claims abstract description 144
- 230000005540 biological transmission Effects 0.000 claims abstract description 9
- 238000005070 sampling Methods 0.000 claims description 17
- 238000013467 fragmentation Methods 0.000 abstract description 3
- 238000006062 fragmentation reaction Methods 0.000 abstract description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000004476 near response Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Images
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请提供了一种视频文件播放与传输方法和装置,本申请在验证基于索引文件生成的第一验证值与接收到的第一校验值一致之后,向服务器请求视频流分片。每当从服务器获得的视频流分片的数据量达到一个逻辑分段的目标数据量时,基于缓存的逻辑分段的数据,生成逻辑分段的第二验证值,当该第二验证值与索引文件中该逻辑分段的第二校验值相同时,便输出该逻辑分段的数据,从而无需等待整个视频流分片下载完毕后再解析并播放视频流分片,便可以在验证出视频流分片中一个逻辑分段的数据安全性便可以播放该逻辑分段的数据,也就可以实现在视频流传输过程中,边校验视频数据边播放视频,减少了视频播放的等待时间,提高了播放速度。
Description
技术领域
本申请涉及视频处理技术领域,更具体地说,涉及一种视频文件播放与传输方法和装置。
背景技术
随着互联网技术的不断发展,网络视频在人们日常生活中越来越重要。由于网络的开放性,黑客攻击、内容篡改等安全性的问题时有发生。对于一些重要的视频,如果视频内容被攻击篡改,将会造成无法预计的损失。
目前,为了避免视频内容被篡改,可以是由服务器端生成视频文件的哈希,并通过视频接收端校验视频的哈希值是否正确,以验证视频文件是否被篡改。但是基于视频文件的哈希的防篡改技术中,客户端需要下载了完整的视频切片后才能进行哈希计算,并在基于哈希计算结果验证出整个视频切片未被篡改后才能播放视频切片,导致需要等待较长时间才能播放视频,影响了视频播放速度。
发明内容
有鉴于此,本申请提供了一种视频文件播放与传输方法和装置,能够在验证视频未被篡改的情况下,及时播放视频,减少播放视频的等待时间,提高视频的播放速度。
为了实现上述目的,一方面,本申请提供了一种视频文件播放方法,包括:
从服务器获取待播放的视频的索引文件以及用于校验所述索引文件的第一校验值,所述索引文件包括:所述视频的视频流文件中各视频流分片的网络地址、校验值信息以及校验参考信息,所述视频流分片的校验值信息包括:所述视频流分片对应的至少一个逻辑分段各自的第二校验值;
基于所述索引文件,生成用于验证所述索引文件的第一验证值;
如果所述第一校验值与所述第一验证值相同,基于所述视频流分片的网络地址,向服务器请求所述视频流分片;
缓存所述服务器传输的所述视频流分片的数据;
如果基于所述校验参考信息确认缓存的所述视频流分片的数据量达到一个逻辑分段的目标数据量时,根据缓存的所述逻辑分段的数据,生成所述逻辑分段的第二验证值;
如果所述逻辑分段的第二验证值与所述逻辑分段的第二校验值相同,输出缓存的所述逻辑分段的数据,以播放所述逻辑分段的数据。
优选地,所述基于所述索引文件,生成用于验证所述索引文件的第一验证值,包括:
基于所述索引文件的内容、所述视频的视频流名称以及密钥,利用信息摘要算法,生成用于验证所述索引文件的第一验证值,所述密钥为服务端与客户端预先约定的密钥。
优选地,所述校验参考信息包括:校验等级、所述视频流分片的文件大小以及所述视频流分片的文件时长,所述校验等级用于表征所述视频流分片中各个逻辑分段的划分方式;
在所述生成所述逻辑分段的第二验证值之前,还包括:
基于所述校验等级、视频流分片的文件大小以及视频流分片的文件时长,确定所述视频流分片中各个逻辑分段的目标数据量;
所述如果基于所述校验参考信息确认缓存的所述视频流分片的数据量达到一个逻辑分段的目标数据量时,根据缓存的所述逻辑分段的数据,生成所述逻辑分段的第二验证值,包括:
如果基于所述各个逻辑分段的目标数据量,确认缓存的所述视频流分片的数据量达到一个逻辑分段的目标数据量时,以所述逻辑分段的结束位置为基准,从缓存的所述视频流分片的数据中获取用于验证所述逻辑分段的验证数据;
基于所述逻辑分段对应的验证数据,生成第二验证值。
优选地,所述以所述逻辑分段的结束位置为基准,从缓存的所述视频流分片的数据中获取用于验证所述逻辑分段的验证数据,包括:
以所述逻辑分段的结束位置为基准,从缓存的所述视频流分片的数据中获取所述逻辑分段的结束位置之后设定数据量的验证数据。
优选地,所述校验等级表征所述视频流分片中每秒内采样点的个数,通过所述采样点将所述视频流分片划分为至少一个逻辑分段;
所述基于校验等级、视频流分片的文件大小以及视频流分片的文件时长,确定所述视频流分片中各个逻辑分段的目标数据量,包括:
基于所述视频流分片的文件时长以及设定的单位时间,确定所述视频流分片对应的目标时长,所述目标时长为所述单位时间的整数倍且不超过所述视频流分片的文件时长的最大时长;
基于所述目标时长以及所述视频流分片的文件大小,确定所述视频流分片中每秒的文件数据量;
基于所述文件数据量,确定所述视频流分片对应的目标文件数量,所述目标文件数量为不小于所述文件数据量且是设定的数据量单位的整数倍的最小数据量;
基于所述校验等级,确定所述视频流分片中每秒内采样点的数量;
基于所述目标文件数量和所述采样点的数量,确定所述视频流分片中各个逻辑分段的目标数据量。
优选地,所述校验值信息为经过加密的数组;
在生成第二验证值之前,还包括:
解密出校验值信息中包含的数组;
从所述数组中提取出所述视频流分片中各逻辑分段对应的第二校验值。
优选地,还包括:
若所述第一校验值和所述第一验证值不同,输出用于提示所述视频流分片存在数据异常的提示信息。
又一方面,本申请还提供了一种视频文件传输方法,应用于服务器,所述方法包括:
获得客户端发送的视频文件请求,所述视频文件请求指示有请求的视频的信息;
基于所述视频文件请求,获得所述视频的索引文件以及用于校验所述索引文件的第一校验值,所述索引文件包括:所述视频的视频流文件中各视频流分片的网络地址、校验值信息以及校验参考信息;
向客户端返回所述索引文件及所述第一校验值;
获得客户端发送的视频流请求,所述视频流请求用于请求视频流分片的数据;
向客户端传输所述视频流分片的数据。
优选地,在所述服务器为内容分发节点的情况下,获得所述视频的索引文件以及用于校验所述索引文件的第一校验值,包括:
如果内容分发节点存储有所述视频的索引文件以及所述索引文件的第一校验值,将存储的所述视频的索引文件以及所述第一校验值发送给所述客户端;
如果所述内容分发节点未存储有所述视频的索引文件以及所述索引文件的第一校验值,从所述视频的源服务器获取所述视频的索引文件以及所述索引文件的第一校验值,将所述视频的索引文件以及所述索引文件的第一校验值返回给客户端,并在所述内容分发节点中存储所述视频的索引文件以及所述索引文件的第一校验值。
又一方面,本申请还提供了一种视频文件播放装置,包括:
视频获取单元,用于从服务器获取待播放的视频的索引文件以及用于校验所述索引文件的第一校验值,所述索引文件包括:所述视频的视频流文件中各视频流分片的网络地址、校验值信息以及校验参考信息,所述视频流分片的校验值信息包括:所述视频流分片对应的至少一个逻辑分段各自的第二校验值;
第一验证值生成单元,用于基于所述索引文件,生成用于验证所述索引文件的第一验证值;
视频请求单元,用于如果所述第一校验值与所述第一验证值相同,基于所述视频流分片的网络地址,向服务器请求所述视频流分片;
视频缓存单元,用于缓存所述服务器传输的所述视频流分片的数据;
第二验证值生成单元,用于如果基于所述校验参考信息确认缓存的所述视频流分片的数据量达到一个逻辑分段的目标数据量时,根据缓存的所述逻辑分段的数据,生成所述逻辑分段的第二验证值;
输出数据单元,用于如果所述逻辑分段的第二验证值与所述逻辑分段的第二校验值相同,输出缓存的所述逻辑分段的数据,以播放所述逻辑分段的数据。
本申请中,在基于视频的索引文件生成的第一验证值,并验证该第一验证值与接收到的第一校验值一致之后,才会向服务器请求视频的视频流分片,从而可以减少由于索引文件被篡改而导致获取到被修改或者其他原因导致的错误视频流。在此基础上,每当从服务器获得的视频流分片的数据量达到一个逻辑分段的目标数据量时,会基于缓存的逻辑分段的数据,生成逻辑分段的第二验证值,并在验证该第二验证值与索引文件中该逻辑分段的第二校验值相同时,便可以输出该逻辑分段的数据,从而无需等待整个视频流分片下载完毕后再解析并播放视频流分片,便可以在验证出视频流分片中一个逻辑分段的数据安全性便可以播放该逻辑分段的数据,也就可以实现在视频流传输过程中,边校验视频数据边播放视频,减少了视频播放的等待时间,提高了播放速度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种视频文件播放的一种流程示意图;
图2为本申请实施例提供的一种逻辑分段的示意图;
图3为本申请实施例提供的确定逻辑分段的目标数据量的一种流程示意图;
图4为本申请实施例提供的一种视频文件传输的一种交互流程示意图;
图5为本申请实施例提供的一种视频文件播放装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面对本申请实施例提供的一种视频文件播放与传输方法进行介绍。
如图1,示出了本申请实施例提供的视频文件播放的一种流程示意图,本申请可以应用于支持视频播放的客户端,该客户端可以为播放器等多媒体播放应用所在的手机或者笔记本电脑等,对此不加限制。
本实施例的方法包括:
步骤S100、从服务器获取待播放的视频的索引文件以及用于校验索引文件的第一校验值。
如,客户端向服务器发送视频文件请求,在视频文件请求中包括待请求的视频的路径信息。为了防止不同的路径下存在相同的名称的视频,该路径信息中包括视频的目录以及视频的名称。
其中,该索引文件的第一校验值用于校验接收到的索引文件是否被篡改。
该视频的索引文件为记录了一个视频的索引信息的纯文本文件,基于该索引文件用于定位该视频的数据资源。具体的,索引文件至少包括该视频的视频流文件中的各视频流分片的网络地址。
在本申请中,视频文件是以视频流形式提供给客户端,因此,该视频的视频文件由至少一个视频流分片组成。索引文件的视频流分片的网络地址用于指示视频流分片的存储位置,以便向服务器请求视频流分片的网络地址对应的视频流分片。
在本申请中,为了能够验证该视频的文件内容是否被篡改,在该索引文件中还包括:视频的视频流文件中各视频流分片的校验值信息和校验参考信息。
具体的,校验值信息用于检验视频流分片是否被篡改。该视频流分片的校验值信息可以包括:视频流分片对应的至少一个逻辑分段各自的第二校验值。
本方案中,将视频流分片划分为若干个逻辑分段,以便后续单独对每个逻辑分段进行校验,因此视频流分片中的每个逻辑分段对应一个第二校验值,该第二校验值用于检验视频流分片中的逻辑分段的数据是否被篡改。在一种可能的实现方式中,为了能够进一步提高视频数据的安全性,校验值信息可以为经过加密的数组。数组是为了方便处理数据,将相同类型的若干个数据元素进行有序排列,这些有序排列的同类数据元素的集合称为数组。数组一般应用在程序设计中,一个数组可以分解为多个数据元素。在本申请中该数组是由多个逻辑分段各自的第二校验值组成。其中,加密的方法有多种,如:利用3DES、AES等算法对数组进行对称加密,在本申请中,对于对数组进行加密的方法不加限制。
可以理解的是,由于校验值信息是加密后得到的,因此,在对视频流进行验证之前,需要对该校验值信息进行解密,解密出校验值信息中包含的数组,之后从该数组中可以提取出若干个第二校验值。
在本申请中,解密的具体方式与加密的方法有关,具体可以预先在客户端侧配置解密规则,或者是由客户端与服务器预先协商解密方式等,在此对解密方式不加限制。
步骤S110、基于索引文件,生成用于验证索引文件的第一验证值。
其中,生成该第一验证值的方式可以有多种可能。如,如果服务器侧通过计算索引文件的哈希值来生成该第一校验值,那么客户端可以计算该索引文件的哈希值,得到该第一验证值。
又如,为了进一步提高索引文件的安全性,本申请中服务器侧可以结合索引文件的内容、视频流的名称和密钥来生成第一校验值。相应的,客户端可以根据索引文件的内容、视频流的名称和密钥,利用信息摘要算法,生成检验索引文件的第一验证值。通过比较生成的第一校验值和接收的第一校验值是否相同,来判断接收的索引文件是否被篡改过。
其中,该密钥是在明文转换为密文或者密文转换为明文时输入的参数,可以有效地保护传输的数据。本方案中的密钥为服务器和客户端提前约定的,如,密钥可以为提前设定好的字符串,也可以是服务器与客户端之间动态更新的字符串,在本申请中,对于密钥的设置不加限制。
进一步的,本申请还可以根据视频的重要程度,由服务器来设置是否需要校验该视频的视频数据。在生成第一验证值之前,还需要判断索引文件中的是否具有防篡改标识。若索引文件中不具备防篡改标识,就说明无需校验该视频的数据是否被篡改,因此,客户端可以直接向服务器请求视频流分片。反之,如果索引文件中具有防篡改标识,则需要生成第一验证值,通过比较索引文件的第一验证值与第一校验值,以判断该索引文件是否被篡改。
步骤S120、如果第一校验值与第一验证值相同,基于视频流分片的网络地址,向服务器请求视频流分片。
其中,当第一校验值与第一验证值相同时,可以表示接收到的索引文件未被篡改过,因此,可以基于索引文件中视频流分片的网络地址来获得视频流分片的数据。
相应的,当第一校验值与第一验证值不同时,表示接收到的索引文件并非服务器原本生成的索引文件,即接收到的索引文件的内容被篡改过。在索引文件的内容被篡改后,索引文件中指示出的各个视频分片的网络地址也就是错误的,从而使得客户端基于索引文件会获得不属于该视频的视频数据,导致视频数据播放错误或者异常。
进一步的,在第一验证值与第一校验值不同时,输出用于提示视频流分片存在数据异常的提示信息。其中,输出该提示信息方式有多种,如:显示无法播放的字样,显示视频可能被篡改的预警信息等等。
可以理解的是,视频的视频文件中至少一个视频流分片是具有先后顺序的,因此,本申请可以按照该至少一个视频流分片的先后顺序,依次确定待请求的视频流分片,并向服务器请求该视频流分片。当然,对于客户端具体请求视频流分片的具体请求过程本申请不加限制。
需要说明的是,由于视频文件中视频流分片可能会有多个,因此,向服务器请求视频流分片的动作可以被多次执行,直到客户端请求到视频文件中所有视频流分片为止。
步骤S130、缓存服务器传输的视频流分片的数据。
其中,服务器根据视频流分片的网络地址,查找对应的视频流分片并将该视频流分片以视频流的形式传输给客户端。在服务器传输数据的过程中,客户端缓存归属于该视频流分片的数据,以便缓存的数据的数据量到达条件时,执行后续操作。
步骤S140、如果基于校验参考信息确认缓存的视频流分片的数据量达到一个逻辑分段的目标数据量时,根据缓存的逻辑分段的数据,生成逻辑分段的第二验证值。
其中,校验参考信息可以包括用于确认视频流分片中待验证的各个逻辑分段的信息,因此,基于校验参考信息可以确定出视频流分片中的各逻辑分段。
在本申请中,一个视频流分片可以划分为一个或者多个逻辑分段,该逻辑分段并非真实分割视频流分片得到的,而仅仅是从逻辑上将视频流分片分成的小段。
其中,校验参考信息可以通过多种形式来指示出视频流分片中各个逻辑分段对应的位置,因此,校验参考信息包含的具体信息也可以有多种可能。如,校验参考信息可以包括视频流分片中各个逻辑分段在视频流分片中的起始时间点和结束时间点等。
在一种可选方式中,该校验参考信息中可以包括校验等级、视频流分片的文件大小以及视频流分片的文件时长。
其中,校验等级用于表征视频流分片中的各个逻辑分段的划分方式。具体可以根据视频文件的重要程度设置不同的校验等级,等级越高,视频文件被划分出的逻辑分段的数量越多,校验也就越准确。在实际应用中,在索引文件中可以单独采用一个字段来表示该校验字段,例如可以用EXT-X-CHECK-LEVEL字段来记录校验等级。
该视频流分片的文件大小反映的是视频流分片的数据量大小,而视频流分片的文件时长也就是视频流分片的整体时长。
在本申请中,客户端可以通过校验等级确定视频流分片中各个逻辑分段的划分方式,利用确定的划分方式可以确定出视频流分片中的各个逻辑分段。在此基础之上,客户端根据视频流分片的文件大小和视频流分片的文件时长综合确定出视频流分片中各个逻辑分段的目标数据量。
可以理解的是,视频流分片中的校验等级用于表征视频流分片中各个逻辑分段的划分方式,基于此,结合校验等级可以确定出视频流分片中各个逻辑分段的大小,即,目标逻辑分段的数据量,为了便于区分,将目标逻辑分段的数据量称为目标数据量。因此,基于各个逻辑分段的目标数据量可以判断确认缓存的视频流分片的数据量是否达到一个逻辑分段的目标数据量,从而可以确定当前是否已缓存了视频流分片中一个逻辑分段的数据。
结合图2,说明如何利用校验等级确定视频流分片中各个逻辑分段的划分方式,进而划分出各个逻辑分段。如图2所示,由于校验等级越高则校验越准确,示例中校验等级为4级,对应地,将视频流分片划分为4个逻辑分段,之后分别对各个逻辑分段进行校验。
相应的,当客户端确认缓存的视频流分片的数据量达到一个逻辑分段的目标数据量时,便可以对已缓存的该逻辑分段的数据进行验证。其中,可以通过生成该逻辑分段的第二验证值对该逻辑分段的数据进行验证。
在一种可选的方式下,可以是以该逻辑分段的结束位置为基准,获取用于验证该逻辑分段的验证数据。基于获取的验证数据生成该逻辑分段的第二验证值。
其中,获取的验证数据可以是以该逻辑分段的结束位置为基准,获取该逻辑分段的结束位置之后接收到的设定数据量的数据作为验证数据;也可以是以该逻辑分段的结束位置为基准,获取该逻辑分段的结束位置之前已经缓存的设定数据量的数据作为验证数据。其中,该设定数据量可以根据实际情况设定,如设定数据量可以为1KB或者2KB等。本申请中,对于设定数据量不加限制。
如:如图2所示,当缓存的视频流分片的数据为逻辑分段2时,此时,从逻辑分段2的结束位置,即结束位置2处获取验证数据。可以获取结束位置2之后1KB的数据作为验证数据。
其中,利用验证数据生成逻辑分段的第二校验值的方式有多种。本申请中,介绍一种可选的方式,客户端首先计算验证数据的校验和,得到校验和结果。校验和运算用于校验接收到的数据是否正确。在接收端进行校验和运算时,把需要校验的内容看成以16位为单位的数字,依次进行二进制反码求和。其次,对校验和结果进行移位运算,即可得到第二验证值。
如:将1KB的验证数据进行校验和计算,得到2Byte的校验和结果,再将该校验结果右移8位进行移位运算,得到1Byte的数据,该数据即为第二验证值。
进一步的,本申请中该校验参考信息中还可以包括校验启动标识。其中,校验启动标识用于判断该视频流分片是否开启防篡改校验。该校验启动标识可以采用索引文件中的一个字段表示,例如可以采用EXT-X-CHECK字段表示校验启动标识。当EXT-X-CHECK字段的值为0时,表示该视频流分片不需要校验,客户端则直接将缓存的视频流分片的数据输出给播放器渲染。当EXT-X-CHECK字段为1时,表示该视频流分片需要校验,此时客户端需要解密视频流分片的校验值信息。
步骤S150、如果该逻辑分段的第二验证值与该逻辑分段的第二校验值相同,输出缓存的逻辑分段的数据,以播放逻辑分段的数据。
其中,利用从校验值信息解密出的该逻辑分段的第二校验值与生成的该逻辑分段的第二验证值进行比较,可以判断该逻辑分段的数据是否被篡改。当逻辑分段对应的第二校验值与第二验证值不同时,则表示该逻辑分段的数据存在篡改等异常。
作为一种可选方式,在第二验证值与第二校验值不同时,客户端可以输出数据异常提醒。
当逻辑分段对应的第二校验值与第二验证值相同时,则表示该逻辑分段的数据无异常,继而客户端将缓存的逻辑分段的数据进行播放输出。
其中,客户端将缓存的逻辑分段的输出给播放器,可以是将验证后的逻辑分段缓存到播放队列中,若此时播放器当前待播放的数据为逻辑分段,则可以播放该逻辑分段;若此时正在播放该逻辑分段之前的视频数据,则需要等待到达该视频分段的播放时刻,播放该逻辑分段。
本申请的方案在基于视频的索引文件生成的第一验证值,并验证该第一验证值与接收到的第一校验值一致之后,才会向服务器请求视频的视频流分片,从而可以减少由于索引文件被篡改而导致获取到被修改或者其他原因导致的错误视频流。在此基础上,每当从服务器获得的视频流分片的数据量达到一个逻辑分段的目标数据量时,会基于缓存的逻辑分段的数据,生成逻辑分段的第二验证值,并在验证该第二验证值与索引文件中该逻辑分段的第二校验值相同时,便可以输出该逻辑分段的数据,从而无需等待整个视频流分片下载完毕后再解析并播放视频流分片,便可以在验证出视频流分片中一个逻辑分段的数据安全性便可以播放该逻辑分段的数据,也就可以实现在视频流传输过程中,边校验视频数据边播放视频,减少了视频播放的等待时间,提高了播放速度。
本申请中,考虑到视频流分片的文件大小并不是单位时间的整数倍,而且视频流分片的文件时长也不一定是数据单位的整数倍,为了能够更合理的确定视频流分片中逻辑分段的目标数据量,下面以一种确定逻辑分段的目标数据量的实现方式为例说明。如图3,其示出了本申请中确定逻辑分段的目标数据量的一种流程示意图,该流程可以包括如下步骤:
步骤S200、根据视频流分片的文件时长及设定的单位时间,确定该视频流分片的目标时长。
其中,单位时间可以根据视频流分片的实际需要设定,如:单位时间可以为一秒钟、一分钟等。在实际的应用中,通常将视频流分片中的逻辑分段中的单位时间设置为秒,因此,为了方便划分逻辑分段,该视频流分片的单位时间也设置为秒。
具体地,当视频流分片的文件时长为单位时间的整数倍时,直接将该视频流分片的文件时长设置为目标时长。当视频流分片的文件时长不是单位时间的整数倍时,则将目标时长设置为单位时间的整数倍且不超过视频流分片的文件时长的最大时长。
例如:视频流分片的文件时长为1小时5分6秒,那么该视频流分片的目标时长为1小时5分6秒。或者,视频流分片的文件时长为1小时5分6秒20毫秒,那么该视频流分片的目标时长为1小时5分6秒。
步骤S210、基于目标时长和视频流分片的文件大小,确定该视频流分片对应的目标文件数量。
其中,目标文件数量是不小于视频流分片中每秒内的文件数据量,且为数据量单位的最小数据量。其中,视频流分片的文件也可以根据实际需要设定的相应的数据量单位,如:MB、KB等,在本申请中,可根据实际需要设定,对此不加限制。
具体地,根据目标时长和视频流分片的文件大小,可以计算得到该视频流分片内每秒的文件数据量。当每秒内的文件数据量为数据量单位的整数倍时,直接将该文件数据量设定为目标文件数量。当每秒内的文件数据量不是数据量单位的整数倍时,则将目标文件数量设置为不小于该文件数据量且是数据量单位的整数倍的最小数据量。
步骤S220、基于校验等级,确定该视频流分片中每秒内采样点的数量。
其中,校验等级表征视频流分片中每秒内采样点的个数,因此,可以利用采样点将视频流分片划分为至少一个逻辑分段。
步骤S230、基于目标文件数量和采样点的数量,确定该视频流分片中各个逻辑分段的目标数据量。
其中,在实施例中,基于校验等级可以确定采样点的个数,进一步确定视频流分片划分的逻辑分段的数量。在此基础之上,基于获得的目标文件数量,可以确定该视频流分片中各个逻辑分段的目标数据量。
本申请中,利用为视频流分片的文件大小设置单位时间以及为视频流分片的文件时长设置数据量单位,将视频流分片的文件大小和视频流分片的文件时长进行了取整的运算,从而有利于更为合理确定逻辑分段的目标数据量,使得计算逻辑分段更加有序合理。
在本申请中,在服务器和客户端都利用图2实施例的方式来确定逻辑分段的目标数据量,从而可以使得客户端与服务器确定的逻辑分段是相同的,进而使得服务端生成的第二校验值和客户端生成的第二验证值的生成方式保持一致,进而能够利用第二验证值和第二校验值去验证逻辑分段的数据是否被篡改。
接下来,本申请实施例从服务器角度,对本申请的视频文件传输方法进行介绍,结合图4所示,对视频文件传输方法进行说明。本实施例的方案可以应用于服务器,该服务器可以是视频的源服务器,还可以是用于存储视频的内容分发网络(Content DeliveryNetwork,CDN)中的内容分发节点。本实施例的方法可以包括:
步骤S300、获得客户端发送的视频文件请求,视频文件请求包含所请求的视频的信息。
其中,服务器接收客户端发送的视频文件的请求,在该请求中包含了所请求的视频的信息,如:视频的名称、视频的地址等等,以便服务器查找该视频文件。
步骤S310、基于视频文件请求,获得视频的索引文件以及用于校验索引文件的第一校验值。
其中,索引文件包括:视频的视频流文件中各视频流分片的网络地址、校验值信息以及校验参考信息。
具体地,索引文件、第一校验值以及索引文件中包含的信息在前文中已经介绍过,此处不再赘述。
其中,为了提高传输的索引文件的安全性,本申请的源服务器可以生成用于校验索引文件是否被篡改的第一校验值。该第一校验值可以基于索引文件的内容、视频流的名称和密钥来生成。密钥已在前文中介绍。此处不再赘述。
其中,索引文件中包含的校验值信息是由源服务器生成的,该校验值信息用于校验视频流分片是否被篡改。
如,源服务器可以将视频流分片划分为若干个逻辑分段,基于每个逻辑分段的数据生成与该逻辑分段对应的第二校验值。相应的,校验值信息中可以包括视频流视频分片中各逻辑分段对应的第二校验值。
在一种可能的实现方式中,校验值信息可以是经过加密的数组。具体的,校验值信息是可以通过将生成的视频流分片中各逻辑分段的第二校验值依次存入数组,并对该数组进行加密处理得到。
在本申请中,生成第二校验值与第二验证值的实现过程相同,此处不再赘述。
其中,服务器可以为源服务器或内容分发节点。其中,内容分发节点能够缓存来自源服务器的数据,如视频或者索引文件等,可以为互联网用户的终端提供就近响应。
具体地,当服务器为内容分发节点时,若在内容分发节点存储有客户端请求的该视频文件,则在该内容分发节点获取索引文件和用于校验该索引文件的第一校验值。若该内容分发节点未存储有该视频文件,则从源服务器获取索引文件和用于校验该索引文件的第一校验值。同时内容分发节点会缓存该视频的索引文件以及用于检验索引文件的第一校验值,以便客户端再次请求该视频时,内容分发节点可以直接发送该视频的相关信息。
步骤S320、向客户端返回索引文件及第一校验值。
其中,服务器在获取索引文件和第一校验值之后,根据客户端的请求,将索引文件和第一校验值返回给客户端,以便客户端进行校验。在本申请中,对于返回信息的具体方式不加限制。
步骤S330、获得客户端发送的视频流请求,视频流请求用于请求视频流分片的数据。
其中,由于一个视频是由若干个视频流分片组成的,因此,在请求视频时,客户端根据索引文件中包含的各视频流分片的网络地址,依次向服务器请求视频流分片。
步骤S340、向客户端传输视频流分片的数据。
其中,服务器根据客户端请求中的视频流分片的网络地址,获取对应的视频流分片并返回给客户端该视频流分片的数据。
本申请中,从服务器的角度出发,服务器发送给客户端索引文件和用于校验索引文件的第一校验值,同时在索引文件中还包括校验视频流分片的校验值信息,有利于客户端查证接收到的索引文件以及视频流分片中的数据是否正确。
下面对本申请实施例提供的视频文件播放装置进行介绍,下文描述的视频文件播放装置与上文描述的视频文件播放方法可相互对应参照。
如图5,示出了本申请中的视频文件播放装置的一种结构示意图,该视频文件播放装置包括:
视频获取单元400,用于从服务器获取待播放的视频的索引文件以及用于校验索引文件的第一校验值,索引文件包括:视频的视频流文件中各视频流分片的网络地址、校验值信息以及校验参考信息,视频流分片的校验值信息包括:视频流分片对应的至少一个逻辑分段各自的第二校验值;
第一验证值生成单元410,用于基于索引文件,生成用于验证索引文件的第一验证值;
视频请求单元420,用于如果第一校验值与第一验证值相同,基于视频流分片的网络地址,向服务器请求视频流分片;
视频缓存单元430,用于缓存服务器传输的视频流分片的数据;
第二验证值生成单元440,用于如果基于校验参考信息确认缓存的视频流分片的数据量达到一个逻辑分段的目标数据量时,根据缓存的逻辑分段的数据,生成逻辑分段的第二验证值;
输出数据单元450,用于如果逻辑分段的第二验证值与逻辑分段的第二校验值相同,输出缓存的逻辑分段的数据,以播放逻辑分段的数据。
可选的,该视频获取单元获取到的索引文件中该校验参考信息可以包括:校验等级、视频流分片的文件大小以及视频流分片的文件时长,校验等级用于表征视频流分片中各个逻辑分段的划分方式;
在此基础上,本申请的视频文件播放装置还包括:
确定目标数据量单元,用于在第二验证值生成单元生成逻辑分段的第二验证值之前,基于校验等级、视频流分片的文件大小以及视频流分片的文件时长,确定视频流分片中各个逻辑分段的目标数据量;
相应的,第二验证值生成单元可以包括:
验证数据获取单元,用于如果基于各个逻辑分段的目标数据量,确认缓存的视频流分片的数据量达到一个逻辑分段的目标数据量时,以逻辑分段的结束位置为基准,从缓存的视频流分片的数据中获取用于验证逻辑分段的验证数据;
第二验证值生成子单元,用于基于逻辑分段对应的验证数据,生成第二验证值。
可选的,该校验等级表征视频流分片中每秒内采样点的个数,通过采样点将视频流分片划分为至少一个逻辑分段;
在此基础之上,确定目标数据量单元可以包括:
目标时长确定单元,用于基于视频流分片的文件时长以及设定的单位时间,确定视频流分片对应的目标时长,目标时长为单位时间的整数倍且不超过视频流分片的文件时长的最大时长;
文件数据量确定单元,用于基于目标时长以及视频流分片的文件大小,确定视频流分片中每秒的文件数据量;
目标文件数量确定单元,用于基于文件数据量,确定视频流分片对应的目标文件数量,目标文件数量为不小于文件数据量且是设定的数据量单位的整数倍的最小数据量;
采样点数量确定单元,用于基于校验等级,确定该视频流分片中每秒内采样点的数量;
目标数据量确定单元,用于基于目标文件数量和采样点的数量,确定该视频流分片中各个逻辑分段的目标数据量。
可选的,该视频获取单元获取到的索引文件中该校验值信息为经过加密的数组。
在此基础上,本申请的视频文件播放装置还包括:
解密数组单元,用于在第二验证值生成单元生成逻辑分段的第二验证值之前,解密出校验值信息中包含的数组;
提取第二校验值单元,用于从数组中提取出视频流分片中各逻辑分段对应的第二校验值。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种视频文件播放方法,其特征在于,应用于客户端,包括:
从服务器获取待播放的视频的索引文件以及用于校验所述索引文件的第一校验值,所述索引文件包括:所述视频的视频流文件中各视频流分片的网络地址、校验值信息以及校验参考信息,所述视频流分片的校验值信息包括:所述视频流分片对应的至少一个逻辑分段各自的第二校验值;
基于所述索引文件,生成用于验证所述索引文件的第一验证值;
如果所述第一校验值与所述第一验证值相同,基于所述视频流分片的网络地址,向服务器请求所述视频流分片;
缓存所述服务器传输的所述视频流分片的数据;
如果基于所述校验参考信息确认缓存的所述视频流分片的数据量达到一个逻辑分段的目标数据量时,根据缓存的所述逻辑分段的数据,生成所述逻辑分段的第二验证值;
如果所述逻辑分段的第二验证值与所述逻辑分段的第二校验值相同,输出缓存的所述逻辑分段的数据,以播放所述逻辑分段的数据。
2.根据权利要求1所述的方法,其特征在于,所述基于所述索引文件,生成用于验证所述索引文件的第一验证值,包括:
基于所述索引文件的内容、所述视频的视频流名称以及密钥,利用信息摘要算法,生成用于验证所述索引文件的第一验证值,所述密钥为服务端与客户端预先约定的密钥。
3.根据权利要求1所述的方法,其特征在于,所述校验参考信息包括:校验等级、所述视频流分片的文件大小以及所述视频流分片的文件时长,所述校验等级用于表征所述视频流分片中各个逻辑分段的划分方式;
在所述生成所述逻辑分段的第二验证值之前,还包括:
基于所述校验等级、视频流分片的文件大小以及视频流分片的文件时长,确定所述视频流分片中各个逻辑分段的目标数据量;
所述如果基于所述校验参考信息确认缓存的所述视频流分片的数据量达到一个逻辑分段的目标数据量时,根据缓存的所述逻辑分段的数据,生成所述逻辑分段的第二验证值,包括:
如果基于所述各个逻辑分段的目标数据量,确认缓存的所述视频流分片的数据量达到一个逻辑分段的目标数据量时,以所述逻辑分段的结束位置为基准,从缓存的所述视频流分片的数据中获取用于验证所述逻辑分段的验证数据;
基于所述逻辑分段对应的验证数据,生成第二验证值。
4.根据权利要求3所述的方法,其特征在于,所述以所述逻辑分段的结束位置为基准,从缓存的所述视频流分片的数据中获取用于验证所述逻辑分段的验证数据,包括:
以所述逻辑分段的结束位置为基准,从缓存的所述视频流分片的数据中获取所述逻辑分段的结束位置之后设定数据量的验证数据。
5.根据权利要求3所述的方法,其特征在于,所述校验等级表征所述视频流分片中每秒内采样点的个数,通过所述采样点将所述视频流分片划分为至少一个逻辑分段;
所述基于校验等级、视频流分片的文件大小以及视频流分片的文件时长,确定所述视频流分片中各个逻辑分段的目标数据量,包括:
基于所述视频流分片的文件时长以及设定的单位时间,确定所述视频流分片对应的目标时长,所述目标时长为所述单位时间的整数倍且不超过所述视频流分片的文件时长的最大时长;
基于所述目标时长以及所述视频流分片的文件大小,确定所述视频流分片中每秒的文件数据量;
基于所述文件数据量,确定所述视频流分片对应的目标文件数量,所述目标文件数量为不小于所述文件数据量且是设定的数据量单位的整数倍的最小数据量;
基于所述校验等级,确定所述视频流分片中每秒内采样点的数量;
基于所述目标文件数量和所述采样点的数量,确定所述视频流分片中各个逻辑分段的目标数据量。
6.根据权利要求1所述的方法,其特征在于,所述校验值信息为经过加密的数组;
在生成第二验证值之前,还包括:
解密出校验值信息中包含的数组;
从所述数组中提取出所述视频流分片中各逻辑分段对应的第二校验值。
7.根据权利要求1所述的方法,其特征在于,还包括:
若所述第一校验值和所述第一验证值不同,输出用于提示所述视频流分片存在数据异常的提示信息。
8.一种视频文件传输方法,其特征在于,应用于服务器,所述方法包括:
获得客户端发送的视频文件请求,所述视频文件请求指示有请求的视频的信息;
基于所述视频文件请求,获得所述视频的索引文件以及用于校验所述索引文件的第一校验值,所述索引文件包括:所述视频的视频流文件中各视频流分片的网络地址、校验值信息以及校验参考信息;
向客户端返回所述索引文件及所述第一校验值;
获得客户端发送的视频流请求,所述视频流请求用于请求视频流分片的数据;
向客户端传输所述视频流分片的数据。
9.根据权利要求8所述的方法,其特征在于,在所述服务器为内容分发节点的情况下,获得所述视频的索引文件以及用于校验所述索引文件的第一校验值,包括:
如果内容分发节点存储有所述视频的索引文件以及所述索引文件的第一校验值,将存储的所述视频的索引文件以及所述第一校验值发送给所述客户端;
如果所述内容分发节点未存储有所述视频的索引文件以及所述索引文件的第一校验值,从所述视频的源服务器获取所述视频的索引文件以及所述索引文件的第一校验值,将所述视频的索引文件以及所述索引文件的第一校验值返回给客户端,并在所述内容分发节点中存储所述视频的索引文件以及所述索引文件的第一校验值。
10.一种视频文件播放装置,其特征在于,包括:
视频获取单元,用于从服务器获取待播放的视频的索引文件以及用于校验所述索引文件的第一校验值,所述索引文件包括:所述视频的视频流文件中各视频流分片的网络地址、校验值信息以及校验参考信息,所述视频流分片的校验值信息包括:所述视频流分片对应的至少一个逻辑分段各自的第二校验值;
第一验证值生成单元,用于基于所述索引文件,生成用于验证所述索引文件的第一验证值;
视频请求单元,用于如果所述第一校验值与所述第一验证值相同,基于所述视频流分片的网络地址,向服务器请求所述视频流分片;
视频缓存单元,用于缓存所述服务器传输的所述视频流分片的数据;
第二验证值生成单元,用于如果基于所述校验参考信息确认缓存的所述视频流分片的数据量达到一个逻辑分段的目标数据量时,根据缓存的所述逻辑分段的数据,生成所述逻辑分段的第二验证值;
输出数据单元,用于如果所述逻辑分段的第二验证值与所述逻辑分段的第二校验值相同,输出缓存的所述逻辑分段的数据,以播放所述逻辑分段的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211376051.5A CN115914185A (zh) | 2022-11-04 | 2022-11-04 | 一种视频文件播放与传输方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211376051.5A CN115914185A (zh) | 2022-11-04 | 2022-11-04 | 一种视频文件播放与传输方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115914185A true CN115914185A (zh) | 2023-04-04 |
Family
ID=86488784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211376051.5A Pending CN115914185A (zh) | 2022-11-04 | 2022-11-04 | 一种视频文件播放与传输方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115914185A (zh) |
-
2022
- 2022-11-04 CN CN202211376051.5A patent/CN115914185A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11366878B2 (en) | Method and apparatus for delivering encoded content | |
US8959202B2 (en) | Generating statistics of popular content | |
CN105659240B (zh) | 一种用于发送和验证url签名以进行自适应流中url认证和基于url的内容访问授权的系统和方法 | |
CN113378236B (zh) | 一种证据数据在线保全公证平台及保全方法 | |
US20020152261A1 (en) | Method and system for preventing the infringement of intellectual property rights | |
US20020152262A1 (en) | Method and system for preventing the infringement of intellectual property rights | |
US7526530B2 (en) | System and method for cacheing web files | |
US20090316894A1 (en) | Method and apparatus for checking consistency between digital contents | |
JP2006121689A (ja) | Drmシステムにおけるシステムキーを共有及び生成する方法、並びにその装置 | |
JPH10301904A (ja) | 取引コード化された解読キーを有する暗号システム | |
CA2623430A1 (en) | System and method for software tamper detection | |
US20140259166A1 (en) | Tamper resistant video rendering | |
CN108431819B (zh) | 保护客户端访问视频播放器的drm代理的服务的方法和系统 | |
US20220284130A1 (en) | Content Playlist Integrity | |
CN108881966B (zh) | 一种信息处理方法以及相关设备 | |
CN114301602B (zh) | 一种基于区块链的视频保护方法及装置 | |
WO2016081875A1 (en) | Using hashed media identifiers to determine audience measurement data including demographic data from third party providers | |
CN110224824B (zh) | 数字证书处理方法、装置、计算机设备和存储介质 | |
CN110083786B (zh) | 一种链接验证方法及装置 | |
US8418256B2 (en) | Memory control apparatus, content playback apparatus, control method and recording medium | |
JP2004040209A (ja) | サーバ、icカード、コンテンツの配信方法、コンテンツの取得処理方法およびプログラム | |
US20030093552A1 (en) | Data communication system, data communication method, and computer-readable recording medium for recording program applied to data communication system | |
CN115914185A (zh) | 一种视频文件播放与传输方法和装置 | |
CN111865924A (zh) | 一种监控用户端方法及系统 | |
CN110380843B (zh) | 一种信息处理方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |