一种基于rtmp的远程手机测试体验方法

文档序号:8006141阅读:244来源:国知局
一种基于rtmp的远程手机测试体验方法
【专利摘要】本发明公开了一种基于RTMP的远程手机测试体验系统的实现方法,包括以下步骤:S1、实时截取当前手机的屏幕内容,并存储在缓冲区;S2、对屏幕图片数据进行压缩转换,并编码成视频流数据;S3、传输视频流数据到上传服务器上,流媒体上传模块通过RTMP流媒体协议上传到RTMP流媒体服务器;S4、流媒体服务器将视频流发布到网页客户端,客户端通过浏览器登录到流媒体服务器上发布媒体流的网页客户端地址,进行远程手机浏览;5、用户通过自定协议将控制动作信息传送到上传服务器上的控制信息解析模块,并在用户所申请的手机终端响应操作请求,并通过所述步骤S4反馈到网页客户端。具有系统使用的协议简单、提高了编码效率等优点。
【专利说明】一种基于RTMP的远程手机测试体验方法
【技术领域】
[0001]本发明涉及一种图像视频编码和流媒体通信技术,特别涉及一种基于RTMP的远程手机测试体验方法。
【背景技术】
[0002]移动互联网已经全面融入我们的日常生活中,智能手机技术快速发展,一个智能终端能够满足日常生活的基本需要,如浏览微博,网络社交,影音娱乐等功能,逐渐成为了大众生活中的一种必需品。智能终端的核心在于应用,出色的手机应用需要详细的设计和不断地完善和升级。针对android手机,由于系统的开源性,承载系统的硬件架构各式各样,各大厂商的设备都有其独特性,要完成一个出色的android手机应用需要经过各种各样机型的手机测试才能保证其通用性和兼容性。但对于小团队或者个人开发者,没有足够的资源获得各种机型的手机用于开发调试,往往因为条件的限制导致小型技术团队的创新非常困难,也从一定程度上打击了他们的创新开发的积极性。另一方面,当前的流媒体技术主要应用于PC网络上,依靠个人电脑CPU比较强大的处理功能,技术已经非常成熟。但如今随着移动互联网的迅猛发展,智能终端功能和处理能力越来越强,流媒体技术在移动终端上也逐步得到发展。由于移动终端的处理能力不如PC,在移动终端之间的多媒体数据传输有了更高的要求,将在PC上成熟的音视频处理工具移植到android系统将为手机多媒体数据处理提高效率。因此本发明的目的就是在于给开发者提供一个调试的平台,给予用户测试和体验,不断修改其设计的手机应用。设计这样的系统绝对是有利于移动互联网应用的开发,将会不断推动技术创新,鼓励技术工作者和在校大学生自主创新,推动互联网产业的蓬勃发展,最终造福社会。

【发明内容】

[0003]本发明的目的在于克服现有技术的缺点与不足,提供一种基于RTMP的远程手机测试体验方法,该方法使用户可以通过系统提供的各种机型为测试体验提供方便快捷、低成本的平台,大大降低了的手机应用开发者的开发成本。
[0004]本发明的目的通过下述技术方案实现:一种基于RTMP的远程手机测试体验系统的实现方法,包括以下步骤:
[0005]S1、实时截取当前手机的屏幕内容(屏幕快照),以图片的方式存储在缓冲区;
[0006]S2、对采集得到的屏幕图片数据利用第三方音视频编码库FFmpeg进行压缩转换,然后编码成H.264格式的视频流数据;
[0007]S3、通过USB传输手机编码完成的视频流数据到上传服务器上,流媒体上传模块通过RTMP流媒体协议上传到RTMP流媒体服务器;
[0008]S4、流媒体服务器将视频流发布到网页客户端,客户端通过浏览器登录到流媒体服务器上发布媒体流的网页客户端地址,利用系统的Flash插件解码播放视频流数据,实现远程手机浏览;[0009]S5、用户通过网页客户端实现对手机的控制,通过自定协议将控制动作信息传送到上传服务器上的控制信息解析模块,并在用户所申请的手机终端响应操作请求,并通过上述步骤将效果反馈到网页客户端。
[0010]所述步骤SI包括如下步骤:
[0011](1-1)根据手机屏幕的分辨率大小(通常为1280*720),为了提高手机的编码效率和降低对手机资源的消耗,采取降低分辨率对手机屏幕进行截屏(举例为640*480),只需要调用手机系统封装好的截屏的API,设置好分辨率参数即可;
[0012](1-2)截取的手机屏幕数据为RGB数据,根据分辨率开辟固定的手机内存空间,存储每次截屏得到的图片数据。
[0013]所述步骤S2包括如下步骤:
[0014](2-1)获取数据缓冲区中的屏幕图片RGB数据,将其转换为YUV420数据,压缩数据量,以适应视频压缩编码和实时传输的需求;
[0015](2-2)使用第三方音视频编解码库FFMPEG,将其移植到手机系统上,将每一帧YUV420数据编码为一帧H.264视频流数据。
[0016]所述步骤S3包括如下步骤:
[0017](3-1)上传服务器连接着各式各样的手机,通过USB通信实现与手机的信息交互;
[0018](3-2)上传服务器中的流媒体上传模块使用第三方音视频编解码库,将步骤S2编码得到的H.264视频流数据封装成FLV格式;
[0019](3-3)根据RTMP协议的要求,将封装好的FLV数据通过RTMP协议上传到流媒体服务器。
[0020]所述步骤S4包括如下步骤:
[0021](4-1)用户通过网页浏览器登录网页客户端,连接到流媒体服务器发布的媒体流地址,获取远程主机屏幕视频流;
[0022](4-2)网页客户端调用了用户浏览器的Flash插件实现解码播放,无需安装特定的客户端软件,只需要使用网页浏览器登录到网页客户端地址,即可浏览到主机屏幕内容的分享。
[0023]所述步骤S5包括如下步骤:
[0024](5-1)用户通过浏览器登录到流媒体服务器上发布媒体流的网页客户端地址,网页客户端捕获用户端的鼠标或键盘动作;用户是通过网页客户端实现对主机屏幕的控制的,网页客户端使用ActionScript (—种运用在flash上的脚本语言)的接口捕获针对网页客户端的鼠标动作,并将鼠标操作时在网页播放器中的相对坐标记录下来,通过自定协议将其坐标和动作信息传送到连接手机的上传服务器的控制信息解析模块;
[0025](5-2)控制信息解析模块将用户的控制动作解析出来,然后在用户所申请的手机终端通过系统的API实现对应的操作。
[0026]所述步骤SI和步骤S2,分属两个异步线程,这两个异步线程并行工作,提高程序效率;采取的处理策略为截取一张图片立即编码一帧视频然后立刻上传到流媒体服务器;具体为:所述SI为异步线程1,步骤S2为异步线程2,所述异步线程I和异步线程2并行工作,提高程序效率;所述并行工作指截取一张图片立即编码一帧视频,并实时上传到流媒体服务器。[0027]本发明通过移植第三方音视频编解码库到android手机,构建H.264视频编码模块将手机的屏幕内容进行视频编码,实时将其封装成FLV格式,通过USB通信将数据传输到上传服务器上,然后通过RTMP协议上传至流媒体服务器,并使用RTMP协议在流媒体服务器上将视频流下发到各个用户,使得用户可以通过浏览器登陆客户端,调用Flash插件进行解码播放,实现远程浏览手机的操作。通过捕获用户对网页客户端的鼠标动作,通过自定义的基于TCP的交互协议将控制信息传输到上传服务器解析,在手机上响应控制操作,并通过上述的屏幕内容分享方法将操作效果反馈到用户端。
[0028]本发明的目的:本发明针对android手机系统的开源性,承载系统的硬件架构多样性,各大厂商的设备的独特性,要完成一个出色的android手机应用需要经过各种各样机型的手机测试才能保证其通用性和兼容性。但对于小团队或者个人开发者,没有足够的资源获得各种机型的手机用于开发调试,往往因为资金不足,限制导致小型技术团队的创新,也从一定程度上打击了他们的创新开发的积极性。
[0029]本发明的目的就是在于给开发者提供一个调试的平台,在网络上提供各式各样机型的手机给予用户测试和体验自己设计开发是手机应用,不断修改其设计的手机应用。本发明通过将手机当前的屏幕快照得到的屏幕内容(RGB图片数据)在手机上进行视频编码(H.264),通过USB通信将数据从手机传输到PC上;并在PC上通过RTMP协议以视频流的形式上传至开源的流媒体服务器,并在流媒体服务器上将编码成视频流的屏幕内容在互联网上下发到各个用户,使得用户可以直接通过网页浏览器登陆网页客户端,使得用户可以远程实时浏览手机的操作效果,即是其屏幕内容。通过网页客户端捕获本地用户对网页客户端的鼠标动作,并且使用自定义的基于TCP的远程交互控制协议,将控制信息传输到远程主机。远程手机解析控制信息,响应相应的控制操作,并通过上述所说的屏幕内容分享方法将操作效果反馈到用户端,实现了远程交互控制的效果,构建了一个远程手机测试体验系统,用户可以通过系统提供的各种机型为自己的测试体验提供了方便快捷低成本的平台。这样就大大降低了的手机应用开发者的开发成本,将会不断推动技术创新,鼓励技术工作者和在校大学生自主创新,推动互联网产业的蓬勃发展,最终造福社会。
[0030]本发明相对于现有技术具有如下的优点及效果:
[0031]1、本发明设计的系统给广大的android手机应用开发者提供了一个远程手机测试系统,开放各个型号手机的系统,给予开发者使用,这在android开发行业里是一个突破性的进展。利用视频压缩编码技术和流媒体传输技术,将屏幕内容转化为一个重要的交流信息,同时通过自定义的控制传输协议,将android系统提供的模拟控制接口创新应用,给用户提供了一个远程手机控制系统。系统使用的协议简单,无须经过复杂的校验控制,使得整个系统的达到很高的轻便性。
[0032]2、在智能终端中实现截取手机屏幕内容,通过使用第三方音视频编解码库实现图像压缩编码,然后通过第三方音视频编解码库实现RTMP协议的封装上传到流媒体服务器。整个流程都是充分考虑通用性和兼容性,使得应用的安装实现环境方便;同时充分地利用的当前智能终端的处理能力,极大地提高了编码效率。
[0033]3、使用RTMP流媒体协议进行视频流信息的传输,只需要调用系统中的Flash插件实现解码播放,就能浏览到分享的屏幕内容,方便高效,实施简单。【专利附图】

【附图说明】
[0034]图1是基于RTMP的远程手机测试体验系统的总体架构图。
[0035]图2是手机端程序架构图。
[0036]图3是网页客户端与远程手机交互示意图。
[0037]图4是系统实施流程图。
【具体实施方式】
[0038]下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
[0039]实施例
[0040]如图1所示,是基于RTMP的远程手机测试体验系统的总体架构图,分为android手机模块,服务器PC媒体流上传模块,流媒体服务器模块和网页客户端模块。
[0041 ] 一种基于RTMP的远程手机测试体验系统在设计上主要分为5个模块:android手机截屏编码模块,如图2所示,实现手机屏幕采集压缩编码;上传服务器的媒体流上传模块,实现RTMP打包上传到流媒体服务器;上传服务器的控制信息解析模块,实现解析远程网页客户端的用户操作;网页客户端模块,如图3所示,实现手机屏幕视频流的解码播放,并捕获用户的控制动作,将其发送端上传服务器的控制信息处理模块;android手机受控模块,如图2所示,根据模拟用户操作在手机上实现。
[0042](I) Android手机截屏编码模块:
[0043]实时采集当前手机的屏幕内容,以图片的方式存储在缓冲区;根据手机屏幕的分辨率大小,通常为(1280*720),为了提高手机的编码效率和降低对手机资源的消耗,采取降低分辨率对手机屏幕进行截屏(举例为640*480)。只需要调用android系统封装好的截屏的函数接口(简称:API),设置好分辨率参数即可;截取的手机屏幕数据为RGB数据,根据分辨率开辟固定的手机内存空间,存储每次截屏得到的图片数据。
[0044]我们将第三方音视频编解码库FFmpeg编译到android系统上,利用其强大完善的音视频编解码能力,一体化完整地在手机上完成视频压缩编码,大大减少了开发难度,提高了开发效率。对采集得到的屏幕图片数据进行压缩转换,然后编码成H.264格式的视频流数据;获取数据缓冲区中的屏幕图片RGB数据,将其转换为YUV420数据,压缩数据量,以适应视频压缩编码和实时传输的需求。
[0045]截屏和编码压缩这两个异步线程并行工作,提高程序效率。采取的处理策略为截取一张图片立即编码一帧视频然后立刻上传到流媒体服务器。
[0046]( 2 )媒体流上传模块:
[0047]上传服务器连接着各式各样的手机,通过USB通信实现与手机的信息交互。上传服务器中的媒体流上传模块使用第三方音视频编解码库,将手机编码得到的H.264视频流数据封装成FLV格式,通过RTMP协议上传到流媒体服务器并发布到网络上。
[0048](3)客户端模块:
[0049]用户通过网页浏览器登录网页客户端,连接到流媒体服务器发布的媒体流地址,获取远程主机屏幕视频流。网页客户端调用了用户浏览器的Flash插件实现解码播放,无需安装特定的客户端软件,只需要使用网页浏览器登录到网页客户端地址,即可浏览到主机屏幕内容的分享。
[0050]网页客户端使用Action Script的接口捕获针对网页客户端的鼠标动作,并将鼠标操作时在网页播放器中的相对坐标记录下来,通过自定协议将其坐标和动作信息传送到连接手机的上传服务器的控制信息解析模块。
[0051](4)控制信息解析模块:
[0052]控制信息解析模块将网页客户端发送过来的用户的控制动作信息解析出来,然后在用户所申请的手机终端上模拟相应的操作。
[0053](5) Android手机受控模块:
[0054]远程手机终端解析接收到的上传服务器解析后的控制信息,进行相应的控制操作,呈现在手机屏幕上;用户申请的手机终端接收到用户端的控制信息(坐标和点击动作)后,通过android系统的API实现对应的操作,将响应的操作效果呈现在手机屏幕显示上,用户就可以实现远程交互控制的效果。
[0055]总体来讲,对于整个系统的实现,所述步骤手机流媒体传输部分(1、2)和远程手机控制处理部分(4、5),分属两个进程,各自负责实现传输和控制。并行进程使得程序效率较高,彼此间不会发生太大的影响。
[0056]如图4所示,本发明的具体实施流程如下:
[0057](I)用户接入申请:
[0058]用户登陆体验测试平台后,系统将会对现有接入的所有测试手机终端进行使用情况查询,查询是否有人正在使用该终端,将情况反馈到申请接入的用户,用户将根据系统的情况选择相应的测试终端。系统在接受用户的申请后,将会在数据库中记录使用的用户和手机,还有使用的时间等,做好绑定登记。
[0059](2)手机流媒体传输:
[0060]系统接受了用户的接入申请使用手机终端后,系统将会启动手机上的流媒体传输模块,将手机的屏幕内容压缩编码成视频流,然后依照流媒体传输协议进行封装上传,发布到流媒体服务器上。根据用户的申请,指定传输的网络路径,实时地将手机的屏幕内容传输到网页客户端。
[0061](3)网页客户端浏览操作:
[0062]网页客户端给用户呈现一个远程手机的界面,并能在其上面进行操作控制实体手机。客户端包括一个播放器,用于播放服务器传输过来的手机屏幕视频流。同时在播放器之上覆盖一个用于捕获用户控制动作的模块,并对其按照制订的控制协议进行封装,传输到服务器上控制信息解析模块,在对应的手机终端实现响应。
[0063](4)远程手机控制:
[0064]手机接收到远程用户的控制信息,将根据控制协议进行解析,然后调用android系统的接口,模拟控制事件,然后在系统上呈现。模块一直监听用户的控制信息,并及时作出响应。
[0065]上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
【权利要求】
1.一种基于RTMP的远程手机测试体验系统的实现方法,其特征在于,包括以下步骤: 51、实时截取当前手机的屏幕内容,并以图片的格式存储在缓冲区; 52、对采集得到的屏幕图片数据利用第三方音视频编码库进行压缩转换,并编码成视频流数据; 53、通过USB传输手机编码完成的视频流数据到上传服务器上,流媒体上传模块通过RTMP流媒体协议上传到RTMP流媒体服务器; 54、流媒体服务器将视频流发布到网页客户端,客户端通过浏览器登录到流媒体服务器上发布媒体流的网页客户端地址,利用系统的Flash插件解码播放视频流数据,进行远程手机浏览; 55、用户通过网页客户端实现对手机的控制,通过自定协议将控制动作信息传送到上传服务器上的控制信息解析模块,并在用户所申请的手机终端响应操作请求,并通过所述步骤S4反馈到网页客户端。
2.如权利要求1所述的基于RTMP的远程手机测试体验系统的实现方法,其特征在于,所述步骤SI包括 以下步骤: (1-1)根据手机屏幕的分辨率大小,采取降低分辨率对手机屏幕进行截屏,调用系统封装好的截屏函数接口,设置好分辨率参数; (1-2)截取的手机屏幕数据为RGB数据,根据分辨率开辟固定的手机内存空间,存储每次截屏得到的图片数据。
3.如权利要求1所述的基于RTMP的远程手机测试体验系统的实现方法,其特征在于,所述步骤S2包括: (2-1)获取数据缓冲区中的屏幕图片,并转换为YUV420数据格式; (2-2)使用第三方音视频编解码库,将转换为YUV420数据格式的屏幕图片移植到手机系统上,将每一帧YUV420数据格式的数据编码为一帧视频流数据。
4.如权利要求1所述的基于RTMP的远程手机测试体验系统的实现方法,其特征在于,所述步骤S3包括: (3-1)上传服务器连接着各式各样的手机,通过USB通信实现与手机的信息交互;(3-2)上传服务器中的流媒体上传模块使用第三方音视频编解码库,将步骤S2编码得到的视频流数据封装成FLV格式; (3-3)根据RTMP协议的要求,将封装好的FLV数据通过RTMP协议上传到流媒体服务器。
5.如权利要求1所述的基于RTMP的远程手机测试体验系统的实现方法,其特征在于,所述步骤S4包括: (4-1)用户通过网页浏览器登录网页客户端,连接到流媒体服务器发布的媒体流地址,获取远程主机屏幕视频流; (4-2)网页客户端调用了用户浏览器的Flash插件实现解码播放,无需安装特定的客户端软件,只需要使用网页浏览器登录到网页客户端地址,即可浏览到主机屏幕内容的分享。
6.如权利要求1所述的基于RTMP的远程手机测试体验系统的实现方法,其特征在于,所述步骤S5包括:(5-1)用户通过浏览器登录到流媒体服务器上发布媒体流的网页客户端地址,网页客户端捕获用户端的鼠标或键盘动作;用户通过网页客户端控制主机屏幕,网页客户端使用ActionScript的接口捕获针对网页客户端的鼠标动作,并将鼠标操作时在网页播放器中的相对坐标记录下来,通过自定协议将其坐标和动作信息传送到连接手机的上传服务器的控制信息解析模块; (5-2)控制信息解析模块将用户的控制动作解析出来,然后在用户所申请的手机终端通过手机系统的API实现对应的操作。
7.如权利要求1所述的基于RTMP的远程手机测试体验系统的实现方法,其特征在于,所述SI为异步线程1,步骤S2为异步线程2,所述异步线程I和异步线程2并行工作;所述并行工作指截取一张图片 立即编码一帧视频,并实时上传到流媒体服务器。
【文档编号】H04M1/24GK103458087SQ201310390380
【公开日】2013年12月18日 申请日期:2013年8月30日 优先权日:2013年8月30日
【发明者】吴宗泽, 何文涛, 华耀波, 李其力 申请人:华南理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1