基于luajava的视频回放方法及系统与流程

文档序号:11157596阅读:527来源:国知局
基于luajava的视频回放方法及系统与制造工艺

本发明涉及软件技术领域,具体地,涉及基于luajava的视频回放方法及系统。



背景技术:

关于游戏视频的回放技术,目前常用的解决方案如下:

方案一:服务器端实时和客户端同步数据,或者一次计算完,将数据全部回传给客户端,这种方案需要消耗大量的流量;

方案二:服务器端仅回传几个关键点数据,客户端按照固定模式接收数据点,这种方案由于会缺失很多帧的数据,从而导致回放时游戏视频失真;

方案三:在游戏中只做pve本地回放,而联赛等pvp则通过服务器计算得到,因此丧失了联赛的回放功能。

上述方案均不能有效地解决游戏视频回放的完全同步,并控制回放的流量消耗。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种基于luajava的视频回放方法及系统。

根据本发明提供的基于luajava的视频回放方法,包括:比赛中的视频回放步骤和/或比赛结束后的视频回放步骤,具体地,

比赛中的视频回放步骤包括:从服务器获取比赛参数,并调用引擎模块比赛接口;将获取的每一帧数据传输给播放模块进行实时播放;

比赛结束后的视频回放步骤包括:首先调用回放日志,获取比赛参数,然后调用服务器中的校验模块对比赛结果进行校验,判断比赛结果是否正常,若正常,则将日志参数返回给客户端,,并调用引擎模块比赛接口;将获取的每一帧数据传输给播放模块进行播放;若不正常,则拒绝回放请求。

优选地,采用lua语言作为脚本语言,并在客户端和服务器中运行如下的随机算法:

配置3个常量,分别为基础随机数base、调节随机数adjust以及模数随机数model,随机设置初始种子seed,则随机数rnd的计算公式如下:

rnd=((base*seed+adjust)%model)%model/model令新的随机种子seed的值等于当前计算出来的随机数rnd,即:

seed=rnd。

基于此随机算法,只要保证客户端和服务器端记录相同的种子,就可以保证得到相同的随机数。则客户端和服务器端,就可以保证随机数的一致性,这样比赛的随机性就可以得到体现和同步。

根据本发明提供的基于luajava的视频回放系统,包括:客户端和服务器端,

所述客户端包括:比赛引擎模块、播放模块,用于完成与服务器端的数据传输同步计算,并实时回放比赛画面;

所述服务器端包括:引擎模块,校验模块,用于对比赛结果进行校验,保证比赛的合法性。

优选地,所述服务器端还包括数据库,所述数据库用于对比赛参数和比赛结果进行保存。

与现有技术相比,本发明具有如下的有益效果:

1、本发明中的方法的优选方案能够通过luajava,实时计算游戏比赛并回放,保证回放的实时性和真实性,具体地,客户端包括比赛引擎模块,播放模块,负责计算,并实时回放;服务器端包括引擎模块,校验模块,对结果做校验,保证比赛的合法性。

2、应用本发明中的方法能够节约用户流量,并保证回放和比赛的一致性,改善用户体验。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为客户端的回放流程示意图;

图2为服务器端的回放流程示意图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

本发明让客户端和服务器运行同一套逻辑,即采用了luajava的方式,将lua语言作为一个脚本语言,lua语言的更新是非常方便的,无需更新整个逻辑,只需要更新需要更新的文件即可,并且可以和java互调。另外,本发明还有另外一个关键点是:要保证客户端和服务器端算法一致,即随机数的问题。因此,本发明提供了一套随机算法,既能保证随机数的生成,又有一套规则来保证客户端和服务器端随机数的一致。具体地,上述随机算法如下:

配置3个常量,分别为

基础随机数base,调节随机数adjust,和模数随机数model,

初始种子seed可以随机。

则根据公式计算随机数rnd:

rnd=((base*seed+adjust)%model)%model/model

并且新的随机种子seed必须为刚刚计算出来的随机数rnd:

seed=rnd

基于此随机算法,只要保证客户端和服务器端记录相同的种子,就可以保证得到相同的随机数。则客户端和服务器端,就可以保证随机数的一致性,这样比赛的随机性就可以得到体现和同步。

从而实现客户端在比赛的过程中,实时回放。比赛完成之后,客户端和服务器做一个结果校验,确认下比赛的合法性即可,如果合法,则将相关数据写入数据库;回放的时候,调用同样的接口,取出数据库的数据传入接口,即可使用播放模块实现完全同步回放。

下面结合具体实施例对本发明中的技术方案做更加详细的说明。

如图1、图2所示,比赛时,客户端调用服务器获取比赛参数,然后调用引擎模块比赛接口,每一帧获取到数据,给播放模块展示比赛画面。比赛完成后,客户端调用服务器校验模块,校验结果。如果结果正常,则写入数据库。回放时,客户端获取服务器回放数据,调用比赛引擎模块,同样对每一帧,给播放模块展示。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

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