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

文档序号:13088292阅读:154来源:国知局
技术领域本发明涉及计算机技术领域,特别是涉及一种视频播放方法及装置。

背景技术:
随着网络技术快速发展,在网络上观看电影、电视剧、体育赛事等已经成为很多人习以为常的娱乐方式。很多互联网公司会购买优秀影视作品或体育赛事等视频的版权,从而在自家网站上播放这些影视作品或体育赛事等视频。为了防止盗播视频流的情况发生,可以对播放的视频流进行加密。这样,在播放加密视频流时需要解密后才能播放,因此,如何使视频客户端代码逻辑改动最小成为视频解密亟需解决的问题。

技术实现要素:
本发明实施例中提供了一种视频播放方法及装置,以实现在视频客户端增加视频流解密功能时对视频客户端的代码逻辑改动最小。为了解决上述技术问题,本发明实施例公开了如下技术方案:第一方面,本发明实施例提供一种视频播放方法,应用于视频客户端中,所述方法包括:获取待播放视频文件的视频信息,所述视频信息包括所述待播放视频文件的加密状态信息、视频类型、视频播放地址和解密认证地址;当根据所述加密状态信息确定所述待播放视频文件是加密视频文件时,根据所述解密认证地址获取认证数据,并将所述认证数据发送给代理服务插件,所述代理服务插件安装在所述视频客户端所在的终端内,用于对所述认证数据进行校验;当接收到所述代理服务插件发送校验成功结果后,将所述视频类型和所述视频播放地址发送给代理服务插件,以使所述代理服务插件根据所述视频播放地址从所述视频客户端对应的服务器中获取加密视频流并利用所述校验成功的认证数据对所述加密视频流进行解密得到与所述视频类型对应的解密视频流;从所述代理服务插件中获取所述解密视频流,并播放所述解密视频流。可选地,所述从所述代理服务插件中获取所述解密视频流,包括:所述视频客户端根据所述代理服务插件的地址生成本地播放地址;所述视频客户端利用所述本地播放地址访问所述代理服务插件,从所述代理服务插件中获取所述解密视频流。可选地,所述根据所述解密认证地址获取认证数据,包括:获取所述解密认证地址中的第一数据;对所述第一数据进行解密,得到新的解密认证地址;获取所述新的解密认证地址中的认证数据。可选地,所述方法还包括:当上述任意一个步骤出现错误时,在所述视频客户端的界面上展示播放失败类型,以及,获取播放失败原因,将所述播放失败原因发送给所述服务器。可选地,在从所述代理服务插件中获取所述解密视频流之前,所述方法还包括:当检测到视频播放中止指令时,删除视频播放过程中已经获得的全部数据,以及,退出视频播放所占用的线程。第二方面,本发明实施例提供一种视频播放装置,应用于视频客户端中,所述装置包括:第一获取模块,用于获取待播放视频文件的视频信息,所述视频信息包括所述待播放视频文件的加密状态信息、视频类型、视频播放地址和解密认证地址;第二获取模块,用于当根据所述加密状态信息确定所述待播放视频文件是加密视频文件时,根据所述解密认证地址获取认证数据,并将所述认证数据发送给代理服务插件,所述代理服务插件安装在所述视频客户端所在的终端内,用于对所述认证数据进行校验;发送模块,用于当接收到所述代理服务插件发送校验成功结果后,将所述视频类型和所述视频播放地址发送给代理服务插件,以使所述代理服务插件根据所述视频播放地址从所述视频客户端对应的服务器中获取加密视频流并利用所述校验成功的认证数据对所述加密视频流进行解密得到与所述视频类型对应的解密视频流;第三获取模块,用于从所述代理服务插件中获取所述解密视频流;播放模块,用于播放所述解密视频流。可选地,所述第三获取模块包括:地址生成子模块,用于根据所述代理服务插件的地址生成本地播放地址;第一获取子模块,用于根据所述本地播放地址访问所述代理服务插件,从所述代理服务插件中获取所述解密视频流。可选地,所述第二获取模块,包括:第二获取子模块,用于获取所述解密认证地址中的第一数据;解密子模块,用于对所述第一数据进行解密,得到新的解密认证地址;第三获取子模块,用于获取所述新的解密认证地址中的认证数据。可选地,所述装置还包括:展示模块,用于当上述任意一个模块出现错误时,在所述视频客户端的界面上展示播放失败类型,以及,获取播放失败原因,将所述播放失败原因发送给所述服务器。可选地,所述装置还包括:删除模块,用于当检测到视频播放中止指令时,删除视频播放过程中已经获得的全部数据,以及,退出视频播放所占用的线程。由以上技术方案可见,本发明实施例提供的视频播放方法,本实施例提供的视频播放方法,视频客户端确定待播放视频文件是加密视频文件后,根据获得的解密认证地址获取认证数据并发送给代理服务插件,由代理服务插件对认证数据进行校验。代理服务插件对认证数据校验成功后,由代理服务插件获取加密视频流并进行解密。代理服务插件安装在视频客户端所在的终端内,形成视频客户端与服务器之间的中间件,代理服务插件根据视频客户端发送的视频播放地址从服务器中获得加密视频流,并利用认证数据对加密视频流进行解密得到解密视频流;视频客户端从代理服务插件中获取解密视频流并播放。这样,对视频客户端的代码逻辑修改很小就能实现对视频文件的解密,从而防止视频流盗播的情况发生。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例一种视频播放方法的流程示意图;图2为本发明实施例另一种视频播放方法的流程示意图;图3为本发明实施例一种视频播放装置的框图;图4为本发明实施例一种第二获取模块的框图;图5为本发明实施例一种第三获取模块的框图;图6为本发明实施例另一种视频播放装置的框图。具体实施方式为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。参见图1,为本发明实施例提供的一种视频播放方法的流程示意图,该方法应用于视频客户端中,如图1所示,该方法包括以下步骤:S110,获取待播放视频文件的视频信息。视频客户端接收到用户的视频播放操作(例如,对视频客户端上的播放控件的点击操作)后,获取用户选择播放的视频文件的视频id,根据视频id获得待播放视频文件的视频信息。该视频信息包括待播放视频文件的加密状态信息、视频类型、视频播放地址和解密认证地址。S120,当根据加密状态信息确定所述待播放视频文件是加密视频文件时,根据所述解密认证地址获取认证数据,并将所述认证数据发送给代理服务插件,以使代理服务插件对所述认证数据进行校验。视频客户端获得待播放视频文件的视频信息后,根据加密状态信息确定该待播放视频文件是否是加密视频文件,如果确定该待播放视频文件是加密视频文件,则进一步根据解密认证地址获取认证数据,并发送给代理服务插件。由代理服务插件对认证数据进行校验,可以利用现有的校验方法进行校验。其中,代理服务插件(即,代理服务器)安装在所述视频客户端所在的终端内。数据校验是为保证数据的完整性,用一种指定的算法发送方对原始数据计算出的一个校验值,接收方用同样的算法计算一次校验值,如果计算得到的校验值和随数据提供的校验值相同,说明数据正确。S130,当视频客户端接收到代理服务插件发送的校验成功结果后将所述视频类型和所述视频播放地址发送给代理服务插件;以使代理服务插件根据所述视频播放地址从所述视频客户端对应的服务器中获取加密视频流并利用所述校验成功的认证数据对所述加密视频流进行解密得到与所述视频类型对应的解密视频流。该代理服务插件根据视频播放地址从视频客户端对应的服务器中获取加密视频流,并利用认证数据对所述加密视频流进行解密得到与所述视频类型对应的解密视频流。代理服务插件根据视频播放地址从服务器中获取原始的加密视频流,然后,根据获得的认证数据对加密视频流进行解密,得到与视频类型相对应的解密视频流,可以将解密视频流缓存在代理服务插件中。S140,从所述代理服务插件中获取所述解密视频流,并播放所述解密视频流。视频客户端根据代理服务插件的地址生成本地播放地址,即,以127.0.0.1开头的本地播放路径,并将该本地播放地址提供给视频客户端内的视频播放器,视频播放器根据该本地播放地址访问代理服务插件,从代理服务插件中获取解密视频流并播放。本实施例提供的视频播放方法,视频客户端确定待播放视频文件是加密视频文件后,根据获得的解密认证地址获取认证数据并发送给代理服务插件,由代理服务插件对认证数据进行校验。代理服务插件对认证数据校验成功后,由代理服务插件获取加密视频流并进行解密。代理服务插件安装在视频客户端所在的终端内,形成视频客户端与服务器之间的中间件,代理服务插件根据视频客户端发送的视频播放地址从服务器中获得加密视频流,并利用认证数据对加密视频流进行解密得到解密视频流;视频客户端从代理服务插件中获取解密视频流并播放。这样,对视频客户端的代码逻辑修改很小就能实现对视频文件的解密,从而防止视频流盗播的情况发生。参见图2,示出了本发明实施例另一种视频播放方法的流程示意图,该方法应用于包括终端和服务器的系统中,其中,所述终端内安装有视频客户端和代理服务插件,如图2所示,该方法包括以下步骤:S210,视频客户端检测到视频播放操作后,获取待播放视频文件的视频id。视频id是视频文件的唯一标识信息,用户在视频客户端点击要播放的视频文件后,视频客户端获取该视频文件的视频id。S220,视频客户端根据视频id获取所述待播放视频文件的视频信息。视频信息包括加密状态信息、视频类型、视频播放地址和解密认证地址。S230,视频客户端根据加密状态信息判断待播放视频文件是否是加密视频文件;如果待播放视频文件是加密视频,则执行S270;如果待播放视频文件不是加密视频,则执行S240;S240,视频客户端向服务器发送播放请求,播放请求包括视频播放地址。S250,服务器根据播放地址获取待播放视频文件。S260,视频客户端从服务器中获取所述待播放视频文件,并通过播放器播放该待播放视频文件。其中,对于非加密视频的播放过程与现有技术中的视频播放方法相同,此处不再赘述。S270,视频客户端判断视频播放地址和解密认证地址是否为空;如果视频播放地址或解密认证地址为空,则执行S2140;如果视频播放地址和解密认证地址不为空,则执行S280。本发明实施例中,将与视频解密相关的程序封装成解密manager,当判断出待播放视频文件是加密视频文件后,调用解密manager的解密方法,并将视频播放地址、解密认证地址、视频类型及回调类提供给解密manager。初次调用解密manager时,需要进行一些数据的初始化,例如,创建文件夹,设置在非正式版本上是否可以运行等操作。S280,视频客户端根据解密认证地址获取认证数据并发送给代理服务插件。解密manager获取解密认证地址中的信息,为了保证安全,该信息为嵌套信息,即,从解密认证地址中读取的第一数据需要先进行解密,得到一个新的解密认证地址,再根据新的解密认证地址获取认证数据,然后对认证数据进行校验,验证其合法性、时效性等。S290,代理服务插件对认证数据进行校验,并将校验结果发送给视频客户端。在本发明的一些实施例中,代理服务插件接收到认证数据后,首先判断该认证数据是否进行过校验,如果该认证数据已经进行过校验,则将该校验结果存储到代理服务插件中,下一次再播放该视频时,不需要再对该认证数据进行校验,从而节省了校验时间,减小用户等待播放视频的时间。如果代理服务插件对认证数据校验失败,则S2100,当视频客户端接收到校验成功结果时,将视频类型、视频播放地址发送给代理服务插件,并生成本地播放地址提供给视频客户端内的播放器。认证数据中包含代理服务插件解密视频文件所需要的信息,因此,代理服务插件需要根据认证数据中的信息对加密视频流进行解密。在本发明一些实施例中,同一视频类型在视频客户端内所使用的代码与代理服务插件中所使用的代码不相同,因此,视频客户端需要按照视频客户端与代理服务插件中视频类型代码对应关系,将视频类型在视频客户端内的代码转换成代理服务插件所对应的代码,以便代理服务插件解密视频文件得到与视频客户端所请求的类型相同的解密视频文件。视频客户端根据代理服务插件的地址生成本地播放地址,即代理服务插件内缓存解密视频文件的路径。代理服务插件安装在视频客户端所在的终端内,因此,代理服务插件内的缓存地址为终端本地路径。视频客户端生成本地播放地址后提供给视频客户端内的播放器,播放器根据该本地播放地址从代理服务插件中获取解密视频文件。S2110,代理服务插件向服务器发送播放请求,该播放请求包括视频播放地址。代理服务插件根据视频信息中的视频播放地址从服务器中获取加密视频文件。S2120,服务器将视频播放地址对应的加密视频文件发送给代理服务插件。S2130,代理服务插件根据认证数据对所述加密视频文件进行解密,获得与视频类型对应的解密视频文件。代理服务插件根据认证数据中的信息对获得的加密视频文件进行解密,获得所述视频类型的解密视频文件。S2140,所述播放器根据本地播放地址从代理服务插件中获取解密视频文件,并播放该解密视频文件。视频客户端内的播放器根据获得的本地播放地址从代理服务插件中获得解密视频文件,并播放该解密视频文件。S2150,提示播放失败,并展示播放失败类型。如果传入解密manager的视频播放地址或解密认证地址为空,则启动回调类,向调用该解密manager的界面返回空的播放路径,表明播放失败。例如,播放失败类型包括播放地址获取失败、播放失败等。如果S270~S2140中任意一个步骤出现错误时,都会以回调形式将错误信息传回给调用解密manager的调取界面,以便视频客户端向用户提示播放失败。S2160,视频客户端获取播放失败原因并发送给服务器。服务器获得播放失败原因后,产品研发人员可以根据服务器中存储的播放失败原因找到问题点,并解决该问题。其中,播放失败原因即S270~S2140中任意一个步骤出现的具体错误。S2170,当视频客户端检测到视频播放中止指令时,删除视频播放过程中已经获得的全部数据,并退出视频播放所占用的线程。如果在视频解密过程中退出视频播放,则调用解密manager的stop方法,销毁解密中的全部数据,并退出视频播放所占用的线程,释放资源,保证终端能够流畅运行。本实施例提供的视频播放方法,在视频客户端所在的终端内安装代理服务插件,该代理服务插件安装在视频客户端所在的终端内,形成视频客户端与服务器之间的中间件,代理服务插件根据视频客户端发送的视频播放地址从服务器中获得加密视频流,并对加密视频流进行解密得到解密视频流;视频客户端从代理服务插件中获取解密视频流并播放。这样,对视频客户端的代码逻辑修改很小就能实现对视频文件的解密,从而防止视频流盗播的情况发生。而且,认证数据使用了嵌套加密方式,进一步提高了视频文件的安全性。此外,如果待播放视频文件对应的认证数据已经进行过校验,则将将该校验结果存储到视频客户端中,下一次再播放该视频时,不需要再对该认证数据进行校验,从而节省了校验时间,减小用户等待播放视频的时间。与本发明提供的视频播放方法实施例相对应,本发明还提供了视频播放装置实施例。参见图3,为本发明实施例提供的一种视频播放装置的框图,该装置应用于视频客户端中,如图3所示,该装置可以包括:第一获取模块110、第二获取模块120、发送模块130、第三获取模块140和播放模块150。第一获取模块110,用于获取待播放视频文件的视频信息,所述视频信息包括所述待播放视频文件的加密状态信息、视频类型、视频播放地址和解密认证地址。视频客户端接收到用户的视频播放操作(例如,对视频客户端上的播放控件的点击操作)后,获取用户选择播放的视频文件的视频id,根据视频id获得待播放视频文件的视频信息。第二获取模块120,用于当根据所述加密状态信息确定所述待播放视频文件是加密视频文件时,根据所述解密认证地址获取认证数据,并将所述认证数据发送给代理服务插件,所述代理服务插件安装在所述视频客户端所在的终端内,用于对所述认证数据进行校验。视频客户端获得待播放视频文件的视频信息后,根据加密状态信息确定该待播放视频文件是否是加密视频文件,如果确定该待播放视频文件是加密视频文件,则进一步根据解密认证地址获取认证数据,并发送给代理服务插件。由代理服务插件对认证数据进行校验,可以利用现有的校验方法进行校验。其中,代理服务插件(即,代理服务器)安装在所述视频客户端所在的终端内。数据校验是为保证数据的完整性,用一种指定的算法发送方对原始数据计算出的一个校验值,接收方用同样的算法计算一次校验值,如果计算得到的校验值和随数据提供的校验值相同,说明数据正确。在本发明一些实施例中,如图4所示,所述第二获取模块120包括:第二获取子模块121、解密子模块122和第三获取子模块123。第二获取子模块121,用于获取所述解密认证地址中的第一数据。解密子模块122,用于对所述第一数据进行解密,得到新的解密认证地址。第三获取子模块123,用于获取所述新的解密认证地址中的认证数据。发送模块130,用于当接收到所述代理服务插件发送校验成功结果后,将所述视频类型和所述视频播放地址发送给代理服务插件,以使所述代理服务插件根据所述视频播放地址从所述视频客户端对应的服务器中获取加密视频流并利用所述校验成功的认证数据对所述加密视频流进行解密得到与所述视频类型对应的解密视频流。该代理服务插件根据视频播放地址从视频客户端对应的服务器中获取加密视频流,并利用认证数据对所述加密视频流进行解密得到与所述视频类型对应的解密视频流。代理服务插件根据视频播放地址从服务器中获取原始的加密视频流,然后,根据获得的认证数据对加密视频流进行解密,得到与视频类型相对应的解密视频流,可以将解密视频流缓存在代理服务插件中。第三获取模块140,用于从所述代理服务插件中获取所述解密视频流。视频客户端根据代理服务插件的地址生成本地播放地址,即,以127.0.0.1开头的本地播放路径,并将该本地播放地址提供给视频客户端内的视频播放器,视频播放器根据该本地播放地址访问代理服务插件,从代理服务插件中获取解密视频流并播放。参见图5,所述第三获取模块140包括:地址生成子模块141和第一获取子模块142。地址生成子模块141,用于根据所述代理服务插件的地址生成本地播放地址;第一获取子模块142,用于根据所述本地播放地址访问所述代理服务插件,从所述代理服务插件中获取所述解密视频流。播放模块150,用于播放所述解密视频流。本实施例提供的视频播放装置,视频客户端确定待播放视频文件是加密视频文件后,根据获得的解密认证地址获取认证数据并发送给代理服务插件,由代理服务插件对认证数据进行校验。代理服务插件对认证数据校验成功后,由代理服务插件获取加密视频流并进行解密。代理服务插件安装在视频客户端所在的终端内,形成视频客户端与服务器之间的中间件,代理服务插件根据视频客户端发送的视频播放地址从服务器中获得加密视频流,并利用认证数据对加密视频流进行解密得到解密视频流;视频客户端从代理服务插件中获取解密视频流并播放。这样,对视频客户端的代码逻辑修改很小就能实现对视频文件的解密,从而防止视频流盗播的情况发生。参见图6,为本发明实施例另一种视频播放装置的框图,该装置在图3所示实施例的基础上还包括展示模块210和删除模块220。展示模块210,用于当上述任意一个模块出现错误时,在所述视频客户端的界面上展示播放失败类型,以及,获取播放失败原因,将所述播放失败原因发送给所述服务器。服务器获得播放失败原因后,产品研发人员可以根据服务器中存储的播放失败原因找到问题点,并解决该问题。删除模块220,用于当检测到视频播放中止指令时,删除视频播放过程中已经获得的全部数据,以及,退出视频播放所占用的线程。如果在视频解密过程中退出视频播放,则调用解密manager的stop方法,销毁解密中的全部数据,并退出视频播放所占用的线程,释放资源,保证终端能够流畅运行。由上述实施例可见,该代理服务插件安装在视频客户端所在的终端内,形成视频客户端与服务器之间的中间件,代理服务插件根据视频客户端发送的视频播放地址从服务器中获得加密视频流,并对加密视频流进行解密得到解密视频流;视频客户端从代理服务插件中获取解密视频流并播放。这样,对视频客户端的代码逻辑修改很小就能实现对视频文件的解密,从而防止视频流盗播的情况发生。而且,认证数据使用了嵌套加密方式,进一步提高了视频文件的安全性。此外,如果待播放视频文件对应的认证数据已经进行过校验,则将将该校验结果存储到视频客户端中,下一次再播放该视频时,不需要再对该认证数据进行校验,从而节省了校验时间,减小用户等待播放视频的时间。通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1