一种云手机与真机的数据通信方法及系统与流程

文档序号:30877654发布日期:2022-07-26 20:25阅读:272来源:国知局
一种云手机与真机的数据通信方法及系统与流程

1.本发明涉及云手机技术领域,特别是涉及一种云手机与真机的数据通信方法及系统。


背景技术:

2.云手机是通过在云服务器端通过虚拟容器的方式,将一台云服务器划分成多个虚拟机来独立运行的android系统,然后提供远程操作让手机等终端设备操作使用,使得各种应用运行在云端,方便管理,可以大大减少真实手机本地资源的消耗。
3.由于程序运行在云端,真机需要看到云手机的运行界面,并进行操作,因此需要的把云手机的运行界面和声音传送给真机播放显示,而真机把触控信息传给云机,从而实现真机远程操控云机。目前,真机与云机的数据交互场景非常多,比如两者之间进行文件、应用的上传和下载,文本编辑时的复制、粘贴等操作,真机把传感器、麦克风,摄像头定位信息等数据从传给云机实现真机模拟功能等等场景,都需要进行数据通信。
4.随着5g网络的普及,云游戏、云应用、云教育、云健身等应用场景场景越来越多,真机和云手机交互的数据量比较大,网络场景也比较复杂,因此,如何在真机和云机之间进行高可靠、高质量和低延时的数据传输成为云手机体验的重要指标,亟待提出一种高效的云手机与真机的数据通信方法来支持。
5.目前一些实现云手机通信的实现案例多数都是集成了一些开源的音视频通信协议,比如webrtc,webrtc的好处是免费,强大的nat和防火墙穿透技术,现在webrtc技术内置于浏览器中,用户就可以通过浏览器来实现实时通信。
6.但是针对云手机的场景,webrtc有一定的局限性,比如:webrtc主要面向web应用,虽然也可以用于native开发,但是由于涉及到的领域知识(音视频采集、处理、编解码、实时传输等)较多,整个框架设计比较复杂,api粒度也比较细,导致连工程项目的编译都不是一件容易的事;webrtc的传输设计基于p2p,难以保障传输质量,优化手段也有限,只能做一些端到端的优化,难以应对复杂的互联网环境,比如对跨地区、跨运营商、低带宽、高丢包等场景;webrtc更多的针对视频聊天的场景,很多云手机的场景比如真机模拟、多平互动并不适用,用在云手机上会存在一定局限性。


技术实现要素:

7.为克服上述现有技术存在的不足,本发明之目的在于提供一种云手机与真机的数据通信方法及系统,通过将数据和视频分开通道传输,不但可以有针对性地进行传输优化,还可以方便后端进行进行网络配置,指定不同的端口、配置不同的带宽发送,允许多客户端接入,实现多屏互动等功能。
8.为达上述目的,本发明提出一种云手机与真机的数据通信方法,包括如下步骤:
9.步骤s1,于云手机与真机之间建立数据通道,在进行数据通道交互认证通过后,启动视频通道,建立视频通道连接;
10.步骤s2,在进行数据通信时,云手机/真机获取待通信的通信信息,将其中的数据信息通过数据通道传输给真机/云手机,而将其中的视频信息通过视频通道传输给真机/云手机。
11.优选地,步骤s1包括:
12.步骤s100,真机向云手机发送数据通道连接请求,所述数据通道连接请求中包含身份验证信息;
13.步骤s101,云手机对所述数据通道连接请求进行身份验证,于身份验证通过后,与真机之间建立数据通道连接;
14.步骤s102,真机向云手机发送视频通道连接请求,所述视频通道连接请求中包含有身份验证信息;
15.步骤s103,云手机对所述视频通道连接请求进行身份验证,于身份验证通过后,与真机之间建立视频通道连接。
16.优选地,于步骤s100中,所述真机基于websocket协议向云手机发送所述数据通道连接请求。
17.优选地,步骤s2包括:
18.步骤s200,真机向云手机发出音频格式数据获取请求或者云手机向真机发出音频格式数据获取请求,云手机根据该请求初始化云机端音频编码器,真机初始化真机端音频解码器;
19.步骤s201,真机向云手机发出视频格式数据获取请求或云手机向真机发出视频格式数据获取请求,云手机根据该请求初始化云机端视频编码器,真机初始化真机端视频解码器;
20.步骤s202,真机向云手机发送推流请求,云手机根据该推流请求从获取音视频编码后,分别通过数据通道与视频通道传输给真机,从而实现云机推流,进行远程桌面显示的目的,或者真机将真机端的音视频数据分别通过数据通道与视频通道推流至云手机。
21.优选地,所述数据通道采用基于tcp协议的可靠传输,通过websocket+tls实现。
22.优选地,所述视频通道采用基于udp协议的快速传输。
23.优选地,所述视频通道在基于udp协议传输视频数据的过程中,根据云手机场景,在传输层实现拥塞控制机制,并结合智能重传(arq)、前向纠错(fec)和动态码率调整技术实现网络优化。
24.优选地,于步骤s2中,在数据通信过程中,云手机与真机之间采用自定义的网络传输协议对待通信的通信信息进行封装后进行数据通信。
25.优选地,所述自定义的网络传输协议包括指令协议和数据协议,所述指令协议设计为文本模式,所述数据协议设计为二进制传输,用于传输音视频流以及输入控制流。
26.为达到上述目的,本发明还提供一种云手机与真机的数据通信系统,包括;云手机端与真机端,所述云手机端与真机端之间建立数据通道,在进行数据通道交互认证通过后,启动视频通道,建立视频通道连接,在进行数据通信时,云手机端/真机端获取待通信的通信信息,将待通信的通信信息中的数据信息通过数据通道传输给真机端/云手机端,将待通信的通信信息中的视频信息通过视频通道传输给真机端/云手机端。
27.与现有技术相比,本发明一种云手机与真机的数据通信方法及系统,通过在云手
机与真机之间建立数据通道和视频通道,在进行数据通信时将数据和视频采用自定义的网络传输协议分开通道传输,不但可以有针对性地进行传输优化,还可以方便后端进行进行网络配置,指定不同的端口、配置不同的带宽发送,允许多客户端接入,实现多屏互动等功能,而且通过采用自定义网络传输协议,可以精简指令,减少数据冗余,提高传输效率。
附图说明
28.图1为本发明一种云手机与真机的数据通信方法的步骤流程图;
29.图2为本发明实施例中采用自定义的网络传输协议进行数据通信的示意图;
30.图3为本发明一种云手机与真机的数据通信系统的系统结构图。
31.图4为本发明一种云手机与真机的数据通信系统的交互流程图。
具体实施方式
32.以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
33.图1为本发明一种云手机与真机的数据通信方法的步骤流程图。如图1所示,本发明一种云手机与真机的数据通信方法,包括如下步骤:
34.步骤s1,于云手机与真机之间建立数据通道,在进行数据通道交互认证通过后,启动视频通道,建立视频通道连接。
35.具体地,步骤s1进一步包括:
36.步骤s100,真机向云手机发送数据通道连接请求。
37.在本发明具体实施例中,基于websocket协议,真机向云手机发送数据通道连接请求,所述数据通道连接请求中至少包含身份验证信息。
38.步骤s101,云手机对所述数据通道连接请求进行身份验证,于身份验证通过后,与真机之间建立数据通道连接。
39.步骤s102,真机向云手机发送视频通道连接请求,所述视频通道连接请求中也至少包含有身份验证信息。需说明的是,在本发明中,建立视频通道连接请求的指令是在数据通道上传输的(tcp)
40.步骤s103,云手机对所述视频通道连接请求进行身份验证,于身份验证通过后,与真机之间建立视频通道连接。
41.也就是说,在本发明中,在云手机与真机之间分别建立数据通道,即data channel,以及视频通道,即video channel,以将云手机与真机之间的数据和视频分开通道传输,即数据通过数据通道(data channel)传输,视频通过视频通道(video channel)传输,数据通道(data channel)与视频通道video channel都是双向的,既可以用于远程桌面操作,也可以用于真机模拟。
42.在本发明具体实施例中,云手机与真机之间的数据通道和视频通道分开端口配置,互不干扰,可以根据客户端(其中真机作为客户端)的个数进行配置,让多用户真机同时访问一个云机,从而实现云手机多屏互动。
43.步骤s2,在进行数据通信时,云手机/真机获取通信信息,将通信信息中的数据信息通过数据通道传输给真机/云手机,而将通信信息中的视频信息通过视频通道传输给真机/云手机。
44.在本发明中,通过数据通道传输的数据量比较小,因此数据信息可以包括控制信息、audio数据、触控信息和设备驱动数据等,具体地,所述数据通道采用基于tcp的可靠传输,通过websocket+tls实现;通过视频通道传输视频数据,数据量比较大,所述视频通道则采用基于udp的快速传输,优选地,所述视频通道基于udp传输视频数据的过程中,根据云手机场景,在传输层实现拥塞控制机制,并结合智能重传(arq)、前向纠错(fec)和动态码率调整等技术实现网络优化,降低网络抖动带来的影响,并结合容错措施,适当丢帧并快速恢复,充分保证数据传输的可靠性性和实时性。
45.在进行数据通信时,发送数据或视频的一方作为服务端,另一方作为客户端,例如当云手机端把屏幕编码(对屏幕进行抓屏,再编码成视频,属于视频传输)通过数据通道发送给真机,实现远程桌面操作时,云手机端则是服务端,真机是客户端;而当真机将摄像头的视频数据采集并通过视频通道给云手机端使用,实现真机模拟功能时,真机是服务端,云机是客户端。优选地,于步骤s2中,进一步包括:
46.步骤s200,真机向云手机发出音频格式数据获取请求或者云手机向真机发出音频格式数据获取请求,云手机根据该请求初始化云机端音频编码器,真机初始化真机端音频解码器。
47.具体地,当需要云机进行推流实现远程桌面显示,用户通过真机向云手机请求audio格式数据(走数据通道),云手机根据该请求初始化audio编码器,并于完成后返回结果至真机,真机根据返回结果完成真机端初始化audio解码器;
48.步骤s201,真机向云手机发出视频格式数据获取请求或者云手机向真机发出视频格式数据获取请求,云手机根据该请求初始化云机端视频编码器,真机初始化真机端视频解码器。
49.当初始化音频编码器后,真机向云手机请求video格式数据,云手机根据该请求初始化video编码器,并于完成后返回结果至真机,真机根据返回结果完成真机端初始化video解码器,在本发明中,视频格式数据获取请求是信令控制的,通过数据通道传递。
50.步骤s202,真机向云手机发送推流请求,云手机根据该推流请求从获取音视频编码后,分别通过数据通道与视频通道传输给真机,从而实现云机推流,进行远程桌面显示的目的,或者真机将真机端的音视频数据分别通过数据通道与视频通道推流至云手机。
51.具体地,当初始化音视频编解码器后,真机端则发送推流请求(信令控制,通过数据通道传递),云手机则从mediacodec获取音频,并通过audio编码器将音频编码后将音频流通过数据通道传输至真机,同时云手机进行ffminicap抓屏,并通过video编码器进行ffmpeg编码后将视频流通过视频通道传输至真机,真机接收到该音频流与视频流后,则通过audio解码器与video解码器分别解码音视频予以播放。
52.真机也可以将真机端的视频数据推流给云手机,例如云手机申请打开真机端摄像头工作后建立连接,真机通过摄像头录像,把视频数据传送给云机应用处理。
53.优选地,于步骤s2中,在数据通信过程中,收发双方采用自定义的网络传输协议对待通信的通信信息进行封装后进行数据通信,如图2所示,在本发明具体实施例中,自定义
的网络传输协议分为两部分:指令协议和数据协议,指令协议设计为文本模式(json文本),不仅方便阅读,也非常容易扩展,数据协议设计为二进制传输,主要用于传输音视频流,输入控制流,按特定格式封包、解包,也就是说,对待通信的通信信息中的数据信息,其中的指令数据基于指令协议进行封装后通过数据通道传送给接收方,其中除指令数据外的数据则基于数据协议进行封装后通过数据通道传送给接收方;对待通信的通信信息中的视频信息,则基于数据协议进行封装后通过视频通道传送给接收方,例如,对于控制信息、audio数据、触控信息和设备驱动数据(视频除外)通过数据协议,在数据通道传输,控制交互指令及其他私有定义的交互则可以通过指令协议(即json文本),在数据通道传输,对于其中的视频信息,则通过数据协议在视频通道传输。
54.在本发明具体实施例中,指令协议设计为文本模式(json文本),其格式包括参数、类型及对应描述,如下表1所示:
55.表1
[0056][0057]
数据协议传输以大端格式存储数据,第1个short表示数据类型,固定占两个字节,即占第0和第1这两个字节,第2~n个short表示数据体,其基本格式如下表2所示(单位:byte):
[0058]
表2
[0059][0060]
在本发明具体实施例中,已定义数据类型有:
[0061]
short data_audio=0x001;//audio数据,data_audio占第0和第1两个字节
[0062]
short data_video=0x0002;//视频流
[0063]
short data_file=0x0007;//数据文件
[0064]
short ctrl_key=0x0010;//按键信息
[0065]
short ctrl_touch=0x0011;//触控信息
[0066]
short ctrl_sensor=0x0012;//传感器信息,属于设备驱动的一种。
[0067]
short ctrl_gamepad=0x0013;//游戏遥感信息,属于设备驱动的一种。
[0068]
本发明通过定制化网络传输协议进行数据传输,可以精简指令,减少数据冗余,提高传输效率。
[0069]
图3为本发明一种云手机与真机的数据通信系统的系统结构图。如图3所示,本发明一种云手机与真机的数据通信系统,包括云手机端30与真机端31,所述云手机端30与真机端31之间建立数据通道与视频通道,在进行数据通信时,云手机端30/真机端31获取待通信的通信信息,将待通信的通信信息中的数据信息通过数据通道传输给真机端31/云手机
端30,将待通信的通信信息中的视频信息通过视频通道传输给真机端31/云手机端30。具体地,云手机端30与真机端31之间建立数据通道,在进行数据通道交互认证通过后,启动视频通道,建立视频通道连接,其建立过程如下:
[0070]
真机端31向云手机端30发送数据通道连接请求。
[0071]
在本发明具体实施例中,基于websocket协议,真机端31向云手机端30发送数据通道连接请求,所述数据通道连接请求中至少包含身份验证信息。
[0072]
云手机端30对所述数据通道连接请求进行身份验证,于身份验证通过后,与真机端31之间建立数据通道连接。
[0073]
真机端31向云手机端30发送视频通道连接请求,所述视频通道连接请求中也至少包含有身份验证信息。需说明的是,在本发明中,建立视频通道连接请求的指令是在数据通道上传输的(tcp)
[0074]
云手机端30对所述视频通道连接请求进行身份验证,于身份验证通过后,与真机端31之间建立视频通道连接。
[0075]
在本发明中,在云手机端30与真机端31之间分别建立数据通道,即data channel,以及视频通道,即video channel,以将云手机与真机之间的数据和视频分开通道传输,即数据通过数据通道(data channel)传输,视频通过视频通道(video channel)传输,数据通道(data channel)与视频通道video channel都是双向的,既可以用于远程桌面操作,也可以用于真机模拟。
[0076]
在本发明具体实施例中,云手机与真机之间的数据通道和视频通道分开端口配置,互不干扰,可以根据客户端(其中真机作为客户端)的个数进行配置,让多用户真机同时访问一个云机,从而实现云手机多屏互动。
[0077]
在本发明中,通过数据通道传输的数据量比较小,因此数据信息可以包括控制信息、audio数据、触控信息和设备驱动数据等,具体地,所述数据通道采用基于tcp的可靠传输,通过websocket+tls实现;通过视频通道传输视频数据,数据量比较大,所述视频通道则采用基于udp的快速传输,优选地,所述视频通道基于udp传输视频数据的过程中,根据云手机场景,在传输层实现拥塞控制机制,并结合智能重传(arq)、前向纠错(fec)和动态码率调整等技术实现网络优化,降低网络抖动带来的影响,并结合容错措施,适当丢帧并快速恢复,充分保证数据传输的可靠性性和实时性。
[0078]
在进行数据通信时,发送数据或视频的一方作为服务端,另一方作为客户端,例如当云手机端把屏幕编码通过数据通道发送给真机,实现远程桌面操作时,云手机端则是服务端,真机是客户端;而当真机将摄像头的视频数据采集并通过视频通道给云手机端使用,实现真机模拟功能时,真机是服务端,云机是客户端。
[0079]
优选地,在数据通信过程中,作为收发双方的云手机端30与真机端31采用自定义的网络传输协议对待通信的通信信息进行封装后进行数据通信,在本发明具体实施例中,自定义的网络传输协议分为两部分:指令协议和数据协议,指令协议设计为文本模式(json文本),不仅方便阅读,也非常容易扩展,数据协议设计为二进制传输,主要用于传输音视频流,输入控制流,按特定格式封包、解包,也就是说,对待通信的通信信息中的数据信息,其中的指令数据基于指令协议进行封装后通过数据通道传送给接收方,其中的除指令数据外数据则基于数据协议进行封装后通过数据通道传送给接收方;对待通信的通信信息中的视
频信息,则基于数据协议进行封装后通过视频通道传送给接收方。
[0080]
在本发明具体实施例中,指令协议设计为文本模式(json文本),其格式包括参数、类型及对应描述,如下表3所示:
[0081]
表3
[0082][0083]
数据协议传输以大端格式存储数据,第1个short表示数据类型,第2~n个short表示数据体,其基本格式如下表4(单位:byte)
[0084]
表4
[0085][0086]
在本发明具体实施例中,已定义数据类型有:
[0087]
short data_audio=1;
[0088]
short data_video=2;
[0089]
short data_file=0x07;
[0090]
short ctrl_key=0x10;
[0091]
short ctrl_touch=0x11;
[0092]
short ctrl_sensor=0x12;
[0093]
short ctrl_gamepad=0x13;
[0094]
本发明通过定制化网络传输协议进行数据传输,可以精简指令,减少数据冗余,提高传输效率。
[0095]
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1