一种多应用投屏方法、多应用投屏系统和存储介质与流程

文档序号:17159435发布日期:2019-03-20 00:27阅读:560来源:国知局
一种多应用投屏方法、多应用投屏系统和存储介质与流程

本发明涉及一种计算机技术领域,尤其涉及一种多应用投屏方法、多应用投屏系统和存储介质。



背景技术:

目前,在现有的采集软件中,大部分都是桌面采集,并不会涉及到具体的应采集,并且其也没有远程交互的能力。比较典型的方式是投影仪,其又称投影机,这是一种可以将图像或视频投射到幕布上的设备,投影仪成像原理都大同小异,无论哪一种类型的投影仪,都是将光线分成红绿蓝三种颜色,再产生各种颜色的图像。通过棱镜将3色图像合成为一个图像,再通过镜头投影到屏幕上。



技术实现要素:

为了克服现有技术的不足,本发明的目的之一在于提供一种多应用投屏方法,其能解决直接采集应用进行投屏的技术问题。

本发明的目的之二在于提供一种多应用投屏方法,其能解决直接采集应用进行投屏的技术问题。

本发明的目的之三在于提供一种计算机可读存储介质,其能解决直接采集应用进行投屏的技术问题。

本发明的目的之一采用如下技术方案实现:

一种多应用投屏方法,包括以下步骤:

采集步骤:采集计算机处的应用界面;

编码步骤:对采集到的应用界面进行视频编码以得到投屏数据;

投屏步骤:将投屏数据发送至对应的显示屏处。

进一步地,所述采集步骤具体包括以下子步骤:

获取步骤:获取计算机处应用程序的窗口句柄;

截图步骤:对窗口句柄对应的窗口进行界面截图;

内存读取步骤:读取界面截图的内存地址;

图像读取步骤:从内存地址中把图像以预设格式读取出来。

进一步地,所述截图步骤中,通过系统api对窗口句柄对应的窗口进行界面截图;所述内存读取步骤中,通过系统api读取界面截图的内存地址;且图像读取步骤中的预设格式为rgb格式。

进一步地,所述编码步骤具体包括以下子步骤:

图像获取步骤:获取rgb格式的图像;

图像转换步骤:将rgb格式的图像转换为yuv420格式的图像;

视频编码步骤:对yuv420格式的图像进行编码以得到投屏数据。

进一步地,在图像转换步骤中:采用ffmpeg的sws工具将rgb格式的图像转换为yuv420格式的图像;在视频编码步骤中:采用ffmpeg对yuv420格式的图像进行编码以得到投屏数据,且视频编码中采用的编码格式为h264。

进一步地,在所述投屏步骤中:将投屏数据采用udp方式发送至对应的显示屏处。

本发明的目的之二采用如下技术方案实现:

一种多应用投屏系统,包括控制服务器、解码模块、屏幕、投屏模块和交换机;所述投屏模块用于获取计算机处的应用界面以及控制服务器处需要发送的目标地址,并对应用界面进行视频编码以得到投屏数据,然后将投屏数据发送至交换机处;所述交换机用于将获取到的投屏数据传输至解码模块,所述解码模块用于对接收到的投屏数据进行解码,然后将其投送到对应的屏幕上。

进一步地,所述屏幕的数量是多个。

本发明的目的之三采用如下技术方案实现:

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明目的之一中任意一项所述的一种多应用投屏方法。

相比现有技术,本发明的有益效果在于:

本发明的多应用投屏方法通过对桌面应用的采集,然后对采集到的桌面应用进行视频编码后进行投屏操作,实现更方便和更高效的应用投屏;大大提升了用户的投屏体验。

附图说明

图1为实施例一的多应用投屏方法的流程图;

图2为实施例二的多应用投屏系统的结构框图。

具体实施方式

下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。

实施例一

在一个会议里面,客户想把6个ppt投到拼接屏幕,假如你使用桌面采集的方式实现,你就只能每个ppt都开一台电脑进行桌面采集。这样子就不方便用户了;而当如果采用应用采集的时候,你一台电脑开6个ppt就行了,这样也方便用户操作;通过采集不同的应用即可完成信息的采集。这里的多个应用可以指的是不同的应用,也可以指的是同样的应用。

如图1所示,本实施例提供了一种多应用投屏方法,包括以下步骤:

s1:采集计算机处的应用界面;所述步骤s1具体包括以下步骤:

s11:获取计算机处应用程序的窗口句柄;

s12:通过系统api对窗口句柄对应的窗口进行界面截图;

s13:通过系统api读取界面截图的内存地址;api(applicationprogramminginterface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

s14:从内存地址中把图像以预设格式读取出来。且图像读取步骤中的预设格式为rgb格式,由于rgb格式是比较通用的,故而采用这样的格式更便于整体系统运行,但是除了rgb格式,还可以采用其他形式的图像。界面图像采集是通过获取应用程序的窗口句柄,通过该句柄可以获取系统所保存的应用窗口的截图,该截图可以通过系统所提供的接口所读取。最终读取的数据是rgb格式;每次截图截到的都是一帧图像。在步骤s1中主要的目的是为了获取到的对应的应用界面,然后获取对应应用界面的参数信息。

s2:对采集到的应用界面进行视频编码以得到投屏数据;所述步骤s2具体包括以下步骤:

s21:获取rgb格式的图像;

s22:采用ffmpeg的sws工具将rgb格式的图像转换为yuv420格式的图像;ffmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用lgpl或gpl许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。ffmpeg在linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括windows、macosx等。除了可以采用ffmpeg进行转换外,还可以采用其他可以进行视频编辑的工具,只要可以完成对应的格式转换即可。

s23:采用ffmpeg对yuv420格式的图像进行编码以得到投屏数据。视频编码中采用的编码格式为h264。h.264最大的优势是具有很高的数据压缩比率,在同等图像质量的条件下,h.264的压缩比是mpeg-2的2倍以上,是mpeg-4的1.5~2倍。举个例子,原始文件的大小如果为88gb,采用mpeg-2压缩标准压缩后变成3.5gb,压缩比为25∶1,而采用h.264压缩标准压缩后变为879mb,从88gb到879mb,h.264的压缩比达到惊人的102∶1。低码率(lowbitrate)对h.264的高的压缩比起到了重要的作用,和mpeg-2和mpeg-4asp等压缩技术相比,h.264压缩技术将大大节省用户的下载时间和数据流量收费。尤其值得一提的是,h.264在具有高压缩比的同时还拥有高质量流畅的图像,正因为如此,经过h.264压缩的视频数据,在网络传输过程中所需要的带宽更少,也更加经济。更加方便进行搭载和构建传输投屏系统。

s3:将投屏数据采用udp方式发送至对应的显示屏处。udp不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用udp较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。并且在传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,udp传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,udp把每个消息段放在队列中,应用程序每次从队列中读一个消息段。在本实施例中,即是直接将抓取到的投屏数据投放到对应的显示屏处,由于是应用采集,即是丢失一两个数据包对结果影响也不是特别大。

本软件应用投屏的工作总体步骤:1、采集图像;2、编码视频;3、发送到服务器所给定的地址;每次执行1,2,3这三个步骤,才算完成一次投屏的传输,不断的执行这1,2,3个步骤,就能不断的把应用投到屏幕上.

本软件是能够同时投多个桌面应用,及具备远程控制应用,能配合多种投屏工具的软件。目的是更加方便和高效的对应用进行投屏,实用性比桌面采集更强,按照以往桌面采集只是电脑桌面的内容,假如用户要同时观看ppt和word的内容做对比,那么使用桌面采集采就会有点小尴尬,而使用多应用投屏,就能更方便的进行对比,并且通过本软件实现应用远程控制,例如ppt翻页,后续可以通过添加新命令,对应用执行更多样的控制。

本实施例的技术成果,如下所示:

1)能同时投屏多个桌面应用,当前限定是还可以同时能投屏6个应用,但只要计算机性能可以,还是可以投很多个的,多个应用投屏的好处是能投屏多个应用,与一般的桌面采集相比,需要某个软件投屏的时候都需要切换,把软件放置到桌面最顶层。而应用投屏就能把这个问题解决掉。

2)能与桌面上的软件交互,当前已经实现了与桌面软件交互的一部分功能,例如ppt上下翻页等,后面可以通过配置命令。实现桌面软件更多功能的交互。

实施例二

如图2所示,本实施例提供一种多应用投屏系统,包括控制服务器、解码模块、屏幕、投屏模块和交换机;所述投屏模块用于获取计算机处的应用界面以及控制服务器处需要发送的目标地址,并对应用界面进行视频编码以得到投屏数据,然后将投屏数据发送至交换机处;这里的计算机可以是window电脑,他是最为主要的被采集的对象。还可以是其他系统的电脑等。控制服务器主要是用于控制整个系统调度的服务器。

所述交换机用于将获取到的投屏数据传输至解码模块,所述解码模块用于对接收到的投屏数据进行解码,然后将其投送到对应的屏幕上,然后以使得屏幕对他们投放的内容进行展示。这里的屏幕的数量是多个,可以在不同的屏幕处展示不同的应用。

上述各个部件交互图2可以看到,应用投屏采集电脑上的应用界面和编码,然后向控制服务器获取需要发送的目的地址,然后数据经交换机发送到解码盒,解码盒接收到数据后,把数据解码,然后投送到屏幕上。

其中投屏模块即是指的多应用投屏软件,该软件的结构包括应用界面投屏模块,信息交互模块,控制器模块组成,其中应用界面投屏模块,包含了应用界面采集,视频编码,发送数据流到服务器等功能。信息交互模块是与服务器交互的模块,用于接收命令,并且分发到各模块,最后是控制器模块是调整和管理应用界面投屏模块和信息交互模块,以及对界面点击做出响应。

信息交互方法:信息交互是指本软件与服务器进行交互,包含了服务信息接收传递到各模块和各模块向服务器发送指令的功能,该功能主要是由信息交互模块实现

模块接收消息的实现方法:

各模块向信息交互模块注册消息接收回调函数,回调函数会注册到交互模块的队列中,当交互模块接收到消息后,便会遍历回调函数队列,并把消息传入每次遍历的回调函数中,直到有一个回调函数处理了这个消息就停止遍历。

模块发送消息给服务器的方法:

每个模块在都存在一个内部的变量指针,该指针在模块初始化的时候就会被赋值指向交互模块;当模块想发送消息给服务器,例如获取发送地址等,可调用交互模块的公开发送的接口。

实施例三

实施例三公开了一种计算机可读存储介质,该存储介质用于存储程序,并且该程序被处理器执行时,实现实施例一的多应用投屏方法。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

值得注意的是,上述基于内容更新通知装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。

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