一种跨平台无线投屏方法与流程

文档序号:15152595发布日期:2018-08-10 21:18阅读:451来源:国知局

本发明涉及智能终端互联技术领域,具体涉及一种跨平台无线投屏方法。



背景技术:

随着智能终端的普及,越来越多的人都在使用电脑,手机、平板进行办公,娱乐,学习,终端中的桌面镜像与他人分享展示在娱乐,办公,直播等场景有巨大的作用。由于人们生活与网络的连接越来越密切,装置之间需要彼此连接、交换内容的机会越来越多。传统的使用采用vga/hdmi/dvi等物理连线的方式显然无法满足移动性,便捷性的要求。

近年来wifi联盟推出miracast协议,以使多媒体设备之间建立和维持一个基于wifi的连接,并且利用这个连接推进视频和音频在目标设备的呈现播放;苹果公司推出了airplay协议,它可以将ipad,iphone设备的桌面画面分享到airplay接收端。

miracast协议和airplay协议的推出极大的方便了屏幕分享,但都有所限制。当前市场上miracast设备在稳定性和兼容性方面有所欠缺,各个厂商的实现也多有差异,而且当前市面上的miracast设备不支持多路投射,当前miracast发射端主要是android4.2以上的手机或者ipad,以及windows8以上的pc,网卡必须支持wifip2p;airplay协议则具有封闭性,是苹果公司未公开的协议,使得其应用也有一定的局限性,而且其本身也不支持多路投屏。而且不同平台的设备之前无法相互投射画面。

本发明提出一种跨平台终端间通过网络连接并进行屏幕分享的方法,通过该方法用户可以进行多人会议,多人游戏,多人协同办公,文件共享,时延短,性能稳定,清晰度高。并且很容易移植到其他的嵌入式平台机器上。可以在ios,android,windows,linux等主流系统上实现互通。



技术实现要素:

本发明的目的在于克服现有技术存在的问题,提供一种跨平台无线投屏方法。

为实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:

一种跨平台无线投屏方法,该方法分别定义发射设备画面的发射端和接收设备画面的接收端,所述发射端和接收端接入统一的网络中并且相互之间通过相应的通讯协议连接,其中,该方法包括以下阶段步骤:

步骤1)设备发现阶段,发射端自动搜索网络中的接收端,获取接收端的响应信息,并以列表方式维护和显示所有响应的接收端;

步骤2)投屏发起阶段,发射端选定接收端列表中的若干接收端作为投屏对象,发射端发射画面投屏请求消息至选定的接收端,接收端判断是否允许接入,若允许接入,则完成媒体端口的协商,开始下一阶段步骤的媒体传输阶段,若不允许接入,则提示用户投屏失败;

步骤3)媒体传输阶段,发射端和接收端进入媒体数据采集、传输和呈现的过程,发射端抓取设备画面并编码后发送至接收端,接收端对接收到的信息进行解码播放,重复上述媒体数据采集、传输和呈现的过程,直至结束进入下一阶段步骤;

步骤4)投屏结束阶段,由发射端或接收端作为发起方,发送投屏结束消息给另一方,另一方接收后回复投屏结束确认消息给发起方,投屏结束,发射端和接收端回收端口资源。

进一步的,所述步骤1)中,设备发现阶段的具体步骤如下:

步骤1.1)发射端和接收端正常运行后,接收端持续监听一个约定好的端口k;

步骤1.2)发射端定期发送探测广播discovery消息到网络中,其目的端口为所述端口k;

步骤1.3)接收端收到发射端的所述探测广播discovery消息后回复一个响应device_info_rsp消息,在所述响应device_info_rsp消息中携带有接收端的ip地址、通信端口、设备名字和设备唯一标识信息;

步骤1.4)发射端接收到所述响应device_info_rsp消息后,维护和显示接收端列表,若发射端接收到多个接收端的响应device_info_rsp消息,则发射端以列表方式维护和显示所有响应的接收端。

进一步的,所述步骤2)中,投屏发起阶段的具体步骤如下:

步骤2.1)发射端发送setup消息到接收端的通信端口,所述通信端口通过步骤1.3)获取,所述setup消息携带有本地的rtp端口和本地桌面镜像视频的传输分辨率;

步骤2.2)接收端在通信端口上收到所述setup消息后,判断是否允许接入,并回复setup_rsp消息到发射端,所述setup_rsp消息携带有接收端的媒体通信端口和接入响应码;

步骤2.3)发射端收到所述setup_rsp消息后,若判断接收端同意接入,则进入媒体传输阶段,否则,提示用户投屏失败。

进一步的,所述步骤3)中,媒体传输阶段包括发射端媒体传输步骤和接收端媒体传输步骤,其中,

所述发射端媒体传输步骤如下:

步骤3.1)发射端根据设备平台上提供的相应接口定时抓取设备屏幕画面;

步骤3.2)对屏幕画面进行h264编码;

步骤3.3)对h264编码后的媒体数据进行fec算法处理,用于在网络发生丢包情况下也能恢复屏幕画面;

步骤3.4)将处理后的媒体数据打包成rtp包传输给接收端;

重复上述步骤3.1)至步骤3.4);

所述接收端媒体传输步骤如下:

步骤3.5)接收端收取媒体通信端口的媒体数据;

步骤3.6)组rtp包,并进行乱序重排;

步骤3.7)将步骤3.6)中处理后的媒体数据送入h264解码器,解码后的媒体数据进行播放。

进一步的,所述步骤3.6)中,在进行乱序重排时,同时判断是否有丢包,丢包的情况下采用fec算法处理。

本发明的有益效果是:

本发明的发射端和接收端可以分别运行在不同平台的系统上,可以在不同平台之间实现屏幕的投射,并且移植性好,同时本发明方法能很好的支持一个发射端发射到多个接收端,多个发射端发射到一个接收端这样的应用场景,相对于miracast,airplay等方法,本发明的投屏方法更通用,跨平台性更好,场景适应性更佳。

附图说明

图1为本发明的设备发现阶段示意图;

图2为本发明的投屏发起阶段示意图;

图3为本发明的发射端媒体传输阶段示意图;

图4为本发明的接收端媒体传输阶段示意图;

图5为本发明的投屏结束阶段示意图。

具体实施方式

下面将参考附图并结合实施例,来详细说明本发明。

一种跨平台无线投屏方法,该方法分别定义发射设备画面的发射端和接收设备画面的接收端,所述发射端和接收端接入统一的网络中并且相互之间通过相应的通讯协议连接,在本实施例中,通讯协议可选bjcast协议,发射端和接收端可以使用wifi方式接入统一的网络中,也可以使用rj45接口接入统一的网络中,其中,该方法包括以下阶段步骤:

步骤1)设备发现阶段,发射端自动搜索网络中的接收端,获取接收端的响应信息,并以列表方式维护和显示所有响应的接收端;

步骤2)投屏发起阶段,发射端选定接收端列表中的若干接收端作为投屏对象,发射端发射画面投屏请求消息至选定的接收端,接收端判断是否允许接入,若允许接入,则完成媒体端口的协商,开始下一阶段步骤的媒体传输阶段,若不允许接入,则提示用户投屏失败;

步骤3)媒体传输阶段,发射端和接收端进入媒体数据采集、传输和呈现的过程,发射端抓取设备画面并编码后发送至接收端,接收端对接收到的信息进行解码播放,重复上述媒体数据采集、传输和呈现的过程,直至结束进入下一阶段步骤;

步骤4)投屏结束阶段,由发射端或接收端作为发起方,发送投屏结束消息给另一方,另一方接收后回复投屏结束确认消息给发起方,投屏结束,发射端和接收端回收端口资源。

如图1所示,所述步骤1)中,设备发现阶段的具体步骤如下:

步骤1.1)发射端和接收端正常运行后,接收端持续监听一个约定好的端口k,本实施例中端口k选择端口9089;

步骤1.2)发射端定期发送探测广播discovery消息到网络中,其目的端口为端口9089;

步骤1.3)接收端收到发射端的所述探测广播discovery消息后回复一个响应device_info_rsp消息,在所述响应device_info_rsp消息中携带有接收端的ip地址、通信端口、设备名字和设备唯一标识信息;

步骤1.4)发射端接收到所述响应device_info_rsp消息后,维护和显示接收端列表,若发射端接收到多个接收端的响应device_info_rsp消息,则发射端以列表方式维护和显示所有响应的接收端。

如图2所示,所述步骤2)中,投屏发起阶段的具体步骤如下:

步骤2.1)发射端发送setup消息到接收端的通信端口,所述通信端口通过步骤1.3)获取,所述setup消息携带有本地的rtp端口和本地桌面镜像视频的传输分辨率;

步骤2.2)接收端在通信端口上收到所述setup消息后,判断是否允许接入,允许接入策略可以按照具体应用的设计,本实施例中最大支持接入4路接收端,则超过4路后就无法接入,并回复setup_rsp消息到发射端,所述setup_rsp消息携带有接收端的媒体通信端口和接入响应码;

步骤2.3)发射端收到所述setup_rsp消息后,若判断接收端同意接入,则进入媒体传输阶段,否则,提示用户投屏失败。

所述步骤3)中,媒体传输阶段包括发射端媒体传输步骤和接收端媒体传输步骤,其中,

如图3所示,所述发射端媒体传输步骤如下:

步骤3.1)发射端根据设备平台上提供的相应接口定时抓取设备屏幕画面,本实施例中在定时选取如帧率配置为25则为40ms,抓取设备屏幕画面时,windows,linux的系统sdk都提供了相应接口,android5.0以上也开放了相关接口,ios平台上则需要在采集时通过一个airplay接收服务来进行视频采集;

步骤3.2)对屏幕画面进行h264编码;

步骤3.3)对h264编码后的媒体数据进行fec算法处理,用于在网络发生丢包情况下也能恢复屏幕画面;

步骤3.4)将处理后的媒体数据打包成rtp包传输给接收端;

重复上述步骤3.1)至步骤3.4);

如图4所示,所述接收端媒体传输步骤如下:

步骤3.5)接收端收取媒体通信端口的媒体数据;

步骤3.6)组rtp包,并进行乱序重排;

步骤3.7)将步骤3.6)中处理后的媒体数据送入h264解码器,解码后的媒体数据进行播放。

所述步骤3.6)中,在进行乱序重排时,同时判断是否有丢包,丢包的情况下采用fec算法处理。

如图5所示,投屏结束可以由发射端发起,也可以由接收端发起,需要结束的一方发送hangup消息,对端收到消息后回复hangup_rsp消息,结束后,发射端和接收端需要回收端口等资源。

上述实施例中重点介绍了一个发射端与接收端一对一投射视频画面的场景;一个接收端接收多个发射端的场景在协议流程上与上述实施例中是一致的,接收端此时在播放多路画面时可以采用画面合成,轮询播放等策略来呈现;本发明方法能很自然的支持一个接收端接收到多路发射端的投射画面,比如本实施例中允许接入策略中最大允许支持4路发射端接入;另外理论上,本发明方法也很容易扩展到一个发射端同时投射到多个接收端的场景,即本发明方法能很好的支持一个发射端发射到多个接收端,多个发射端发射到一个接收端这样的应用场景,另外,本发明方法的核心部分可以使用c语言开发,可方面的移植到arm等平台。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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