CN112995703B - 视频加密方法、装置、计算机设备和存储介质 - Google Patents
视频加密方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112995703B CN112995703B CN202110180005.7A CN202110180005A CN112995703B CN 112995703 B CN112995703 B CN 112995703B CN 202110180005 A CN202110180005 A CN 202110180005A CN 112995703 B CN112995703 B CN 112995703B
- Authority
- CN
- China
- Prior art keywords
- file
- time
- preset
- video
- encrypted
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 74
- 239000012634 fragment Substances 0.000 claims description 97
- 238000013467 fragmentation Methods 0.000 claims description 55
- 238000006062 fragmentation reaction Methods 0.000 claims description 55
- 230000008569 process Effects 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 7
- 238000012804 iterative process Methods 0.000 claims description 4
- 230000003993 interaction Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/254—Management at additional data server, e.g. shopping server, rights management server
- H04N21/2541—Rights Management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2347—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及一种视频加密方法、装置、计算机设备和存储介质,视频加密方法包括:将用户选择的多个待加密视频文件对应的文件对象依次存入至预设文件队列中;对所述预设文件队列中的文件对象依次执行预设操作,直至所述预设文件队列为空,所述预设操作包括:取出所述预设文件队列中最靠前的文件对象,对取出的文件对象所指向的待加密视频文件进行加密,得到对应的加密视频文件。本申请中,用户选择的待加密视频文件的数量不受用户设备的CPU核数的限制,即用户可以批量选择多个待加密视频文件,可见选择的待加密视频文件的数量可以扩展,对于CPU核数较少的用户非常友好。
Description
技术领域
本申请涉及视频处理技术领域,尤其涉及一种视频加密方法、装置、计算机设备和存储介质。
背景技术
目前,视频网站会对用户上传的视频进行数字版权管理保护,在数字版权管理保护时采用的加密方法较为消耗内存和CPU,所以一般根据用户设备CPU的核数n指定用户可以选择的视频文件数量,以及同时创建n个加密实例进行加密,但是由于大量的计算任务会阻塞UI线程,在加密过程中只能等待,选择的视频文件数量也不能扩展,而且对于CPU核数较少的用户更是不友好。例如,对于单核CPU的用户来说,一般只支持用户单次选择一个视频文件进行加密,加密完成之后才能添加第二个视频文件。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种视频加密方法和装置、视频上传方法和装置、计算机设备和存储介质。
第一方面,本申请提供了一种视频加密方法,包括:
将用户选择的多个待加密视频文件对应的文件对象依次存入至预设文件队列中;其中,越早存入所述预设文件队列的文件对象在所述预设文件队列中的位置越靠前;所述文件对象用于指向对应的待加密视频文件;
对所述预设文件队列中的文件对象依次执行预设操作,直至所述预设文件队列为空,所述预设操作包括:取出所述预设文件队列中最靠前的文件对象,对取出的文件对象所指向的待加密视频文件进行加密,得到对应的加密视频文件。
第二方面,本申请提供了一种视频加密装置,包括:
对象存储模块,用于将用户选择的多个待加密视频文件对应的文件对象依次存入至预设文件队列中;其中,越早存入所述预设文件队列的文件对象在所述预设文件队列中的位置越靠前;所述文件对象用于指向对应的待加密视频文件;
视频加密模块,用于对所述预设文件队列中的文件对象依次执行预设操作,直至所述预设文件队列为空,所述预设操作包括:取出所述预设文件队列中最靠前的文件对象,对取出的文件对象所指向的待加密视频文件进行加密,得到对应的加密视频文件。
第三方面,本申请提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本申请中,将用户选择的待加密视频文件对应的文件对象存入预设文件队列中,然后对预设文件队列的文件对象取出并对对应的待加密视频文件进行加密,从而实现视频的串行加密。用户选择的待加密视频文件的数量不受用户设备的CPU核数的限制,即用户可以批量选择多个待加密视频文件,将这些待加密视频文件对应的文件对象依次存入预设文件队列,可见选择的待加密视频文件的数量可以扩展,对于CPU核数较少的用户非常友好。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种视频加密方法的流程示意图;
图2为本申请实施例提供的一种确定最优分片大小的流程示意图;
图3为申请实施例提供的一种视频加密以及上传过程的流程示意图;
图4为本申请实施例提供的一种视频加密装置的结构示意图;
图5为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
第一方面,本申请实施例提供的一种视频加密方法,如图1所示,该方法包括如下步骤:
S110、将用户选择的多个待加密视频文件对应的文件对象依次存入至预设文件队列中;其中,越早存入所述预设文件队列的文件对象在所述预设文件队列中的位置越靠前;所述文件对象用于指向对应的待加密视频文件;
可理解的是,用户选择的待加密视频文件的数量不受用户设备的CPU核数的限制,即用户可以批量选择多个待加密视频文件,进而将这些待加密视频文件对应的文件对象依次存入预设文件队列中。
可理解的是,文件对象和待加密视频文件一一对应,待加密视频文件可存储于硬盘之中,文件对象能够指向待加密视频文件,具体可以通过文件对象中的一个属性指向待加密视频文件,当然文件对象可以具有其他属性。
可理解的是,预设文件队列用于存储待加密视频文件对应的文件对象,最先存入预设文件队列的文件对象在所述预设文件队列中的位置最靠前,最后存入预设文件队列的文件对象在所述预设文件队列中的位置最靠后。
其中,文件对象是特殊类型的Blob对象,Blob对象表示一个不可变、原始数据的类文件对象。文件对象具有多个属性,可以通过这些属性获得文件对象所指向的文件以及文件中的具体信息、数据等。例如,利用File.lastModified可以返回文件对象所指向文件的最后修改时间,利用File.lastModifiedDate可以返回文件对象所指向文件的最后修改对象,利用File.name可以返回文件对象所指向文件的名字等。
S120、对所述预设文件队列中的文件对象依次执行预设操作,直至所述预设文件队列为空,所述预设操作包括:取出所述预设文件队列中最靠前的文件对象,对取出的文件对象所指向的待加密视频文件进行加密,得到对应的加密视频文件。
其中,取出所述预设文件队列中最靠前的文件对象的含义是使预设文件队列中的最靠前的文件对象(即队首的文件对象)出列,具体的取出操作可以通过函数this.fileQueue.shift()实现。将其取出后,根据文件对象的相关属性获知其指向的待加密视频文件,进而对待加密视频文件进行加密处理。这时可以将取出的文件对象删除。在具体实施时,可以在设备存储器中备份所有的文件对象,在从预设文件对列中取出一个文件对象之后,虽然这个文件对象不在预设文件队列中了,但是还在设备存储器中,还可以从存储器中得知预设文件队列中存储过哪些文件对象。
例如,预设文件队列中有3个文件对象,将第一个文件对象取出,对第一个文件对象对应的待加密视频文件进行加密;第一个待加密视频文件加密完成之后,将第二个文件对象取出,对第二个文件对象对应的待加密视频文件进行加密;第二个待加密视频文件加密完成之后,将第三个文件对象取出,对第三个待加密视频文件进行加密。由此实现对三个待加密视频文件的串行加密。
在具体实施时,如果一个视频文件正在加密,而此时用户手动删除了该视频文件,则停止对该视频文件的加密。如果一个视频文件等待加密,而此时用户手动删除了该视频文件,则对该视频文件的文件对象设置一个不加密标记。当在取出该视频文件的文件对象后,发现文件对象具有不加密标记,则不对该视频文件进行加密,进而对预设文件队列中的下一个文件对象执行所述预设操作。
也就是说,S120还可以包括:在取出所述预设文件队列中最靠前的文件对象后,判断所述文件对象是否具有不加密标记,所述不加密标记用于表征对应的文件对象所对应的待加密视频文件被用户从所述多个待加密视频文件中删除:若是,则对所述预设文件队列中下一个最靠前的文件对象执行所述预设操作;否则,执行所述对取出的文件对象所指向的待加密视频文件进行加密。
通过这种方式,用户可以删除某一个或某几个视频文件,不对其进行加密,为用户提供了更多的操作可能,提高用户体验。
在具体实施时,S120中对取出的待加密视频文件进行加密的过程包括:确定最优分片大小,按照所述最优分片大小对所述待加密视频文件进行分片处理,得到多个视频分片,并对所述多个视频分片逐个进行加密。
可理解的是,将视频文件进行分片处理,得到多个视频分片,然后对所有视频分片逐个进行加密,便可以完成对整个视频文件的加密过程。举例来说,最优分片大小为488kb,则按照最优分片大小对视频文件进行分片处理,每一个视频分片的大小为488kb。
其中,最优分片大小会因用户设备的性能、CPU占用率的不同而不同。例如,针对一台用户设备,其CPU占用率在不同的时间段是不同的,因此这台用户设备在不同的时间段内的最优分片大小也是不同的。在视频文件的加密过程中,视频分片并不是越大越好,因为视频分片越大,越会影响到用户与用户设备的页面之间的交互,例如,点击、填写数据等。当然,视频分片也不是越小越好,视频分片越小,一个视频文件对应的视频分片也越多,加密次数也越多,加密相关代码本身的运行次数就会变多,这样加密总时间会变长。为此,我们需要计算出一个最优分片大小。根据调研,当加密时间在50ms时,对用户与页面的交互影响微乎其微,不会影响页面交互的流畅性,加密速度也得到了保证,加密总时间不会很长,因此可以将50ms作为理想加密时间。当然,如果加密时间为其他值时,对用户与页面的交互影响很小,且加密总时间不会很长,也可以将其他值作为理想加密时间。进而计算出加密时间接近理想加密时间时的最优分片大小。
在实际应用中,可以采用多种方式确定最优分片大小,下面介绍其中一种方式:
S1、设置初始的当前分片大小,根据所述当前分片大小确定对应的当前分片时间,将所述当前分片大小作为第一分片大小,并将所述当前分片时间作为第一分片时间;
可理解的是,每一个用户设备的性能不同,对同样大小的视频分片的加密速度也不同。经过测试,针对大多数用户设备,当分片大小为512kb时,加密时间接近50ms,所以我们可以将初始的当前分片大小设置为512kb,这样有利于让大多数用户设备更快的计算出最优分片大小。
在具体实施时,S1中根据所述当前分片大小确定对应的当前分片时间的过程可以包括:
S1a、按照所述当前分片大小在所述待加密视频文件中获取预设数量的视频分片;
S1b、对各个视频分片分别进行加密,根据各个视频分片的加密时间确定所述当前分片时间。
在具体实施时,确定所述当前分片时间的过程可以包括:去掉各个加密时间中的最大值和最小值,计算剩余加密时间的平均值,并将所述平均值作为所述当前分片时间。其中,去掉最大值和最小值是为了降低偶发性的影响。
举例来说,当前分片大小为512kb,按照512kb在待加密视频文件中获取前5个视频分片。然后对这5个视频分片进行加密,每一个视频分片加密所用的时间为一个加密时间,共有5个加密时间,最后依据这5个加密时间确定当前分片时间。例如,去掉这5个加密时间中的最大值和最小值,将剩余3个加密时间求平均值,将得到的平均值作为当前分片时间。
S2、判断所述当前分片时间是否在预设时间范围内:
S2a、若是,则将所述当前分片大小作为最优分片大小,并退出迭代过程;
其中,预设时间范围可以依据理想加密时间确定,例如,理想加密时间落在预设时间范围内。若理想加密时间为50ms,预设时间范围可以设置为40~60ms。
可理解的是,若当前分片时间落在预设时间范围内,则说明当前分片时间在理想分片时间左右,则说明当前分片大小比较合适,可以作为最优分片大小输出,至此整个迭代过程结束。
当然,如图2所示,在退出迭代过程之前,还可以对当前分片时间进行一定的判断,例如判断当前分片时间是否小于预设加密时间下限,若是,则说明当前分片大小是在用户设备的CPU占用率较高的情况下计算出来的,当前分片大小并不是合适的分片大小,不能作为最优分片大小,因此需要重新计算最优分片大小。当然,如果当前分片时间大于等于预设加密时间下限,则可以将当前分片大小作为最优分片大小。
也就是说,在将所述当前分片大小作为最优分片大小,并退出迭代过程之前,本申请提供的方法还可以包括:判断所述当前分片时间是否小于预设加密时间下限:若是,则返回S1;否则,执行所述将所述当前分片大小作为最优分片大小,并退出迭代过程。
S2b、否则,根据所述第一分片时间和所述第一分片大小,对所述当前分片大小和所述当前分片时间进行更新;
在具体实施时,S2b中对所述当前分片大小和所述当前分片时间进行更新的过程可以包括:
(1)根据所述第一分片大小、所述第一分片时间和所述预设理想分片时间,更新所述当前分片大小;
(2)根据所述当前分片大小确定对应的当前分片时间。
可理解的是,若当前分片时间未落在预设时间范围内,则说明当前分片时间离理想分片时间较远,需要对当前分片时间进行调整,因此这里首先对当前分片大小进行更新,进而确定更新后的当前分片时间,从而实现对当前分片大小和当前分片时间的更新。
在具体实施时,(1)中可以采用第一公式对当前分片大小进行更新,所述第一公式包括:
currentsize=betterSize*(T/betterTime)
式中,currentsize为所述当前分片大小,betterSize为所述第一分片大小,betterTime为所述第一分片时间,T为所述预设理想分片时间。
可理解的是,在第一次迭代过程中,第一分片时间为初始的当前分片时间,第一分片大小为初始的当前分片时间所对应的当前分片大小,依据第一公式可以得到更新后的当前分片大小。
在具体实施时,在(2)中根据所述当前分片大小确定对应的当前分片时间的具体过程,可以参考S1a和S1b。例如,更新后的当前分片大小为540kb,按照540kb在待加密视频文件中获取前6个视频分片。然后对这6个视频分片进行加密,得到6个加密时间,去掉这6个加密时间中的最大值和最小值,将剩余4个加密时间求平均值,将得到的平均值作为更新后的当前分片时间。
S3、根据所述当前分片时间和所述第一分片时间中更接近预设理想分片时间的时间分片,更新所述第一分片时间和所述第一分片大小;
可见,这里需要判断所述当前分片时间和所述第一分片时间中的哪一个更接近预设理想分片时间,然后依据更接近预设理想分片时间的时间分片对所述第一分片时间和所述第一分片大小进行更新。
在具体实施时,如图2所示,S3可以具体包括:
S3a、判断所述当前分片时间和所述第一分片时间中的哪一个更接近所述预设理想分片时间;
S3b、若所述当前分片时间更接近所述预设理想分片时间,则利用所述当前分片时间更新所述第一分片时间,利用所述当前分片大小更新所述第一分片大小;
例如,若理想加密时间为50ms,当前分片时间为39ms,第一分片时间为63ms,可见当前分片时间更接近理想分片时间,若当前分片大小为520kb。此时将第一分片时间更新为当前分片时间,即第一分片时间变成了39ms。将第一分片大小更新为当前分片大小,即第一分片大小变成了520kb。
S3c、若所述第一分片时间更接近所述预设理想分片时间,则保持第一分片大小不变,并根据所述第一分片大小重新确定对应的第一分片时间;
例如,若理想加密时间为50ms,当前分片时间为32ms,第一分片时间为63ms,可见第一分片时间更为接近预设理想分片时间,此时保持第一分片大小不变,重新计算对应的第一分片时间,计算过程可以参考S1a和S1b。例如,例如第一分片大小为499kb,则按照499kb在待加密视频文件中获取前7个视频分片。然后对这7个视频分片进行加密,得到7个加密时间,去掉这7个加密时间中的最大值和最小值,将剩余5个加密时间求平均值,将得到的平均值作为第一分片时间。
可理解的是,针对同一个分片大小,计算得到的对应的分片时间基本不同相等,这里针对同一个第一分片大小,再次计算对应的第一分片时间,可以降低偶然性。
可见,通过步骤S3可以实现对第一分片大小和第一分片时间的更新。
S4、根据所述第一分片时间和所述第一分片大小,对所述当前分片大小和所述当前分片时间进行更新,并返回S2。
其中,S4中对所述当前分片大小和所述当前分片时间进行更新的过程可以参考上文中的S2b。即,在S4中可以依据上述第一公式对当前分片大小进行更新,然后根据更新后的当前分片大小确定对应的当前分片时间,其具体过程可以依据S1a和S1b。
可理解的是,通过步骤S4可以实现对当前分片大小和当前分片时间的再次更新,然后返回步骤S2,进而利用S2对当前分片大小是否合适进行检验。
在具体实施时,不可能无休止的迭代下去,因此如图2所示,方法还可以包括:
判断当前迭代次数是否达到预设迭代次数上限:
若是,则将所述当前分片大小作为所述最优分片大小,并退出迭代过程;
否则,执行所述返回S2的步骤。
例如,将预设迭代次数上限设置为50次,则当前迭代次数达到50次时,停止迭代,将最后一次迭代过程中所确定的当前分片大小作为最优分片大小。若当前迭代次数未达到50次,则继续返回S2进行下一次的迭代。
这里通过理想分片时间、初始分片大小以及用户选择的一个待加密视频文件作为输入,来计算适合用户设备的最优分片大小,达到充分利用用户设备性能的同时,也保证了页面交互的流畅性。
在具体实施时,还可以设置一个预设文件数组,在预设文件数组中设置多项文件信息,每一项文件信息包括一个待加密视频文件对应的文件对象和对应的加密信息。例如,在预设文件队列中有4个待加密视频文件对应的文件对象,那预设文件数组中也包含4项文件信息,这4项文件信息中的文件对象和预设文件队列中的4个文件对象是相同的。
可理解的是,当将待加密视频文件对应的文件对象存入预设文件队列的同时,也将待加密视频文件对应的文件对象存入预设文件数组中,并且在预设文件数组中为每一个文件对象设置对应的初始加密信息,各个文件对象的初始加密信息是相同的。在待加密视频文件加密完成之前,预设文件数组和预设文件队列中的文件对象指向同一个待加密视频文件,可理解为指向同一个句柄。
其中,加密信息可以有多种,例如,是否加密完成、加密进度、加密工具类的实例等。举例来说,预设文件数组FileArr,每一项文件信息fileInfo包括文件对象file和对应的加密信息encryptInfo。
可理解的是,由于在预设文件数组中设置有加密信息,因此可以对视频文件的加密过程进行展示,以便用户了解当前是对哪一个视频文件进行加密,以及加密的进度等。
当然,预设文件数组除了有文件对象和加密信息之外,还可以设置编目信息,例如,上传者、视频作者、标题、描述信息等内容,可以在展示加密进度时使用户了解更多的信息。
当然,预设文件数组除了用于加密过程的展示之外,还可以用于后续的加密视频上传工作。在对一个待加密视频文件加密完成之后,便可以将得到加密视频文件上传到服务器,上传过程可以包括如下步骤:
根据所述预设文件队列中的所述文件对象,确定预设文件数组中对应的文件对象;将所述预设文件数组中对应的文件对象指向所述加密视频文件;根据所述预设文件数组中对应的文件对象,将所述加密视频文件上传至服务器。
可理解的是,在一个待加密视频文件加密完成时,将预设文件数组中的文件对象指向加密视频文件,同时也会对加密信息进行修改,例如,将encryptInfo设置为true,将encryptProgress设置为100%等。根据预设文件数组中的文件对象找到加密视频文件,开始进行上传。而且还会在预设文件数组中增加一些上传相关的属性,例如,上传是否完成、上传进度等。
可理解的是,上传过程可以并行执行,也就是说,当一个加密视频文件还没有上传完成,也可以同时上传其他的加密视频文件。由于用户数量比较大,考虑到兼容大部分的用户,本申请采用视频串行加密,视频并行上传的方法,可以规避CPU占用率较高而导致崩溃的风险。
举例来说,如图3所示,遍历原始的文件对象列表,将原始的文件对象列表中存储的文件对象存入预设文件队列中,如果用户增加了新的待加密视频文件,则将新增加的待加密视频文件对应的文件对象也存入预设文件队列中。同时,也将文件对象存储至预设文件数组中,同时为数组中的每一个文件对象设置对应的初始的加密信息,例如,加密是否完成、加密进度、加密工具类实例等。初始的加密信息中,加密是否完成为false,加密进度为0%。一个文件对象file和对应的加密信息encryptInfo组成一项文件信息fileInfo存储于数组中。通过文件对象file可以对待加密视频文件进行加密操作,除此之外,赋予文件对象file一个属性encry_info,该属性指向fileInfo文件信息本身,在加密过程中或者加密完成后,可以通过encryp__info属性可以找到数组中对应的文件对象,进而直接修改其加密信息。在进行完上述准备工作之后,便可以开始执行串行加密操作:
首先判断预设文件队列是否为空,若为空,则说明没有需要进行加密的视频文件,此时退出整个循环过程。若为非空,则取出预设文件队列中最靠前的文件对象,然后判断取出的文件对象是否具有不加密标志,若不具有不加密标志,则确定最优分片大小,并按照最优分片大小对待加密视频文件进行分片处理,并对各个分片进行加密处理。若具有不加密标志,说明不需要对当前这个文件对象对应的待加密视频文件进行加密,此时进行下一次的加密操作。在加密过程中,通过encryp__info属性找到预设文件数组中对应的文件对象,并对文件对象对应的加密进度进行更新,进而在加密过程中可以展示加密进度。在加密完成之后,通过encryp__info属性找到预设文件数组中的文件对象,然后将文件对象的一个属性指向加密视频文件,然后将encryp__info属性像之前一样指向文件对象本身,然后对文件对象中的加密是否完成等进行设置,在加密完成之前,加密是否完成为false,在加密完成之后,加密是否完成为true。当加密是否完成为true时便可以通知上传组件进行上传工作以及在页面上进行展示上传的相关信息。在一个视频文件加密完成之后,则进行下一次加密操作,直到预设文件对象为空。当用户取消了对某个视频文件的加密之后,判断这个视频文件是否正在进行加密,若是,则停止对该视频文件的加密工作。若否,则将该视频文件对应的文件对象设置不加密标志。
可见,在图3示出的实例中,既包括了视频加密的过程,也包括了视频的上传过程。
可理解的是,本申请提供的方法可以由web端的用户设备执行。
本申请提供的视频加密方法,将用户选择的待加密视频文件对应的文件对象存入预设文件队列中,然后对预设文件队列的文件对象取出并对对应的待加密视频文件进行加密,从而实现视频的串行加密。用户选择的待加密视频文件的数量不受用户设备的CPU核数的限制,即用户可以批量选择多个待加密视频文件,将这些待加密视频文件对应的文件对象依次存入预设文件队列,可见选择的待加密视频文件的数量可以扩展,对于CPU核数较少的用户非常友好。
第二方面,本申请实施例提供一种视频加密装置,如图4所示,该装置包括:
对象存储模块110,用于将用户选择的多个待加密视频文件对应的文件对象依次存入至预设文件队列中;其中,越早存入所述预设文件队列的文件对象在所述预设文件队列中的位置越靠前;所述文件对象用于指向对应的待加密视频文件;
视频加密模块120,用于对所述预设文件队列中的文件对象依次执行预设操作,直至所述预设文件队列为空,所述预设操作包括:取出所述预设文件队列中最靠前的文件对象,对取出的文件对象所指向的待加密视频文件进行加密,得到对应的加密视频文件。
可理解的是,本申请实施例提供的视频加密装置,有关内容的解释、举例、有益效果等部分可以参考第一方面中的相应部分,此处不再赘述。
第三方面,本申请实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面提供的方法。
图5示出了一个实施例中计算机设备的内部结构图。如图5所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏等。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可以存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现视频加密方法。该内存储器中也可以储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行视频加密方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的视频加密装置可以实现为一种计算机程序的形式,计算机程序可在如图5所示的计算机设备上运行。计算机设备的存储器中可存储组成该视频加密装置的各个程序模块,比如,图4所示的对象存储模块110和视频加密模块120。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的视频加密方法中的步骤。当然,计算机设备的存储器中还可存储组成该视频上传装置的各个程序模块,比如,视频加密装置和视频上传模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的视频上传方法中的步骤。
例如,图5所示的计算机设备可以通过如图4所示的视频加密装置中的对象存储模块110执行将用户选择的多个待加密视频文件对应的文件对象依次存入至预设文件队列中,越早存入所述预设文件队列的文件对象在所述预设文件队列中的位置越靠前;所述文件对象用于指向对应的待加密视频文件;计算机设备可以通过视频加密模块120执行对所述预设文件队列中的文件对象依次执行预设操作,直至所述预设文件队列为空,所述预设操作包括:取出所述预设文件队列中最靠前的文件对象,对取出的文件对象所指向的待加密视频文件进行加密,得到对应的加密视频文件。
可理解的是,本申请实施例提供的计算机设备,有关内容的解释、举例、有益效果等部分可以参考第一方面中的相应部分,此处不再赘述。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中提供的方法。
可理解的是,本申请实施例提供的计算机可读存储介质,有关内容的解释、举例、有益效果等部分可以参考第一方面中的相应部分,此处不再赘述。
可理解的是,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种视频加密方法,其特征在于,包括:
将用户选择的多个待加密视频文件对应的文件对象依次存入至预设文件队列中;其中,越早存入所述预设文件队列的文件对象在所述预设文件队列中的位置越靠前;所述文件对象用于指向对应的待加密视频文件;
对所述预设文件队列中的文件对象依次执行预设操作,直至所述预设文件队列为空,所述预设操作包括:取出所述预设文件队列中最靠前的文件对象,对取出的文件对象所指向的待加密视频文件进行加密,得到对应的加密视频文件;
还包括:
在取出所述预设文件队列中最靠前的文件对象后,判断所述文件对象是否具有不加密标记,所述不加密标记用于表征对应的文件对象所对应的待加密视频文件被用户从所述多个待加密视频文件中删除;
若是,则对所述预设文件队列中下一个最靠前的文件对象执行所述预设操作;
否则,执行所述对取出的文件对象所指向的待加密视频文件进行加密。
2.根据权利要求1所述的方法,其特征在于,所述对取出的文件对象所指向的待加密视频文件进行加密,包括:
确定最优分片大小,按照所述最优分片大小对所述待加密视频文件进行分片处理,得到多个视频分片,并对所述多个视频分片逐个进行加密。
3.根据权利要求2所述的方法,其特征在于,所述确定最优分片大小,包括:
S1、设置初始的当前分片大小,根据所述当前分片大小确定对应的当前分片时间,将所述当前分片大小作为第一分片大小,并将所述当前分片时间作为第一分片时间;
S2、判断所述当前分片时间是否在预设时间范围内:
若是,则将所述当前分片大小作为最优分片大小,并退出迭代过程;
否则,根据所述第一分片时间和所述第一分片大小,对所述当前分片大小和所述当前分片时间进行更新;
S3、根据所述当前分片时间和所述第一分片时间中更接近预设理想分片时间的时间分片,更新所述第一分片时间和所述第一分片大小;
S4、根据所述第一分片时间和所述第一分片大小,对所述当前分片大小和所述当前分片时间进行更新,并返回S2。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一分片时间和所述第一分片大小,对所述当前分片大小和所述当前分片时间进行更新,包括:
根据所述第一分片大小、所述第一分片时间和所述预设理想分片时间,更新所述当前分片大小;
根据所述当前分片大小确定对应的当前分片时间。
5.根据权利要求3或4所述的方法,其特征在于,所述根据所述当前分片大小确定对应的当前分片时间,包括:
按照所述当前分片大小在所述待加密视频文件中获取预设数量的视频分片;
对各个视频分片分别进行加密,根据各个视频分片的加密时间确定所述当前分片时间。
6.根据权利要求3所述的方法,其特征在于,所述根据所述当前分片时间和所述第一分片时间中更接近预设理想分片时间的时间分片,更新所述第一分片时间和所述第一分片大小,包括:
判断所述当前分片时间和所述第一分片时间中的哪一个更接近所述预设理想分片时间:
若所述当前分片时间更接近所述预设理想分片时间,则利用所述当前分片时间更新所述第一分片时间,利用所述当前分片大小更新所述第一分片大小;
若所述第一分片时间更接近所述预设理想分片时间,则保持第一分片大小不变,并根据所述第一分片大小重新确定对应的第一分片时间。
7.根据权利要求3所述的方法,其特征在于,所述将所述当前分片大小作为最优分片大小,并退出迭代过程之前,所述方法还包括:
判断所述当前分片时间是否小于预设加密时间下限:
若是,则返回S1;
否则,执行所述将所述当前分片大小作为最优分片大小,并退出迭代过程。
8.一种视频加密装置,其特征在于,包括:
对象存储模块,用于将用户选择的多个待加密视频文件对应的文件对象依次存入至预设文件队列中;其中,越早存入所述预设文件队列的文件对象在所述预设文件队列中的位置越靠前;所述文件对象用于指向对应的待加密视频文件;
视频加密模块,用于对所述预设文件队列中的文件对象依次执行预设操作,直至所述预设文件队列为空,所述预设操作包括:取出所述预设文件队列中最靠前的文件对象,对取出的文件对象所指向的待加密视频文件进行加密,得到对应的加密视频文件;
处理模块,用于在取出所述预设文件队列中最靠前的文件对象后,判断所述文件对象是否具有不加密标记,所述不加密标记用于表征对应的文件对象所对应的待加密视频文件被用户从所述多个待加密视频文件中删除;若是,则对所述预设文件队列中下一个最靠前的文件对象执行所述预设操作;否则,执行所述对取出的文件对象所指向的待加密视频文件进行加密。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110180005.7A CN112995703B (zh) | 2021-02-07 | 2021-02-07 | 视频加密方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110180005.7A CN112995703B (zh) | 2021-02-07 | 2021-02-07 | 视频加密方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112995703A CN112995703A (zh) | 2021-06-18 |
CN112995703B true CN112995703B (zh) | 2023-01-10 |
Family
ID=76392863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110180005.7A Active CN112995703B (zh) | 2021-02-07 | 2021-02-07 | 视频加密方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112995703B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1238495A (zh) * | 1998-05-11 | 1999-12-15 | 国际商业机器公司 | 分布式计算环境中应用程序可用性和响应的监控与报告 |
US9602846B1 (en) * | 2016-08-31 | 2017-03-21 | Living As One, Llc | System and method for asynchronous uploading of live digital multimedia with guaranteed delivery |
JP6503035B1 (ja) * | 2017-09-28 | 2019-04-17 | みずほ情報総研株式会社 | ファイル処理支援システム、ファイル処理支援方法及びファイル処理支援プログラム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7966289B2 (en) * | 2007-08-21 | 2011-06-21 | Emc Corporation | Systems and methods for reading objects in a file system |
-
2021
- 2021-02-07 CN CN202110180005.7A patent/CN112995703B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1238495A (zh) * | 1998-05-11 | 1999-12-15 | 国际商业机器公司 | 分布式计算环境中应用程序可用性和响应的监控与报告 |
US9602846B1 (en) * | 2016-08-31 | 2017-03-21 | Living As One, Llc | System and method for asynchronous uploading of live digital multimedia with guaranteed delivery |
JP6503035B1 (ja) * | 2017-09-28 | 2019-04-17 | みずほ情報総研株式会社 | ファイル処理支援システム、ファイル処理支援方法及びファイル処理支援プログラム |
Also Published As
Publication number | Publication date |
---|---|
CN112995703A (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2894649C (en) | Systems and methods for automatic synchronization of recently modified data | |
US7747616B2 (en) | File search method and system therefor | |
US9916390B2 (en) | Managing web browser cache for offline browsing | |
WO2016028472A2 (en) | Automatically adjusting spreadsheet formulas and/or formatting | |
CN108536745B (zh) | 基于Shell的数据表提取方法、终端、设备及存储介质 | |
EP3076283A1 (en) | System and method for managing content deletion | |
CN109086141B (zh) | 内存管理方法和装置以及计算机可读存储介质 | |
CN108205560B (zh) | 一种数据同步方法以及装置 | |
CN107766469A (zh) | 一种缓存处理方法和装置 | |
JP2005057701A5 (zh) | ||
CN104750679B (zh) | 一种网页文档编辑器中的资源加载方法 | |
JP2010152710A5 (ja) | システム、画像形成装置、制御方法およびプログラム | |
WO2020010724A1 (zh) | 前端静态资源的管理方法、装置、计算机设备及存储介质 | |
JP2008112268A (ja) | タイミング検証方法、タイミング検証装置及びタイミング検証プログラム | |
CN104516929A (zh) | 用于文件系统的方法和装置 | |
CN112995703B (zh) | 视频加密方法、装置、计算机设备和存储介质 | |
JP2007317130A (ja) | 情報処理装置及びプログラム | |
JP2009129067A5 (zh) | ||
CN113535206B (zh) | 多版本代码升级方法及系统 | |
JP6157375B2 (ja) | 操作手順フロー更新装置、方法及びプログラム | |
CN112528622B (zh) | 一种查找文档各版本差异的方法、装置及电子设备 | |
CN106649227A (zh) | 一种目录更新方法及装置 | |
US10402785B2 (en) | Terminal apparatus | |
US9542569B2 (en) | Information processing system, information processing apparatus, storage medium having stored therein information processing program, and method of storing saved data | |
CN114428792A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |