一种云手机的远程摄像头应用方法、系统及介质与流程

文档序号:22886958发布日期:2020-11-10 18:04阅读:1047来源:国知局
一种云手机的远程摄像头应用方法、系统及介质与流程

本发明涉及云手机,具体涉及一种云手机的远程摄像头应用方法、系统及介质。



背景技术:

云手机就是指一种搭建在云服务器上的虚拟手机,云手机平台可以让使用者通过电脑/手机操作端来操作在云服务器上一定数量的虚拟云手机,这些虚拟云手机的功能与真正的手机基本相同,一般不包含基带模块没有电话卡功能。由于云手机中app也需要使用摄像头,但是由于云手机本身不包含物理摄像头,因此就需要使用物理手机上的远程摄像头。

1、目前已有的云手机方案:例如公开号为cn110430441a的中国专利文献公开了一种云手机的远程摄像头使用方法:通过本地手机的摄像头进行视频采集,得到视频流数据;对视频流数据进行编码处理,得到编码后的视频流数据;将编码后的视频流数据通过视频流传输协议传输至云手机中。

此方案的技术实现,主要体现在如何从物理手机获取视频流和将视频流传送至云手机,视频流传送至云手机后,到云手机中如何处理,该方案没有作具体说明。

2、目前已实现的物理手机处理视频流的方案采用的是由芯片供应商提供的基于硬件芯片的处理方案:如图1。在传感器中提供最原始的摄像头数据,摄像数据经过图形信号处理器(isp)处理,图形信号处理可以分为ispif(ispinterface接口模块,主要用来接收从sensor发送过来的数据)和vfe(videofrontend,视频前端)用来对数据校正,优化等处理,并将处理后的数据传送到摄像头后处理模块(camerapostprocessing,简称cpp),进一步对图形处理;摄像头后处理模块包含了gpgpu芯片,从功能上分,大抵可以分为四大块:移动显示处理器(mobile-display-process,简称mdp),串联式jpeg编码器(inlinejpegencode),视频预处理引擎(videopre-processingengine,简称vpe)和视频编码器(videoencode)。移动显示处理器是一个专门处理显示数据的处理器,例如可以作分辨率扩大(upscale)的作用,主要负责将数据处理后传送给液晶模块显示,串联式jpeg编码器是针对拍照功能的芯片,用来将摄像头数据编码成jpeg。视频预处理引擎和视频编码器是为了录像设计的芯片,编码成特定的录像格式。实际上,sensor端获取数据,触发图形信号处理器中断,经由摄像头后处理模块处理后,便能将数据分发到预览,拍照,录像或者显示流程。

这种方案如果运用到云手机上的缺陷在于,需要在云服务器主板上集成大量的图形信号处理器(isp)硬件芯片,成本高,不利于扩展。

3、目前有些云手机的远程摄像头应用时采用变通的方法。以扫码功能,现有方法是在物理手机上完成扫码,发送扫码后的图片到云手机上对应的应用。

这种方案并没有在云手机上实现摄像头的功能。所以没有视频通话、直播等功能。在用户使用上,不具有通用性,不能完成在各种应用界面打开摄像头,需要调用摄像头的部分都无法使用。



技术实现要素:

本发明要解决的技术问题:针对现有技术的上述问题,提供一种云手机的远程摄像头应用方法、系统及介质,本发明可在云手机上实现包括基于摄像头的各类应用场景,以及各种应用对于摄像头操作的功能,用户在云手机上操作摄像头不会和物理手机上有差异,真正作到在云手机上使用摄像头;本发明的云手机摄像头的实现由软件来完成,对硬件芯片商无依赖,也不受硬件设计方案的限制,每台云手机独立出来都可以使用摄像头。

为了解决上述技术问题,本发明采用的技术方案为:

一种云手机的远程摄像头应用方法,包括云手机中执行的下述步骤:

1)摄像头服务监测用户发出的摄像头操作请求,若监测到摄像头操作请求则将摄像头操作请求转发给硬件抽象层;

2)硬件抽象层标识应用场景类型,并根据应用场景类型发送打开摄像头指令给云音视频服务;

3)云音视频服务通过网络发送打开摄像头指令给物理手机中的指定应用程序,等待物理手机中的指定应用程序通过网络返回来自物理摄像头的回调数据,在通过网络收到返回的回调数据后跳转执行下一步;

4)硬件抽象层根据应用场景类型处理回调数据。

可选地,步骤1)中标识应用场景类型时标识的应用场景类型为预览场景,所述根据调用者是否需要数据分析进一步判断划分为预览显示场景和预览回调场景,所述预览显示场景为仅仅需要显示画面,不需要回调数据;预览回调场景为调用摄像头进行数据回调分析并显示摄像头画面的场景;步骤2)中硬件抽象层根据应用场景类型发送打开摄像头指令给云音视频服务时,打开摄像头指令为打开摄像头获取视频指令;步骤3)中收到返回的回调数据为视频流编码数据;步骤4)中根据应用场景类型处理回调数据具体是指将视频流编码数据进行解码和转换预览回调到对应的应用程序进行再处理,并显示输出。

可选地,所述视频流编码数据为h264视频流编码数据,所述将视频流编码数据进行解码和转换具体是指将h264视频流编码数据解码为yuv编码数据,然后将yuv编码数据预览回调到对应的应用程序进行再处理,所述显示输出是指将yuv编码数据转换为rgba8888数据后显示输出。

可选地,步骤1)中标识应用场景类型时标识的应用场景类型为直播场景,所述直播场景为分发摄像头数据并显示的场景;步骤2)中硬件抽象层根据应用场景类型发送打开摄像头指令给云音视频服务时,打开摄像头指令为打开摄像头获取视频指令;步骤3)中收到返回的回调数据为音视频流编码数据;步骤4)中根据应用场景类型处理回调数据具体是指将音视频流编码数据进行解码和转换分别用于显示输出、数据分发。

可选地,所述音视频流编码数据为h264视频流编码数据和opus音频流编码数据,所述将音视频流编码数据进行解码和转换分别用于显示输出、数据分化具体是指将h264视频流编码数据解码后首先转换为yuv编码数据,将opus音频流编码数据解码为pcm编码数据,然后将yuv编码数据、pcm编码数据同步处理后分发到一个或多个指定的直播应用程序进行再处理,并同时将yuv编码数据转换为rgba8888数据后显示输出。

可选地,步骤1)中标识应用场景类型时标识的应用场景类型为拍照场景,所述拍照场景为通过摄像头采集图像的场景;步骤2)中硬件抽象层根据应用场景类型发送打开摄像头指令给云音视频服务时,打开摄像头指令为打开摄像头获取图像指令;步骤3)中收到返回的回调数据为图像编码数据;步骤4)中根据应用场景类型处理回调数据具体是指将图像编码数据进行存储并触发回调事件。

可选地,步骤1)中标识应用场景类型时标识的应用场景类型为录像场景,所述录像场景为采集摄像头画面存储到本地并显示的场景;步骤2)中硬件抽象层根据应用场景类型发送打开摄像头指令给云音视频服务时,打开摄像头指令为打开摄像头获取视频指令;步骤3)中收到返回的回调数据为音视频流编码数据;步骤4)中根据应用场景类型处理回调数据具体是指将音视频流编码数据进行解码和转换分别用于显示输出、本地存储。

可选地,所述音视频流编码数据为h264视频流编码数据和opus音频流编码数据,所述将音视频流编码数据进行解码和转换分别用于显示输出、本地存储具体是指将h264视频流编码数据解码后首先转换为yuv编码数据,将opus音频流编码数据解码为pcm编码数据,然后将yuv编码数据、pcm编码数据同步后封装成指定的文件格式后存储到本地,并同时将yuv编码数据转换为rgba8888数据后显示输出。

此外,本发明还提供一种云手机的远程摄像头应用系统,包括计算机设备,该计算机设备中包含云手机,且该云手机被编程或配置以执行所述云手机的远程摄像头应用方法的步骤,或者该云手机的存储器中存储有被编程或配置以执行所述云手机的远程摄像头应用方法的计算机程序。

此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述云手机的远程摄像头应用方法的计算机程序。

和现有技术相比,本发明具有下述优点:

1、本发明可在云手机上实现包括基于摄像头的各类应用场景,以及各种应用对于摄像头操作的功能,用户在云手机上操作摄像头不会和物理手机上有差异,真正作到在云手机上使用摄像头。

2、本发明的云手机摄像头的实现由软件来完成,对硬件芯片商无依赖,也不受硬件设计方案的限制,每台云手机独立出来都可以使用摄像头。

附图说明

图1为现有技术云手机的摄像头硬件方案的原理图。

图2为本发明实施例方法的基本原理示意图。

图3为本发明实施例中的系统拓扑结构图。

图4为本发明实施例中云手机、物理手机之间的交互原理示意图。

图5为本发明实施例中摄像头从启动到关闭的完整流程示意图。

具体实施方式

如图2、3所示,本实施例云手机的远程摄像头应用方法包括云手机中执行的下述步骤:

1)摄像头服务监测用户发出的摄像头操作请求,若监测到摄像头操作请求则将摄像头操作请求转发给硬件抽象层(本实施例中命名为摩智云hal);

2)硬件抽象层标识应用场景类型,并根据应用场景类型发送打开摄像头指令给云音视频服务(本实施例中命名为摩智云音视频service);

3)云音视频服务通过网络发送打开摄像头指令给物理手机中的指定应用程序(本实施例中命名为摩智云app),等待物理手机中的指定应用程序通过网络返回来自物理摄像头的回调数据,在通过网络收到返回的回调数据后跳转执行下一步;

4)硬件抽象层根据应用场景类型处理回调数据。

参见图3,本实施例中通过网络收到返回的回调数据后,使得回调数据直接进入硬件抽象层,与框架和应用程序交互,整个过程由软件来完成,不依赖于硬件解决方案。

本实施例中,步骤1)之前还包括云手机开机初始化摄像头的下述步骤:

s1)云手机的摄像头服务启动;

s2)硬件抽象层标识应用场景类型,并通过云音视频服务将摄像头咨询信息发送给物理手机中的指定应用程序,并等待物理手机中的指定应用程序返回的物理手机的摄像头能力数据(capabilities);

s3)收到物理手机中的指定应用程序返回的物理手机的摄像头能力数据;

s4)将物理手机的摄像头能力数据赋予云手机的摄像头服务。

如图3和图4所示,用户直接点击摄像头或者通过其他第三方应用打开摄像头后,硬件抽象层需要识别并标识应用场景类型,然后根据应用场景类型发送打开摄像头的指令给到云音视频服务,且该指令中包含所需获取的回调数据的类型。本实施例中,针对不同的应用场景类型(预览显示场景、预览回调场景、直播场景、拍照场景、录像场景等),将所有应用场景类型所需获取的回调数据的类型分为两种:音频流编码数据/视频流编码数据、图像编码数据,其原因是图像编码数据可获得更高清晰度的照片,用于提高拍照场景的照片质量;其余场景下若需要质量要求不高的图像,则可以从视频流编码数据中转换得到,从而简化了数据处理。音频流编码数据既可以附带在视频流编码数据一起,在某些场景下由于不需要音频流编码数据也可以不携带音频流编码数据以减少流量消耗。

云音视频服务收到指令后,透传命令到指定应用程序,指定应用程序判断当前的应用场景类型来生成对应的回调数据的类型,然后通过云音视频服务回传数据给硬件抽象层;

硬件抽象层通过云音视频服务收到数据后,根据当前的场景类型编码,如果是预览回调和录像和直播则编码为yuv,如果是预览显示则编码为rgba8888,如果是拍照则不需要编码并回调通知notify(用于触发照片的通知,例如声音、动画等)和数据给框架。

参见图4,本实施例中步骤4)之后还包括关闭摄像头的步骤:如果云手机监测到用户点击关闭,或者第三方应用发送指令关闭摄像头后,硬件抽象层发送关闭摄像头命令给到云音视频服务,云音视频服务透传给物理手机中的指定应用程序,结束物理手机的摄像头调用,然后硬件抽象层结束当前的状态,回调结束信息给框架,结束摄像头调用流程。

考虑到网络状态的不确定性,本实施例方案另外提供了异常处理情况:步骤3)中等待物理手机中的指定应用程序通过网络返回来自物理摄像头的回调数据时还包括超时判断的下述步骤:

a1)在云音视频服务通过网络发送打开摄像头指令给物理手机中的指定应用程序后立即启动数据超时检测,若收到回调数据的时间不超过预设阈值,则判定网络正常;否则启动回调数据的重传请求,执行下一步;

a2)判断在预设时间内是否收到重传的回调数据,若在预设时间(例如1分钟)内收到重传的回调数据则判定网络波动;否则判定为网络异常;若发生网络波动的情况,采用补帧方式,回调上一帧的回调数据;若发生网络异常的情况,则报错退出,例如本实施例中具体的处理方法为:回调指定的和用户交互图片,告知用户网络异常,数据断连,由用户自主处理重新连接或者退出。

需要说明的是,本实施例云手机的远程摄像头应用方法可以适用于不同的应用场景类型,其区别仅仅在于按照获取回调数据,以及根据应用场景类型处理回调数据。下文将针对不同的应用场景类型,对本实施例进行进一步的详细说明。

一、预览显示场景。

步骤1)中标识应用场景类型时标识的应用场景类型可为预览显示场景,所述预览显示场景为预览显示摄像头画面的场景;

预览显示场景下:步骤2)中硬件抽象层根据应用场景类型发送打开摄像头指令给云音视频服务时,打开摄像头指令为打开摄像头获取视频指令;步骤3)中收到返回的回调数据为视频流编码数据;步骤4)中根据应用场景类型处理回调数据具体是指将视频流编码数据进行解码和转换后显示输出。

作为一种可选的实施方式,本实施例中预览显示场景下,视频流编码数据为h264视频流编码数据,h264视频流编码数据可以从物理编码器的媒体编码器中直接获取、不需要对视频流进行编码,能够减少视频流编码数据的延迟,减少过程中的数据处理量。将视频流编码数据进行解码和转换后显示输出具体是指将h264视频流编码数据解码后首先转换为yuv编码数据,然后将yuv编码数据转换为rgba8888数据后显示输出。通过上述转换,通过yuv编码数据可实现对解码数据的通用解码,实现和其他场景下解码数据的复用;转换为rgba8888数据可方便地利用云服务器中的显卡输出。而且,上述解码和转换方式不依赖于特定的硬件平台,具有通用性好的优点。

二、预览回调场景。

步骤1)中标识应用场景类型时标识的应用场景类型可为预览回调场景,所述预览回调场景为调用摄像头进行数据回调分析并显示摄像头画面的场景;

预览回调场景下:步骤2)中硬件抽象层根据应用场景类型发送打开摄像头指令给云音视频服务时,打开摄像头指令为打开摄像头获取视频指令;步骤3)中收到返回的回调数据为视频流编码数据;步骤4)中根据应用场景类型处理回调数据具体是指将视频流编码数据进行解码和转换预览回调到对应的应用程序进行再处理,并显示输出。

作为一种可选的实施方式,本实施例中预览回调场景下,视频流编码数据为h264视频流编码数据,所述将视频流编码数据进行解码和转换具体是指将h264视频流编码数据解码后首先转换为yuv编码数据,然后将yuv编码数据预览回调到对应的应用程序进行再处理,所述显示输出是指将yuv编码数据转换为rgba8888数据后显示输出。

三、直播场景。

步骤1)中标识应用场景类型时标识的应用场景类型可为直播场景,所述直播场景为分发摄像头数据并显示的场景;

直播场景下:步骤2)中硬件抽象层根据应用场景类型发送打开摄像头指令给云音视频服务时,打开摄像头指令为打开摄像头获取视频指令;步骤3)中收到返回的回调数据为音视频流编码数据;步骤4)中根据应用场景类型处理回调数据具体是指将音视频流编码数据进行解码和转换分别用于显示输出、数据分发。

作为一种可选的实施方式,本实施例中直播场景下,音视频流编码数据为h264视频流编码数据和opus音频流编码数据,将音视频流编码数据进行解码和转换分别用于显示输出、数据分化具体是指将h264视频流编码数据解码后首先转换为yuv编码数据,将opus音频流编码数据解码为pcm编码数据,然后将yuv编码数据、pcm编码数据同步处理后分发到一个或多个指定的直播应用程序进行再处理,并同时将yuv编码数据转换为rgba8888数据后显示输出。

四、拍照场景。

步骤1)中标识应用场景类型时标识的应用场景类型可为拍照场景,所述拍照场景为通过摄像头采集图像的场景;

拍照场景下:步骤2)中硬件抽象层根据应用场景类型发送打开摄像头指令给云音视频服务时,打开摄像头指令为打开摄像头获取图像指令;步骤3)中收到返回的回调数据为图像编码数据;步骤4)中根据应用场景类型处理回调数据具体是指将图像编码数据进行存储并触发回调事件。

作为一种可选的实施方式,本实施例中拍照场景下图像编码数据具体采用jpeg编码,此外也可以根据需要采用其他指定格式的图像编码数据格式。

五、录像场景

步骤1)中标识应用场景类型时标识的应用场景类型可为录像场景,所述录像场景为采集摄像头画面存储到本地并显示的场景。

录像场景下:步骤2)中硬件抽象层根据应用场景类型发送打开摄像头指令给云音视频服务时,打开摄像头指令为打开摄像头获取视频指令;步骤3)中收到返回的回调数据为音视频流编码数据;步骤4)中根据应用场景类型处理回调数据具体是指将音视频流编码数据进行解码和转换分别用于显示输出、本地存储。

录像场景下,视频流编码数据为h264视频流编码数据和opus音频流编码数据,将音视频流编码数据进行解码和转换分别用于显示输出、本地存储具体是指将h264视频流编码数据解码后首先转换为yuv编码数据,将opus音频流编码数据解码为pcm编码数据,然后将yuv编码数据、pcm编码数据同步后封装成指定的文件格式后存储到本地,并同时将yuv编码数据转换为rgba8888数据后显示输出。

毫无疑问,上述场景仅仅是对基于摄像头的应用场景类型的举例而非穷举,本实施例方法可以适用于各类应用场景类型,其区别仅仅在于回调数据的内容因为不同应用场景类型可能有所不同、回调数据的处理方式因为不同应用场景类型可能有所不同。本实施例前述云手机的远程摄像头应用方法能够实现云手机上摄像头的各类应用,用户在云手机上,点击摄像头图标,可以进入预览显示场景,根据操作可进一步进入拍照场景、录像场景状态实现拍照和录像,通过第三方软件(如微信,支付宝,快手,抖音,以及各种浏览器)等打开摄像头可进入预览回调场景实现人脸识别、扫码,视频聊天等功能,通过直播软件可进入直播场景来实现直播功能,尤其是可实现一路或多路直播的功能,从而可使得云手机类似物理手机一样实现摄像头的各类功能。

此外,本实施例还提供一种云手机的远程摄像头应用系统,包括计算机设备,该计算机设备中包含云手机,且该云手机被编程或配置以执行前述云手机的远程摄像头应用方法的步骤,或者该云手机的存储器中存储有被编程或配置以执行前述云手机的远程摄像头应用方法的计算机程序。

此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行前述云手机的远程摄像头应用方法的计算机程序。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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