一种支持云游戏一起玩的动态编码方法技术

技术编号:35064973 阅读:18 留言:0更新日期:2022-09-28 11:21
本发明专利技术公开一种支持云游戏一起玩的动态编码方法,包括以下步骤:S1:客户端A与游戏串流进程建立串流连接;S2:游戏串流进程开始进行画面编码,帧序列为IPPP

【技术实现步骤摘要】
一种支持云游戏一起玩的动态编码方法


[0001]本专利技术涉及云游戏
,尤其涉及一种支持云游戏一起玩的动态编码方法。

技术介绍

[0002]在云游戏场景下存在有一起玩的游戏使用场景,即一个人邀请另一个人一起玩同一个云游戏进程,此时输入具有多个来源,但是游戏画面输出是需要同步输出到多个用户终端的客户端。
[0003]当一个云游戏在进行多个人一起玩的时候,因为要保持多个终端的画面实时同步,则需要进行多路的视频编码,目前存在一种方式是每增加一个用户,则为此用户单独开启一路串流并独立编码,这种方式存在以下问题:
[0004]1、在消费级的NVIDIA显卡上,只允许同时调用3路编码;
[0005]2、当用户超过指定数量后,会存在编码性能不足的问题;
[0006]3、不同客户端由于存在网络以及客户端自身解码的能力不同,导致不同客户端在同一时间点显示的画面不同,影响游戏体验。
[0007]因此,现有技术存在缺陷,需要改进。

技术实现思路

[0008]本专利技术要解决的技术问题是:提供一种支持云游戏一起玩的动态编码方法,以解决
技术介绍
所提交的技术问题。
[0009]本专利技术的技术方案如下:提供一种支持云游戏一起玩的动态编码方法,包括以下步骤。
[0010]S1:客户端A与游戏串流进程建立串流连接。
[0011]S2:游戏串流进程开始进行画面编码,帧序列为IPPP

P;所述I帧:关键帧,可被独立编码和解码,编码、解码性能消耗较大,占用空间较大;所述P帧:预测帧,不可被独立编码和解码,需要参考前面的I帧或者P帧来解码成一张完整的视频画面,编码、解码性能消耗较小,占用空间较小。
[0012]S3:客户端A接收到帧序列,进行解码并渲染画面。
[0013]S4:客户端B此时开始与游戏串流进程建立串流连接。
[0014]S5:游戏串流进程检测到有新的客户端连接,游戏串流进程不创建新的编码流程,游戏串流进程在原有的编码流程上重新设置I帧,并在客户端B开始串流之前,在目前的帧序列中插入最新的I帧,并将此帧序列数据同时推送给客户端A、客户端B。
[0015]S6:此时客户端A收到的帧序列为IPPP

PIPPP

P,客户端B收到的帧序列为IPPP

P。
[0016]当有新的客户端加入时,重复步骤S4、S5、S6。
[0017]由于游戏串流进程给客户端A、客户端B输出的帧序列都是相同的,保证画面同步的同时节省了编码消耗,没有了诸多的显卡驱动限制所带来的瓶颈;提高了单张显卡所能
支持的一起玩的用户数量,有效节约成本。
[0018]所述支持云游戏一起玩的动态编码方法,还包括。S7:云游戏服务器获取客户端A、客户端B展示同一帧画面的时间点,算出客户端A、客户端B显示同一帧画面的时间差Tc;若Tc<0.01s,本步骤结束,若Tc≥0.01s,进入步骤S8。S8:游戏串流进程对更快显示的客户端发送的帧序列的发送时间延时Tc后发送或者更快显示的客户端对帧序列解码后延时Tc后显示。给显示更快的客户端增加延时,从而抵消显示更坏客户端的显示优势,使各个客户端的在同一时间点显示的帧画面一致,增进用户之间的互动交流。
[0019]步骤S7每隔半分钟进行一次。
[0020]在步骤S6中,若客户端A、客户端B的帧序列出现丢包时,游戏串流进程在目前的帧序列中重新插入最新的I帧,并将此帧序列数据同时推送给客户端A、客户端B。从而可以进一步确保画面同步,提升用户体验。
[0021]采用上述方案,本专利技术提供一种支持云游戏一起玩的动态编码方法,由于游戏串流进程给客户端A、客户端B输出的帧序列都是相同的,保证画面同步的同时节省了编码消耗,没有了诸多的显卡驱动限制所带来的瓶颈;提高了单张显卡所能支持的一起玩的用户数量,有效节约成本。进一步地,给显示更快的客户端增加延时,从而抵消显示更坏客户端的显示优势,使各个客户端的在同一时间点显示的帧画面一致,增进用户之间的互动交流,增进友谊。
附图说明
[0022]图1为本专利技术一实施例的方法流程图。
具体实施方式
[0023]以下结合附图和具体实施例,对本专利技术进行详细说明。
[0024]请参阅图1,本实施例提供一种支持云游戏一起玩的动态编码方法,包括以下步骤。
[0025]S1:客户端A与游戏串流进程建立串流连接。
[0026]S2:游戏串流进程开始进行画面编码,帧序列为IPPP

P;所述I帧:关键帧,可被独立编码和解码,编码、解码性能消耗较大,占用空间较大;所述P帧:预测帧,不可被独立编码和解码,需要参考前面的I帧或者P帧来解码成一张完整的视频画面,编码、解码性能消耗较小,占用空间较小。
[0027]S3:客户端A接收到帧序列,进行解码并渲染画面。
[0028]S4:客户端B此时开始与游戏串流进程建立串流连接。
[0029]S5:游戏串流进程检测到有新的客户端连接,游戏串流进程不创建新的编码流程,游戏串流进程在原有的编码流程上重新设置I帧,并在客户端B开始串流之前,在目前的帧序列中插入最新的I帧,并将此帧序列数据同时推送给客户端A、客户端B。
[0030]S6:此时客户端A收到的帧序列为IPPP

PIPPP

P,客户端B收到的帧序列为IPPP

P。若客户端A、客户端B的帧序列出现丢包时,游戏串流进程在目前的帧序列中重新插入最新的I帧,并将此帧序列数据同时推送给客户端A、客户端B。从而可以进一步确保画面同步,提升用户体验。
[0031]S7:云游戏服务器获取客户端A、客户端B展示同一帧画面的时间点,算出客户端A、客户端B显示同一帧画面的时间差Tc;若Tc<0.01s,本步骤结束,若Tc≥0.01s,进入步骤S8。
[0032]S8:游戏串流进程对更快显示的客户端发送的帧序列的发送时间延时Tc后发送或者更快显示的客户端对帧序列解码后延时Tc后显示。给显示更快的客户端增加延时,从而抵消显示更坏客户端的显示优势,使各个客户端的在同一时间点显示的帧画面一致,增进用户之间的互动交流。步骤S7每隔半分钟进行一次。
[0033]当有新的客户端加入时,重复步骤S4、S5、S6。
[0034]由于游戏串流进程给客户端A、客户端B输出的帧序列都是相同的,保证画面同步的同时节省了编码消耗,没有了诸多的显卡驱动限制所带来的瓶颈;提高了单张显卡所能支持的一起玩的用户数量,有效节约成本。
[0035]综上所述,本专利技术提供一种支持云游戏一起玩的动态编码方法,由于游戏串流进程给客户端A、客户端B输出的帧序列都是相同的,保证画面同步的同时节省了编码消耗,没有了诸多的显卡驱动限制所带来的瓶颈;提高了单张显卡所能支持的一起玩的用户数量,有效节约成本。进一步地,给显示更快的客户端增加本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种支持云游戏一起玩的动态编码方法,其特征在于,包括以下步骤:S1:客户端A与游戏串流进程建立串流连接;S2:游戏串流进程开始进行画面编码,帧序列为IPPP

P;所述I帧:关键帧,可被独立编码和解码,编码、解码性能消耗较大,占用空间较大;所述P帧:预测帧,不可被独立编码和解码,需要参考前面的I帧或者P帧来解码成一张完整的视频画面,编码、解码性能消耗较小,占用空间较小;S3:客户端A接收到帧序列,进行解码并渲染画面;S4:客户端B此时开始与游戏串流进程建立串流连接;S5:游戏串流进程检测到有新的客户端连接,游戏串流进程不创建新的编码流程,游戏串流进程在原有的编码流程上重新设置I帧,并在客户端B开始串流之前,在目前的帧序列中插入最新的I帧,并将此帧序列数据同时推送给客户端A、客户端B;S6:此时客户端A收到的帧序列为IPPP

PIPPP

P,客户端B收到的帧序列为IPPP

P。2.根...

【专利技术属性】
技术研发人员:李越邹琼周双全
申请(专利权)人:深圳市瑞云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1