播放视频数据流的方法及装置与流程

文档序号:12866203阅读:739来源:国知局
播放视频数据流的方法及装置与流程

本发明涉及计算机领域,具体而言,涉及一种播放视频数据流的方法及装置。



背景技术:

现有技术可以提供一种用于播放音视频数据的音视频播放工具,主要通过对音视频的转换、解码等处理来播放音视频,其中,音视频播放工具一般依赖于音视频解码库来实现音视频数据的转换解码等功能,但现有的音视频播放工具提供的播放接口和功能无法支持对于加密视频的解码与播放,从而导致当前待播放的音视频文件存在被黑客伪装和篡改等安全风险。

例如,以快进动态图像专家组(fastforwardmovingpictureexpertsgroup,简称为ffmpeg)为例,ffmpeg是一种开源的音视频解码库,其可以用来记录、转换数字音频/视频。ffmpeg包含了非常先进的音频/视频编解码库,可以在多种操作系统环境中编译运行。

目前,ffmpeg主要具有以下几种功能:

(1)视频采集功能

ffmpeg不仅可以采集视频采集卡或通用串行总线(universalserialbus,简称为usb)摄像头的图像,还可以进行屏幕录制,此外,还同时支持按照实时传输协议(real-timetransportprotocol,简称为rtp)方式将视频流传送给支持快速生成树协议(rapidspanningtreeprotocol,简称为rstp)的流媒体服务器,支持播放应用。

(2)视频格式转换功能

ffmpeg可以实现多种视频格式之间的相互转换(例如:wma,rmvb,avi,mod)。

(3)视频截图功能

ffmpeg对于选定的视频截取指定时间的缩略图,通过视频截图来获取静态图和/或动态图。

(4)为视频添加水印功能。

ffmpeg能够被用来为视频添加水印(logo)。

然而,现有ffmpeg提供的播放接口和功能无法支持对于加密视频的解码与播放,由此易造成视频文件因为没有经过加密处理故而轻易地被黑客伪装和篡改,以达到对基于ffmpeg组件开发的视频播放器或者ffmpeg所运行于的操作环境进行恶意攻击或者制作与上述视频文件相关的盗版产品的目的。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种播放视频数据流的方法及装置,以至少解决相关技术中播放工具提供的播放接口和功能无法支持对于加密视频文件的解码与播放,由此易造成视频文件因为没有经过加密处理故而轻易地被黑客伪装和篡改的技术问题。

根据本发明实施例的一个方面,提供了一种播放视频数据流的方法,包括:

获取待解密的视频数据流;根据与待解密的视频数据流所采用的加密方式对应的解密方式对待解密的视频数据流进行解密处理;将处理后的视频数据流发送至与视频格式对应的解码代码进行播放。

可选地,获取待解密的视频数据流包括:注册视频数据流读取接口;采用视频数据流读取接口对待解密的视频数据流进行重定向,获取待解密的视频数据流。

可选地,通过与视频格式对应的解码代码提供的回调函数接口向与视频格式对应的解码代码注册视频数据流读取接口。

可选地,当加密方式为先按照预设长度为单位将原始视频数据流划分为多个数据块并采用第一加密算法对多个数据块逐一进行加密,再采用第二加密算法对加密后的多个数据块进行整体加密时,根据解密方式对待解密的视频数据流进行解密处理包括:通过与第二加密算法匹配的解密算法从待解密的视频数据流中解密出加密后的多个数据块;通过与第一加密算法匹配的解密算法从加密后的多个数据块中解密出多个数据块;对多个数据块进行组装,得到处理后的视频数据流。

可选地,当加密方式为先按照预设长度为单位将原始视频数据流划分为多个数据块,采用第一加密算法对多个数据块逐一进行加密并对多个数据块逐一添加数字水印,再采用第二加密算法对加密后的多个数据块进行整体加密时,根据解密方式对待解密的视频数据流进行解密处理包括:通过与第二加密算法匹配的解密算法从待解密的视 频数据流中解密出加密后的多个数据块;通过与第一加密算法匹配的解密算法从加密后的多个数据块中解密出多个数据块;通过逐一为多个数据块中每个数据块添加的数字水印对多个数据块进行数据完整性校验;在数据完整性校验成功后,对多个数据块进行组装,得到处理后的视频数据流。

可选地,在获取待解密的视频数据流之后,还包括:请求创建内存空间,其中,内存空间用于存储待解密的视频数据流以及存储待解密的视频数据流进行解密处理过程中得到的中间数据。

根据本发明实施例的另一方面,还提供了一种播放视频数据流的装置,包括:

获取模块,用于获取待解密的视频数据流;处理模块,用于根据与待解密的视频数据流所采用的加密方式对应的解密方式对待解密的视频数据流进行解密处理;发送模块,用于将处理后的视频数据流发送至与视频格式对应的解码代码进行播放。

可选地,获取模块包括:注册单元,用于注册视频数据流读取接口;获取单元,用于采用视频数据流读取接口对待解密的视频数据流进行重定向,获取待解密的视频数据流。

可选地,注册单元,用于通过与视频格式对应的解码代码提供的回调函数接口向与视频格式对应的解码代码注册视频数据流读取接口。

可选地,当加密方式为先按照预设长度为单位将原始视频数据流划分为多个数据块并采用第一加密算法对多个数据块逐一进行加密,再采用第二加密算法对加密后的多个数据块进行整体加密时,处理模块包括:第一解密单元,用于通过与第二加密算法匹配的解密算法从待解密的视频数据流中解密出加密后的多个数据块;第二解密单元,用于通过与第一加密算法匹配的解密算法从加密后的多个数据块中解密出多个数据块;组装单元,用于对多个数据块进行组装,得到处理后的视频数据流。

可选地,当加密方式为先按照预设长度为单位将原始视频数据流划分为多个数据块,采用第一加密算法对多个数据块逐一进行加密并对多个数据块逐一添加数字水印,再采用第二加密算法对加密后的多个数据块进行整体加密时,处理模块包括:第一解密单元,用于通过与第二加密算法匹配的解密算法从待解密的视频数据流中解密出加密后的多个数据块;第二解密单元,用于通过与第一加密算法匹配的解密算法从加密后的多个数据块中解密出多个数据块;校验单元,用于通过逐一为多个数据块中每个数据块添加的数字水印对多个数据块进行数据完整性校验;组装单元,用于在数据完整性校验成功后,对多个数据块进行组装,得到处理后的视频数据流。

可选地,上述装置还包括:请求模块,用于请求创建内存空间,其中,内存空间 用于存储待解密的视频数据流以及存储待解密的视频数据流进行解密处理过程中得到的中间数据。

根据本发明实施例的又一方面,还提供了一种服务器,该服务器,用于接收来自于客户端的待解密的视频数据流,根据与待解密的视频数据流所采用的加密方式对应的解密方式对待解密的视频数据流进行解密处理以及将解密处理后的视频数据流发送至与视频格式对应的解码代码进行播放。

在本发明实施例中,采用在获取到待解密的视频数据流之后,先根据待解密的视频数据流所采用的加密方式对应的解密方式对待解密的视频数据流进行解密处理,然后再将处理后的视频数据流发送至与视频格式对应的解码代码进行播放的方式,通过先对获取到的加密视频进行解密和封装,达到了对加密视频进行解码与播放的目的,从而实现了针对定制化的加密视频文件进行解码和播放,有效地防止加密视频文件中的视频数据被修改或视频文件被盗版的技术效果,进而解决了相关技术中播放工具提供的播放接口和功能无法支持对于加密视频文件的解码与播放,由此易造成视频文件因为没有经过加密处理故而轻易地被黑客伪装和篡改的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明实施例的一种播放视频数据流的方法的计算机终端的硬件结构框图;

图2是根据本发明实施例的播放视频数据流的方法的流程图;

图3是根据本发明优选实施例的播放视频数据流的方法的流程图;

图4是根据本发明实施例的播放视频数据流的装置的结构框图;

图5是根据本发明优选实施例的播放视频数据流的装置的结构框图;

图6是根据本发明实施例的用于播放视频数据流的服务器与客户端进行信息交互的示意图;

图7是根据本发明实施例的一种计算机终端的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的 附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

本发明所涉及到的名词解释如下:

(1)快进动态图像专家组(fastforwardmovingpictureexpertsgroup,简称为ffmpeg)是一种开源的音视频解码库,其可以用来记录、转换数字音频/视频。ffmpeg包含了非常先进的音频/视频编解码库,可以在多种操作系统环境中编译运行。

(2)回调函数是指一个通过函数指针调用的函数,如果将一个函数的指针(地址)作为参数传递给另外一个函数,在特定的事件或条件发生时,由另外一个函数进行调用,用于对该事件或条件进行响应。

(3)重定向是指从原本应该执行的函数跳转到用户自定义提供的函数。

(4)读取接口负责读取待解密的视频数据流,并将该视频数据流重定向到预先设定的回调函数中。

(5)组装是指在将原始视频数据流划分为多个数据块并分别对每个数据块执行用户设定的一系列操作后,重新组合成新的视频数据流。

实施例1

根据本发明实施例,还提供了一种播放视频数据流的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种播放视频数据流的方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的播放视频数据流的方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的播放视频数据流的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。

在上述运行环境下,本申请提供了如图2所示的播放视频数据流的方法。图2是根据本发明实施例的播放视频数据流的方法的流程图。如图2所示,该方法可以包括以下处理步骤:

步骤s22:获取待解密的视频数据流;

步骤s24:根据与待解密的视频数据流所采用的加密方式对应的解密方式对待解密的视频数据流进行解密处理;

需要说明的是,本发明并不对上述加密方式做出具体限定,此处仅列举以下几种适用于本发明实施例的解密方式:

方式一、此种方式最为简便,即按照预设长度为单位(例如:以字节为单位,以视频帧为单位)将原始的视频数据流划分为多个数据块,然后,再对多个数据块中的 每个数据块进行逐个单位数据块的加密处理。被加密的视频文件通过加密处理后已经不再是标准的可解析的视频文件,而是以密文的数据保存下来。

方式二、采用对称加密算法对整个原始的视频数据流进行加密,对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发送方可以将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。接收方在接收到加密密文后,若想解读原文,则需要使用经过加密处理的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发送方和接收方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。被加密的视频文件通过加密处理后已经不再是标准的可解析的视频文件,而是以密文的数据保存下来。

方式三、结合上述方式一和方式二所提供的加密方式,首先按照预设长度为单位(例如:以字节为单位,以视频帧为单位)将原始的视频数据流划分为多个数据块;其次,对多个数据块中的每个数据块进行逐个单位数据块的加密处理;然后,再采用高强度的对称加密算法对按照单位数据块逐个进行加密后构成的整体视频数据流进行对称加密。被加密的视频文件通过加密处理后已经不再是标准的可解析的视频文件,而是以密文的数据保存下来。

方式四、在方式三的基础上对每个单位数据块加入不同的数字水印(digitalwatermarking)。数字水印是指嵌入数字载体(包括:多媒体、文档、软件等)中的数字信号,其可以是图像、文字、符号、数字等所有可以作为标识的信息。数字水印既不影响原始载体的正常使用及存在价值,也不容易被人感知。数字水印通过特定的算法将一些标志性信息直接嵌入到多媒体内容当中,但不影响原内容的价值和使用,并且不能被人的知觉系统觉察或注意到,只有通过专用的检测器或阅读器才能提取,其中的水印信息可以是视频文件作者的序列号、视频文件提供商的标志、有特殊意义的文本等,可用来识别文件、图像或音乐制品的来源、版本、原作者、拥有者、发行人、合法使用人对数字产品的拥有权。通过检测加入到每个单位数据块中的数字水印来确定原始视频数据流的完整性以及版权进行校验。

步骤s26:将处理后的视频数据流发送至与视频格式对应的解码代码进行播放。

在优选实施过程中,上述与视频格式对应的解码代码可以包括但不限于:ffmpeg。

在通常的视频解码播放过程中,avi,mkv,rmvb,mov,mp4等视频格式被称为容器(container),不同的容器格式规定了其中视频/音频数据的组织方式(当然也包括 其他数据,例如:字幕)。容器中通常会封装有视频和音频轨,又被称为视频流(stream)和音频流,播放视频文件首先需要根据视频文件的格式,解析(demux)出其中封装的视频流、音频流以及字幕(可选项),解析的数据读到包(packet)中,每个包内保存的是视频帧(frame)或音频帧,然后分别对视频帧和音频帧调用相应的解码器(decoder)进行解码,例如:使用h.264编码的视频和mp3编码的音频,便会调用相应的h.264解码器和mp3解码器,解码之后得到的便是原始的图像(yuvorrgb)和声音(pcm)数据,然后按照时间同步将图像显示到屏幕上以及将声音输出到声卡。

具体到ffmpeg的视频数据流解码和播放流程,ffmpeg在获取到处理后的视频数据流之后,将处理后的视频数据流送入媒体格式解码器(demuxer)中去除媒体格式;其次,送入ffmpeg的decode中进行解码,生成待显示的yuv格式的图片,然后再送入简易直控媒体层(simpledirectmedialayer,简称为sdl)中进行渲染。sdl是一套开放源代码的跨平台多媒体开发库,使用c语言写成。sdl提供了多种控制图像、声音、输出入的函数,使得开发者只要使用相同或是相似的代码便可以开发出跨多个平台(linux、windows、macosx等)的应用软件。目前sdl多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。sdl渲染过程主要包括如下步骤:

第一步、使用sdl_createwindow()创建一个用于视频播放的窗口。

第二步、使用sdl_createrenderer()基于窗口创建渲染器。

第三步、使用sdl_createtexture()基于渲染器创建一个纹理。

第四步、使用sdl_updatetexture()设置纹理的像素数据。

第五步、使用sdl_rendercopy()将纹理数据复制给渲染目标。在使用sdl_rendercopy()之前,可以使用sdl_renderclear()先使用清空渲染目标。实际上视频播放的时候不使用sdl_renderclear()也是可以的,因为视频数据流的后一帧图像会完全覆盖前一帧图像。

第六步、使用sdl_renderpresent()显示画面。

其中,sdl_window是使用sdl的时候所弹出的窗口,在sdl1.x版本中,只可以创建一个一个窗口,在sdl2.0版本中,可以创建多个窗口;sdl_texture用于显示yuv数据;一个sdl_texture对应一帧yuv数据;sdl_renderer用于渲染sdl_texture至sdl_window;sdl_rect用于确定sdl_texture显示的位置。

相关技术中,基于ffmpeg组件开发的视频播放器无法对加密视频文件进行解码和播放,由此易导致发送至ffmpeg的视频文件中的视频数据被篡改或者视频文件被盗版。 采用如图2所示的方法实施例,在ffmpeg的播放接口基础上扩展出了解密功能,其能够针对定制化的加密视频文件进行解码和播放,从而有效地防止发送至ffmpeg的视频文件中的视频数据被篡改或者视频文件被盗版,进而实现了在将一个原始的可直接进行播放的视频文件进行加密后,使用基于ffmpeg开发的播放器能够对该加密视频文件进行解密,解码和渲染。

可选地,在步骤s22中,获取待解密的视频数据流可以包括以下执行步骤:

步骤s222:注册视频数据流读取接口;

步骤s224:采用视频数据流读取接口对待解密的视频数据流进行重定向,获取待解密的视频数据流。

在优选实施过程中,可以通过与视频格式对应的解码代码提供的回调函数接口向与视频格式对应的解码代码来完成上述步骤s222中的注册视频数据流读取接口的操作。

考虑到基于ffmpeg组件开发的播放器不支持对加密视频文件的解码和播放,因此,如果已经对原始视频数据流进行过加密,那么将不能直接将加密视频数据流发送至ffmpeg进行解码和播放。为此,如果需要实现加密视频数据流在ffmpeg进行解码和播放,则需要在对加密视频数据流进行解码和播放前,先通过ffmpeg提供的接口将读取加密视频数据流的动作重定向到预先设定的回调函数中,并在回调函数中完成对加密视频数据流的读取操作与解密操作。

具体地,ffmpeg提供了一个接口avio_alloc_context,其中,可以设置在ffmpeg需要读取视频流的时候调用read_packet回调函数,在ffmpeg需要写入视频流的时候调用write_packet回调函数以及在ffmpeg需要播放渲染进度跳转的时候来调用seek回调函数。

在优选实施过程中,可以仅设置read_packet和write_packet两个回调函数,将这两个回调函数设置为自定义提供的视频读取和视频进度跳转函数,这样ffmpeg在需要获取视频流并且需要执行进度跳转时便会改为调用自定义提供的函数,进而通过在自定义的回调函数中,获取加密过的视频流,并在内存中解密后再传递给ffmpeg进行播放渲染,从而实现在ffmpeg初始化过程中,通过调用ffmpeg提供的回调函数avio_alloc_context接口来注册自定义的read_packet接口,以实现将读取加密视频数据流的动作重定向到预先设定的回调函数中。

可选地,当加密方式为按照预设长度为单位将原始视频数据流划分为多个数据块并采用第一加密算法对多个数据块逐一进行加密,再采用第二加密算法对加密后的多 个数据块进行整体加密时,在步骤s24中,根据解密方式对待解密的视频数据流进行解密处理可以包括执行步骤:

步骤s241:通过与第二加密算法匹配的解密算法从待解密的视频数据流中解密出加密后的多个数据块;

步骤s242:通过与第一加密算法匹配的解密算法从加密后的多个数据块中解密出多个数据块;

步骤s243:对多个数据块进行组装,得到处理后的视频数据流。

当加密方式为按照预设长度为单位将原始视频数据流划分为多个数据块并采用第一加密算法(按划分单位逐一进行加密算法)对多个数据块逐一进行加密,再采用第二加密算法(高强度对称加密算法)对加密后的多个数据块进行整体加密时,由于被加密的视频文件通过加密处理后已经不再是标准的可解析的视频文件,而是以密文的数据保存下来,因此,在获取到待解密的视频数据流后,首先,需要采用与第二加密算法(高强度对称加密算法)互逆的解密算法对上述整体加密过程进行破解,从待解密的视频数据流中解密出采用第一加密算法得到的加密后的多个数据块;其次,采用与第二加密算法(高强度对称加密算法)互逆的解密算法对加密后的多个数据块进行逐个单位数据块的解密操作,得到尚未加密的多个数据块;然后,再通过对解密出的多个数据块进行组装,最终得到准备在ffmpeg进行解码和播放的原始视频数据流。

可选地,当加密方式为先按照预设长度为单位将原始视频数据流划分为多个数据块,采用第一加密算法对多个数据块逐一进行加密并对多个数据块逐一添加数字水印,再采用第二加密算法对加密后的多个数据块进行整体加密时,在步骤s24中,根据解密方式对待解密的视频数据流进行解密处理可以包括以下执行步骤:

步骤s244:通过与第二加密算法匹配的解密算法从待解密的视频数据流中解密出加密后的多个数据块;

步骤s245:通过与第一加密算法匹配的解密算法从加密后的多个数据块中解密出多个数据块;

步骤s246:通过逐一为多个数据块中每个数据块添加的数字水印对多个数据块进行数据完整性校验;

步骤s247:在数据完整性校验成功后,对多个数据块进行组装,得到处理后的视频数据流。

当加密方式为先按照预设长度为单位将原始视频数据流划分为多个数据块,采用 第一加密算法(按划分单位逐一进行加密算法)对多个数据块逐一进行加密并对多个数据块逐一添加数字水印,再采用第二加密算法(高强度对称加密算法)对加密后的多个数据块进行整体加密时,由于被加密的视频文件通过加密处理后已经不再是标准的可解析的视频文件,而是以密文的数据保存下来,因此,在获取到待解密的视频数据流后,首先,需要采用与第二加密算法(高强度对称加密算法)互逆的解密算法对上述整体加密过程进行破解,从待解密的视频数据流中解密出采用第一加密算法得到的加密后的多个数据块;其次,采用与第二加密算法(高强度对称加密算法)互逆的解密算法对加密后的多个数据块进行逐个单位数据块的解密操作,得到尚未加密的多个数据块;然后,通过逐一为多个数据块中每个数据块添加的数字水印对多个数据块进行数据完整性校验,即通过添加数字水印来确保原始视频数据流的完整性与准确性;最后,再通过对解密出的多个数据块进行组装,最终得到准备在ffmpeg进行解码和播放的原始视频数据流。

可选地,在步骤s22,获取待解密的视频数据流之后,还可以包括以下执行步骤:

步骤s23:请求创建内存空间,其中,内存空间用于存储待解密的视频数据流以及存储待解密的视频数据流进行解密处理过程中得到的中间数据。

在获取到待解密的视频数据流之后,首先,需要在内存中请求开辟一块存储空间对待解密的视频数据流进行存储;其次,基于上述分析,当加密方式为按照预设长度为单位将原始视频数据流划分为多个数据块并采用第一加密算法(按划分单位逐一进行加密算法)对多个数据块逐一进行加密,再采用第二加密算法(高强度对称加密算法)对加密后的多个数据块进行整体加密时,在采用与第二加密算法(高强度对称加密算法)互逆的解密算法对上述整体加密过程进行破解,从待解密的视频数据流中解密出采用第一加密算法得到的加密后的多个数据块以及采用与第二加密算法(高强度对称加密算法)互逆的解密算法对加密后的多个数据块进行逐个单位数据块的解密操作,得到尚未加密的多个数据块都可以作为中间数据暂存于新开辟的存储空间内;然后,在该存储空间内通过对解密出的多个数据块进行组装,最终得到可以被ffmpeg正确解析和执行的原始视频数据流;或者,当加密方式为先按照预设长度为单位将原始视频数据流划分为多个数据块,采用第一加密算法(按划分单位逐一进行加密算法)对多个数据块逐一进行加密并对多个数据块逐一添加数字水印,再采用第二加密算法(高强度对称加密算法)对加密后的多个数据块进行整体加密时,采用与第二加密算法(高强度对称加密算法)互逆的解密算法对上述整体加密过程进行破解,从待解密的视频数据流中解密出采用第一加密算法得到的加密后的多个数据块以及采用与第二加密算法(高强度对称加密算法)互逆的解密算法对加密后的多个数据块进行逐个单位数据块的解密操作,得到尚未加密的多个数据块都可以作为中间数据暂存于新开辟 的存储空间内;然后,通过逐一为多个数据块中每个数据块添加的数字水印对多个数据块进行数据完整性校验,即通过添加数字水印来确保原始视频数据流的完整性与准确性;最后,再通过对解密出的多个数据块进行组装,最终得到可以被ffmpeg正确解析和执行的原始视频数据流。

需要说明的是,在整个视频播放过程中,除了需要在内存中短暂生成过被划分的原始视频数据流的多个数据块(这些数据块不再是标准的视频数据流,而是以内存数据块的方式存在)之外,不会在其他任何地方出现与原始视频数据流相关的数据,即不会在内存中或磁盘文件中出现完整的原始视频数据流,由此确保了加密视频数据流的安全性。

下面将结合图3所示的优选实施方式对上述优选实施过程做进一步地描述。

图3是根据本发明优选实施例的播放视频数据流的方法的流程图。如图3所示,该流程可以包括以下处理步骤:

步骤s32:由于需要实现加密视频数据流在ffmpeg进行解码和播放,则需要在对加密视频数据流进行解码和播放前,先通过ffmpeg提供的接口将读取加密视频数据流的动作重定向到预先设定的回调函数中,并在回调函数中完成对加密视频数据流的读取操作与解密操作。

在优选实施过程中,可以在ffmpeg初始化过程中,通过调用ffmpeg提供的回调函数avio_alloc_context接口来注册自定义的read_packet接口,以实现将读取加密视频数据流的动作重定向到预先设定的回调函数中。

步骤s34:在获取到待解密的视频数据流之后,首先,需要在内存中请求开辟一块存储空间对待解密的视频数据流进行存储;其次,根据待解密的视频数据流所采用的加密方式确定在使用与该加密方式互逆的解密方式进行解密的过程中产生的中间数据也将存储于该存储空间内。

例如:当加密方式为按照预设长度为单位将原始视频数据流划分为多个数据块并采用第一加密算法(按划分单位逐一进行加密算法)对多个数据块逐一进行加密,再采用第二加密算法(高强度对称加密算法)对加密后的多个数据块进行整体加密时,在采用与第二加密算法(高强度对称加密算法)互逆的解密算法对上述整体加密过程进行破解,从待解密的视频数据流中解密出采用第一加密算法得到的加密后的多个数据块以及采用与第二加密算法(高强度对称加密算法)互逆的解密算法对加密后的多个数据块进行逐个单位数据块的解密操作,得到尚未加密的多个数据块都可以作为中间数据暂存于新开辟的存储空间内;然后,在该存储空间内通过对解密出的多个数据 块进行组装,最终得到可以被ffmpeg正确解析和执行的原始视频数据流;

或者,当加密方式为先按照预设长度为单位将原始视频数据流划分为多个数据块,采用第一加密算法(按划分单位逐一进行加密算法)对多个数据块逐一进行加密并对多个数据块逐一添加数字水印,再采用第二加密算法(高强度对称加密算法)对加密后的多个数据块进行整体加密时,采用与第二加密算法(高强度对称加密算法)互逆的解密算法对上述整体加密过程进行破解,从待解密的视频数据流中解密出采用第一加密算法得到的加密后的多个数据块以及采用与第二加密算法(高强度对称加密算法)互逆的解密算法对加密后的多个数据块进行逐个单位数据块的解密操作,得到尚未加密的多个数据块都可以作为中间数据暂存于新开辟的存储空间内;然后,通过逐一为多个数据块中每个数据块添加的数字水印对多个数据块进行数据完整性校验,即通过添加数字水印来确保原始视频数据流的完整性与准确性;最后,再通过对解密出的多个数据块进行组装,最终得到可以被ffmpeg正确解析和执行的原始视频数据流。

步骤s36:利用与待解密的视频数据流所采用的加密方式互逆的解密方式对待解密的视频数据流进行解密处理。

具体地,当加密方式为按照预设长度为单位将原始视频数据流划分为多个数据块并采用第一加密算法(按划分单位逐一进行加密算法)对多个数据块逐一进行加密,再采用第二加密算法(高强度对称加密算法)对加密后的多个数据块进行整体加密时,由于被加密的视频文件通过加密处理后已经不再是标准的可解析的视频文件,而是以密文的数据保存下来,因此,在获取到待解密的视频数据流后,首先,需要采用与第二加密算法(高强度对称加密算法)互逆的解密算法对上述整体加密过程进行破解,从待解密的视频数据流中解密出采用第一加密算法得到的加密后的多个数据块;其次,采用与第二加密算法(高强度对称加密算法)互逆的解密算法对加密后的多个数据块进行逐个单位数据块的解密操作,得到尚未加密的多个数据块;然后,再通过对解密出的多个数据块进行组装,最终得到准备在ffmpeg进行解码和播放的原始视频数据流。

具体地,当加密方式为先按照预设长度为单位将原始视频数据流划分为多个数据块,采用第一加密算法(按划分单位逐一进行加密算法)对多个数据块逐一进行加密并对多个数据块逐一添加数字水印,再采用第二加密算法(高强度对称加密算法)对加密后的多个数据块进行整体加密时,由于被加密的视频文件通过加密处理后已经不再是标准的可解析的视频文件,而是以密文的数据保存下来,因此,在获取到待解密的视频数据流后,首先,需要采用与第二加密算法(高强度对称加密算法)互逆的解密算法对上述整体加密过程进行破解,从待解密的视频数据流中解密出采用第一加密算法得到的加密后的多个数据块;其次,采用与第二加密算法(高强度对称加密算法) 互逆的解密算法对加密后的多个数据块进行逐个单位数据块的解密操作,得到尚未加密的多个数据块;然后,通过逐一为多个数据块中每个数据块添加的数字水印对多个数据块进行数据完整性校验,即通过添加数字水印来确保原始视频数据流的完整性与准确性;最后,再通过对解密出的多个数据块进行组装,最终得到准备在ffmpeg进行解码和播放的原始视频数据流。

步骤s38:在得到可以被ffmpeg正确解析和执行的视频数据流后,完成对处理后的视频数据流的播放过程。

具体地,ffmpeg在获取到处理后的视频数据流之后,将处理后的视频数据流送入媒体格式解码器(demuxer)中去除媒体格式;其次,送入ffmpeg的decode中进行解码,生成待显示的yuv格式的图片,然后再送入简易直控媒体层(simpledirectmedialayer,简称为sdl)中进行渲染。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的播放视频数据流的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

根据本发明实施例,还提供了一种用于实施上述播放视频数据流的装置实施例,图4是根据本发明实施例的播放视频数据流的装置的结构框图。如图4所示,该装置包括:获取模块10,用于获取待解密的视频数据流;处理模块20,用于根据与待解密的视频数据流所采用的加密方式对应的解密方式对待解密的视频数据流进行解密处理;发送模块30,用于将处理后的视频数据流发送至与视频格式对应的解码代码进行播放。

在优选实施过程中,上述与视频格式对应的解码代码可以包括但不限于:ffmpeg。

需要说明的是,本发明并不对上述加密方式做出具体限定,此处仅列举以下几种适用于本发明实施例的解密方式:

方式一、此种方式最为简便,即按照预设长度为单位(例如:以字节为单位,以视频帧为单位)将原始的视频数据流划分为多个数据块,然后,再对多个数据块中的每个数据块进行逐个单位数据块的加密处理。被加密的视频文件通过加密处理后已经不再是标准的可解析的视频文件,而是以密文的数据保存下来。

方式二、采用对称加密算法对整个原始的视频数据流进行加密,对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发送方可以将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。接收方在接收到加密密文后,若想解读原文,则需要使用经过加密处理的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发送方和接收方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。被加密的视频文件通过加密处理后已经不再是标准的可解析的视频文件,而是以密文的数据保存下来。

方式三、结合上述方式一和方式二所提供的加密方式,首先按照预设长度为单位(例如:以字节为单位,以视频帧为单位)将原始的视频数据流划分为多个数据块;其次,对多个数据块中的每个数据块进行逐个单位数据块的加密处理;然后,再采用高强度的对称加密算法对按照单位数据块逐个进行加密后构成的整体视频数据流进行对称加密。被加密的视频文件通过加密处理后已经不再是标准的可解析的视频文件,而是以密文的数据保存下来。

方式四、在方式三的基础上对每个单位数据块加入不同的数字水印(digitalwatermarking)。数字水印是指嵌入数字载体(包括:多媒体、文档、软件等)中的数字信号,其可以是图像、文字、符号、数字等所有可以作为标识的信息。数字水印既不影响原始载体的正常使用及存在价值,也不容易被人感知。数字水印通过特定的算法将一些标志性信息直接嵌入到多媒体内容当中,但不影响原内容的价值和使用,并且不能被人的知觉系统觉察或注意到,只有通过专用的检测器或阅读器才能提取,其中的水印信息可以是视频文件作者的序列号、视频文件提供商的标志、有特殊意义的文本等,可用来识别文件、图像或音乐制品的来源、版本、原作者、拥有者、发行人、合法使用人对数字产品的拥有权。通过检测加入到每个单位数据块中的数字水印来确定原始视频数据流的完整性以及版权进行校验。

相关技术中,基于ffmpeg组件开发的视频播放器无法对加密视频文件进行解码和播放,由此易导致发送至ffmpeg的视频文件中的视频数据被篡改或者视频文件被盗版。采用如图4所示的装置实施例,在播放接口基础上扩展出了解密功能,其能够针对定制化的加密视频文件进行解码和播放,从而有效地防止发送至与视频格式对应的解码代码的视频文件中的视频数据被篡改或者视频文件被盗版,进而实现了在将一个原始的可直接进行播放的视频文件进行加密后,使得播放器能够对该加密视频文件进行解密,解码和渲染。

可选地,图5是根据本发明优选实施例的播放视频数据流的装置的结构框图。如图5所示,获取模块10可以包括:注册单元100,用于注册视频数据流读取接口;获取单元102,用于采用视频数据流读取接口对待解密的视频数据流进行重定向,获取待解密的视频数据流。

在优选实施过程中,上述注册单元100,用于通过与视频格式对应的解码代码提供的回调函数接口向与视频格式对应的解码代码注册视频数据流读取接口。

考虑到基于ffmpeg组件开发的播放器不支持对加密视频文件的解码和播放,因此,如果已经对原始视频数据流进行过加密,那么将不能直接将加密视频数据流发送至ffmpeg进行解码和播放。为此,如果需要实现加密视频数据流在ffmpeg进行解码和播放,则需要在对加密视频数据流进行解码和播放前,先通过ffmpeg提供的接口将读取加密视频数据流的动作重定向到预先设定的回调函数中,并在回调函数中完成对加密视频数据流的读取操作与解密操作。具体地,在ffmpeg初始化过程中,通过调用ffmpeg提供的回调函数avio_alloc_context接口来注册自定义的read_packet接口,以实现将读取加密视频数据流的动作重定向到预先设定的回调函数中。

可选地,如图5所示,当加密方式为先按照预设长度为单位将原始视频数据流划分为多个数据块并采用第一加密算法对多个数据块逐一进行加密,再采用第二加密算法对加密后的多个数据块进行整体加密时,处理模块20可以包括:第一解密单元200,用于通过与第二加密算法匹配的解密算法从待解密的视频数据流中解密出加密后的多个数据块;第二解密单元202,用于通过与第一加密算法匹配的解密算法从加密后的多个数据块中解密出多个数据块;组装单元204,用于对多个数据块进行组装,得到处理后的视频数据流。

当加密方式为按照预设长度为单位将原始视频数据流划分为多个数据块并采用第一加密算法(按划分单位逐一进行加密算法)对多个数据块逐一进行加密,再采用第二加密算法(高强度对称加密算法)对加密后的多个数据块进行整体加密时,由于被加密的视频文件通过加密处理后已经不再是标准的可解析的视频文件,而是以密文的 数据保存下来,因此,在获取到待解密的视频数据流后,首先,需要采用与第二加密算法(高强度对称加密算法)互逆的解密算法对上述整体加密过程进行破解,从待解密的视频数据流中解密出采用第一加密算法得到的加密后的多个数据块;其次,采用与第二加密算法(高强度对称加密算法)互逆的解密算法对加密后的多个数据块进行逐个单位数据块的解密操作,得到尚未加密的多个数据块;然后,再通过对解密出的多个数据块进行组装,最终得到准备在ffmpeg进行解码和播放的原始视频数据流。

可选地,如图5所示,当加密方式为先按照预设长度为单位将原始视频数据流划分为多个数据块,采用第一加密算法对多个数据块逐一进行加密并对多个数据块逐一添加数字水印,再采用第二加密算法对加密后的多个数据块进行整体加密时,处理模块20可以包括:第一解密单元200,用于通过与第二加密算法匹配的解密算法从待解密的视频数据流中解密出加密后的多个数据块;第二解密单元202,用于通过与第一加密算法匹配的解密算法从加密后的多个数据块中解密出多个数据块;校验单元206,用于通过逐一为多个数据块中每个数据块添加的数字水印对多个数据块进行数据完整性校验;组装单元204,用于在数据完整性校验成功后,对多个数据块进行组装,得到处理后的视频数据流。

当加密方式为先按照预设长度为单位将原始视频数据流划分为多个数据块,采用第一加密算法(按划分单位逐一进行加密算法)对多个数据块逐一进行加密并对多个数据块逐一添加数字水印,再采用第二加密算法(高强度对称加密算法)对加密后的多个数据块进行整体加密时,由于被加密的视频文件通过加密处理后已经不再是标准的可解析的视频文件,而是以密文的数据保存下来,因此,在获取到待解密的视频数据流后,首先,需要采用与第二加密算法(高强度对称加密算法)互逆的解密算法对上述整体加密过程进行破解,从待解密的视频数据流中解密出采用第一加密算法得到的加密后的多个数据块;其次,采用与第二加密算法(高强度对称加密算法)互逆的解密算法对加密后的多个数据块进行逐个单位数据块的解密操作,得到尚未加密的多个数据块;然后,通过逐一为多个数据块中每个数据块添加的数字水印对多个数据块进行数据完整性校验,即通过添加数字水印来确保原始视频数据流的完整性与准确性;最后,再通过对解密出的多个数据块进行组装,最终得到准备在ffmpeg进行解码和播放的原始视频数据流。

可选地,如图5所示,上述装置还可以包括:请求模块40,用于请求创建内存空间,其中,内存空间用于存储待解密的视频数据流以及存储待解密的视频数据流进行解密处理过程中得到的中间数据。

在获取到待解密的视频数据流之后,首先,需要在内存中请求开辟一块存储空间 对待解密的视频数据流进行存储;其次,基于上述分析,当加密方式为按照预设长度为单位将原始视频数据流划分为多个数据块并采用第一加密算法(按划分单位逐一进行加密算法)对多个数据块逐一进行加密,再采用第二加密算法(高强度对称加密算法)对加密后的多个数据块进行整体加密时,在采用与第二加密算法(高强度对称加密算法)互逆的解密算法对上述整体加密过程进行破解,从待解密的视频数据流中解密出采用第一加密算法得到的加密后的多个数据块以及采用与第二加密算法(高强度对称加密算法)互逆的解密算法对加密后的多个数据块进行逐个单位数据块的解密操作,得到尚未加密的多个数据块都可以作为中间数据暂存于新开辟的存储空间内;然后,在该存储空间内通过对解密出的多个数据块进行组装,最终得到可以被ffmpeg正确解析和执行的原始视频数据流;或者,当加密方式为先按照预设长度为单位将原始视频数据流划分为多个数据块,采用第一加密算法(按划分单位逐一进行加密算法)对多个数据块逐一进行加密并对多个数据块逐一添加数字水印,再采用第二加密算法(高强度对称加密算法)对加密后的多个数据块进行整体加密时,采用与第二加密算法(高强度对称加密算法)互逆的解密算法对上述整体加密过程进行破解,从待解密的视频数据流中解密出采用第一加密算法得到的加密后的多个数据块以及采用与第二加密算法(高强度对称加密算法)互逆的解密算法对加密后的多个数据块进行逐个单位数据块的解密操作,得到尚未加密的多个数据块都可以作为中间数据暂存于新开辟的存储空间内;然后,通过逐一为多个数据块中每个数据块添加的数字水印对多个数据块进行数据完整性校验,即通过添加数字水印来确保原始视频数据流的完整性与准确性;最后,再通过对解密出的多个数据块进行组装,最终得到可以被ffmpeg正确解析和执行的原始视频数据流。

此外,在该实施例中还提供了一种服务器。图6是根据本发明实施例的用于播放视频数据流的服务器与客户端进行信息交互的示意图。如图6所示,服务器,用于接收来自于客户端的待解密的视频数据流,根据与待解密的视频数据流所采用的加密方式对应的解密方式对待解密的视频数据流进行解密处理以及将解密处理后的视频数据流发送至与视频格式对应的解码代码进行播放。

实施例3

本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。

可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中 的至少一个网络设备。

可选地,图7是根据本发明实施例的一种计算机终端的结构框图。如图7所示,该计算机终端可以包括:一个或多个(图中仅示出一个)处理器以及存储器。

其中,存储器可用于存储软件程序以及模块,如本发明实施例中的播放视频数据流的方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的播放视频数据流的方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:

s1:获取待解密的视频数据流;

s2:根据与待解密的视频数据流所采用的加密方式对应的解密方式对待解密的视频数据流进行解密处理;

s3:将处理后的视频数据流发送至与视频格式对应的解码代码进行播放。

可选的,上述处理器还可以执行如下步骤的程序代码:注册视频数据流读取接口;采用视频数据流读取接口对待解密的视频数据流进行重定向,获取待解密的视频数据流。

可选的,上述处理器还可以执行如下步骤的程序代码:通过与视频格式对应的解码代码提供的回调函数接口向与视频格式对应的解码代码注册视频数据流读取接口。

可选的,上述处理器还可以执行如下步骤的程序代码:当加密方式为先按照预设长度为单位将原始视频数据流划分为多个数据块并采用第一加密算法对多个数据块逐一进行加密,再采用第二加密算法对加密后的多个数据块进行整体加密时,通过与第二加密算法匹配的解密算法从待解密的视频数据流中解密出加密后的多个数据块;通过与第一加密算法匹配的解密算法从加密后的多个数据块中解密出多个数据块;对多个数据块进行组装,得到处理后的视频数据流。

可选的,上述处理器还可以执行如下步骤的程序代码:当加密方式为先按照预设长度为单位将原始视频数据流划分为多个数据块,采用第一加密算法对多个数据块逐一进行加密并对多个数据块逐一添加数字水印,再采用第二加密算法对加密后的多个数据块进行整体加密时,通过与第二加密算法匹配的解密算法从待解密的视频数据流 中解密出加密后的多个数据块;通过与第一加密算法匹配的解密算法从加密后的多个数据块中解密出多个数据块;通过逐一为多个数据块中每个数据块添加的数字水印对多个数据块进行数据完整性校验;在数据完整性校验成功后,对多个数据块进行组装,得到处理后的视频数据流。

可选的,上述处理器还可以执行如下步骤的程序代码:请求创建内存空间,其中,内存空间用于存储待解密的视频数据流以及存储待解密的视频数据流进行解密处理过程中得到的中间数据。

采用本发明实施例,在获取到待解密的视频数据流之后,先根据待解密的视频数据流所采用的加密方式对应的解密方式对待解密的视频数据流进行解密处理,然后再将处理后的视频数据流发送至与视频格式对应的解码代码进行播放的方式,通过先对获取到的加密视频进行解密和封装,达到了对加密视频进行解码与播放的目的,从而实现了针对定制化的加密视频文件进行解码和播放,有效地防止加密视频文件中的视频数据被修改或视频文件被盗版的技术效果,进而解决了相关技术中播放工具提供的播放接口和功能无法支持对于加密视频文件的解码与播放,由此易造成视频文件因为没有经过加密处理故而轻易地被黑客伪装和篡改的技术问题。

本领域普通技术人员可以理解,图7所示的结构仅为示意,计算机终端也可以是智能手机(如android手机、ios手机等)、平板电脑、掌声电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图7其并不对上述电子装置的结构造成限定。例如,计算机终端还可包括比图7中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图7所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,简称为rom)、随机存取器(randomaccessmemory,简称为ram)、磁盘或光盘等。

实施例4

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的播放视频数据流的方法所执行的程序代码。

可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

s1:获取待解密的视频数据流;

s2:根据与待解密的视频数据流所采用的加密方式对应的解密方式对待解密的视频数据流进行解密处理;

s3:将处理后的视频数据流发送至与视频格式对应的解码代码进行播放。

可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:注册视频数据流读取接口;采用视频数据流读取接口对待解密的视频数据流进行重定向,获取待解密的视频数据流。

可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:通过与视频格式对应的解码代码提供的回调函数接口向与视频格式对应的解码代码注册视频数据流读取接口。

可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:当加密方式为先按照预设长度为单位将原始视频数据流划分为多个数据块并采用第一加密算法对多个数据块逐一进行加密,再采用第二加密算法对加密后的多个数据块进行整体加密时,通过与第二加密算法匹配的解密算法从待解密的视频数据流中解密出加密后的多个数据块;通过与第一加密算法匹配的解密算法从加密后的多个数据块中解密出多个数据块;对多个数据块进行组装,得到处理后的视频数据流。

可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:当加密方式为先按照预设长度为单位将原始视频数据流划分为多个数据块,采用第一加密算法对多个数据块逐一进行加密并对多个数据块逐一添加数字水印,再采用第二加密算法对加密后的多个数据块进行整体加密时,通过与第二加密算法匹配的解密算法从待解密的视频数据流中解密出加密后的多个数据块;通过与第一加密算法匹配的解密算法从加密后的多个数据块中解密出多个数据块;通过逐一为多个数据块中每个数据块添加的数字水印对多个数据块进行数据完整性校验;在数据完整性校验成功后,对多个数据块进行组装,得到处理后的视频数据流。

可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:请求创建内存空间,其中,内存空间用于存储待解密的视频数据流以及存储待解密的视频数据流进行解密处理过程中得到的中间数据。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1