本发明专利技术公开了一种基于屏幕镜像及RTSP流媒体框架的屏幕共享方法,其步骤如下:步骤一:服务端开启自定义的RTSP服务及MediaProjection系统服务,开启端口进行监听,等待客户端连接;步骤二:客户端连入后进入RTSP应答流程;步骤三:通过镜像屏幕的方式将主屏幕信息捕获到画板对象上,获取屏幕信息;步骤四:对屏幕信息进行编码,通过RTP打包之后,使用多播形式向客户端进行发送。本发明专利技术使用MediaProjecion与VirtualDisplay结合的方式获取屏幕信息,使得APP不仅能够高效的获取屏幕信息,而且保持着跨平台性及类型安全等特性。
【技术实现步骤摘要】
本专利技术涉及一种使用MediaProjection进行屏幕数据获取及RTSP流媒体框架进行视频流发布,应用于Android平台与各平台之间的屏幕共享的方法。
技术介绍
随着科技发展,智能设备逐渐走进人们生活,Android平台的屏幕共享技术逐渐成为一种新的需求趋势。传统的屏幕共享技术主要分为两种方式:其一,将获取到的屏幕数据封装成图片格式,通过向客户端发送多张图片,使用图片组成视频进行播放。这种方式不仅占用大量带宽,导致视频帧数低,延迟高,而且效率低,可扩展性差,改变视频质量需要对每张图片进行再处理。其二,将获取到的屏幕信息封装成流数据,在服务端就编码成H.264之类的压缩之后的流数据,使用流媒体传输视频流数据,客户端接收到视频流信息后,只需要简单处理即可进行播放,且对于客户端平台要求低,Android平台、PC平台均可以实现播放,降低了带宽占用率,提高了视频质量。传统的屏幕信息获取方法由于系统层级的限制,只能使用通过JNI调用帧缓冲器的方式来获取屏幕数据,是造成屏幕共享质量差的主要原因。得益于Android5.0在屏幕显示方式上的改变,同时Android系统新特性的支持,使得开发者可以以较低的代价获取到屏幕数据,极大降低了屏幕共享成本,使得流畅高质量的屏幕共享成为可能。在流媒体框架上,传统的方式有两种:其一,将视频流信息推送到darwin流媒体服务器上,以其为载体进行视频流的发布,该方式极大的增加了开发成本和屏幕共享功能的使用成本;其二,移植其他开源的流媒体框架项目,主流是将跨平台流媒体框架live555移植到Android平台,使用JNI进行调用,将导致丧失JAVA代码原有的跨平台性与类型安全等特性。在传输方式上,常规的是单播协议,该协议主要用于点对单点传输,而当面对点到多点传输时,由于没有相应的优化,必须向每个接收者都发送一份数据副本,由此产生的大量数据副本将导致传输效率低下及可扩展性差。
技术实现思路
本专利技术针对获取屏幕信息的方式,传统的从Android帧缓冲器获取屏幕信息具有效率低下,耗费大量硬件资源且帧数不高,必须使用JNI方式调用底层硬件设备等缺点,提出了一种基于屏幕镜像及RTSP流媒体框架的屏幕共享方法,使用MediaProjecion与VirtualDisplay结合的方式获取屏幕信息,使得APP不仅能够高效的获取屏幕信息,而且保持着跨平台性及类型安全等特性。本专利技术的目的是通过下述技术方法实现的:一种基于屏幕镜像及RTSP流媒体框架的屏幕共享方法,包括如下步骤:步骤一:服务端开启自定义的RTSP服务及MediaProjection系统服务,开启端口进行监听,等待客户端连接。步骤二:客户端连入后进入RTSP应答流程,包括OPTIONS、DESCRIBE、SETUP、PLAY四个阶段。步骤三:通过镜像屏幕的方式将主屏幕信息捕获到画板对象上,获取屏幕信息。步骤四:对屏幕信息进行编码,通过RTP打包之后,使用多播形式向客户端进行发送。本专利技术步骤一中,将RTSP流媒体框架以服务的形式存在于APP中,符合Android模块化开发的规范,增强其可扩展性,有别于通过JNI调用,在上层实现的RTSP流媒体框架使APP仍然保持跨平台性及类型安全等特性。本专利技术步骤二中,在RTSP应答流程中,主要是服务端向客户端提供各种视频流参数,其中包括序列参数集(SPS)、图片参数集(PPS)、媒体名、传输协议、会话标识符等,在PLAY流程中对视频流进行封装打包传输;本专利技术步骤三中,通过创建虚拟屏幕的方式,将主屏幕内容镜像到画板上,不仅高效的获得屏幕信息,而且画板上的内容极大的方便了后续编码处理;本专利技术步骤四中,使用音视频录制类(MediaRecorder)进行编码,对其进行以下参数设置,包括视频源、视频流输出格式、视频编码格式、视频流分辨率、视频流帧数、视频编码比特率等参数;本专利技术步骤四中,RTP数据包的头部信息包括CC(CSRC标识,表示来源)、PT(标明RTP负载格式:编码算法、采样频率、承载通道)、序列号(用于为接收方提供探测数据丢失的方法)、时间戳(记载负载中第一个字节的采样时间)、同步源标识(SSRC,标识产生媒体流的信源)、提供源标识(CSRC)。本专利技术与现有技术相比具有如下优点:(1)区别于传统屏幕信息获取方案,本专利技术采用Android5.0的新特性MediaProjection对屏幕信息进行获取,得益于Android系统显示架构的改变,开发者可以更加高效的获取屏幕信息,再通过VirtualDisplay的镜像模式创建一个虚拟SURFACE,方便MediaRecorder获取视频源。(2)本专利技术采用自定义的Android上层的RTSP流媒体框架进行视频流的发布,优点在于不需要额外硬件设备,也不需要使用JNI调用,在JAVA层完成RTSP流媒体框架,方便调试,易于扩展,且保持了跨平台性及安全类型等特性。(3)本专利技术多播形式进行一点对多点的连接与发送,区别于传统单播形式,信息在每条网络链路上只需传递一次,具有效率高、可扩展性强等优点。(4)本专利技术将RTSP流媒体框架在Android平台JAVA层进行实现,弥补了传统流媒体框架的缺陷,极大的方便了后续流媒体框架在Android平台的应用。(5)本专利技术面对的Android系统,在屏幕共享中具备了点对多点的条件,为防止因多客户端出现而使得该功能可用性降低的情况出现,在屏幕共享功能中加入了多播协议,对多客户端情况进行优化,使得信息能够高效传输。(6)本专利技术针对RTSP流媒体框架,在Android上层实现RTSP流媒体框架,方便对协议进行修改,增强流媒体框架的可扩展性,降低开发难度,还保留了JAVA跨平台及安全类型等特性。(7)本专利技术针对视频流发送,传统的单播将导致服务端效率低下且缺乏可扩展性,提出了使用多播的形式进行一点到多点的连接与发送,极大的提高了发送效率。。附图说明图1为屏幕共享流程图;图2为单播协议说明图;图3为多播协议说明图。具体实施方式下面结合附图对本专利技术的技术方案作进一步的说明,但并不局限于此,凡是对本专利技术技术方案进行修改或者等同替换,而不脱离本专利技术技术方案的精神和范围,均应涵盖在本专利技术的保护范围中。本专利技术提供了一种基于屏幕镜像及RTSP流媒体框架的屏幕共享方法,流程图如图1所示,其中:实施环境包括服务端120和客户端130,服务端120是具有屏幕显示功能的搭载Android5.0系统或以上的智能设备,且具有WIFI模块(WIreless-FIdelity),能够连接WIFI并收发信息。客户端130是具有屏幕显示功能的能够播放RTSP视频流的搭载Android、IOS、Windows等平台的智能设备,具有WIFI模块或网卡,能够连接网络收发信息。具体实施步骤如下:步骤101:服务端120启动具有屏幕共享功能的App,开启RTSP服务对端口进行监听,并开启Med本文档来自技高网...
【技术保护点】
一种基于屏幕镜像及RTSP流媒体框架的屏幕共享方法,其特征在于所述方法步骤如下:步骤一:服务端开启自定义的RTSP服务及MediaProjection系统服务,开启端口进行监听,等待客户端连接;步骤二:客户端连入后进入RTSP应答流程;步骤三:通过镜像屏幕的方式将主屏幕信息捕获到画板对象上,获取屏幕信息;步骤四:对屏幕信息进行编码,通过RTP打包之后,使用多播形式向客户端进行发送。
【技术特征摘要】
1.一种基于屏幕镜像及RTSP流媒体框架的屏幕共享方法,其特征在于所述方法步骤如下:
步骤一:服务端开启自定义的RTSP服务及MediaProjection系统服务,开启端口进行监听,等待客户端连接;
步骤二:客户端连入后进入RTSP应答流程;
步骤三:通过镜像屏幕的方式将主屏幕信息捕获到画板对象上,获取屏幕信息;
步骤四:对屏幕信息进行编码,通过RTP打包之后,使用多播形式向客户端进行发送。
2.根据权利要求1所述的基于屏幕镜像及RTSP流媒体框架的屏幕共享方法,其特征在于所述步骤一中,RTSP流媒体框架以服务的形式存在于APP中。
3.根据权利要求1所述的基于屏幕镜像及RTSP流媒体框架的屏幕共享方法,其特征在于所述步骤二中,RTSP应答流程包括OPTIONS、DESCRIBE、SETUP、PLAY四个阶段。
4.根据权利要求1所述的基于屏幕镜像及RTSP流媒体框架的屏幕共享方法,其特征在于所述步骤二中,在RTSP应答流程中主要是服务端向客户端提供各种视频流参数,其中包括序列参数集、图片参数集、媒体名、传输协议、会话标识符,在PLAY流程中对视频流进行封装打包传输。
5.根据权利要求1所述的基于屏幕镜像及RTSP流媒体框架的屏幕共享方法,其特征在于所述步骤四中,使用音视频录制类进行编码,对其进行以下参数设置:视频源、视频流输出格式、视频编码格式、视频流分辨率、视频流帧数、视频编码比特率。
6.根据权利要求1所述的基于屏幕镜像及RTSP流媒体框架的屏幕共享方法,其特征在于所述步骤四中,RTP数据包的头部信息包括CC、PT、序列号、时间戳、同步源标识、提供源标识。
7.根据权利要求1所述的基于屏幕镜像及RTSP流媒体框架的屏幕共享方法,其特征在于所述服务端是具有屏幕显示功能的搭载Android5.0系统或以上的智能设备,且具有WIFI模块,能够连接WIFI并收发信息。
8.根据权利要求1所述的基于屏幕镜像及RTSP流媒体框架的屏幕共享方法,其特征在于所述客户端是具有屏幕显示功能的能够播放RTSP视频流的搭载Android、IOS、Windows平台的智能设备,具有WIFI模块或网卡,能够连接网络收发信息。
9.根据权利要求1所述的基于屏幕镜像及...
【专利技术属性】
技术研发人员:金晶,周之锐,沈毅,王艳,鄂尔多斯,
申请(专利权)人:哈尔滨工业大学,
类型:发明
国别省市:黑龙江;23
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。