CN115883962A - 摄像头控制方法、***、电子设备和存储介质 - Google Patents
摄像头控制方法、***、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115883962A CN115883962A CN202111131638.5A CN202111131638A CN115883962A CN 115883962 A CN115883962 A CN 115883962A CN 202111131638 A CN202111131638 A CN 202111131638A CN 115883962 A CN115883962 A CN 115883962A
- Authority
- CN
- China
- Prior art keywords
- camera
- image frames
- server
- client
- sending
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000004590 computer program Methods 0.000 claims description 6
- 238000011017 operating method Methods 0.000 claims 2
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000009825 accumulation Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/66—Remote control of cameras or camera parts, e.g. by remote control devices
- H04N23/661—Transmitting camera control signals through networks, e.g. control via the Internet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Studio Devices (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请实施例涉及互联网技术领域,特别涉及一种摄像头控制方法、电子设备和计算机可读存储介质。摄像头控制方法包括:接收服务器中运行的虚拟终端发送的对摄像头的控制指令;根据所述控制指令,控制所述摄像头采集图像帧,并将所述图像帧存入缓存队列;在所述缓存队列中的图像帧的数量大于预设数量阈值的情况下,清除所述缓存队列中的目标图像帧;其中,所述目标图像帧的时间戳与当前时间戳之间的时间间隔大于预设间隔;将所述缓存队列中剩余的图像帧,发送给所述服务器以供所述服务器将接收到的图像帧发送至所述虚拟终端的操作***内的相机硬件抽象层,使得可以提高摄像头重定向后画面的实时性,从而提高用户体验。
Description
技术领域
本申请实施例涉及互联网技术领域,特别涉及一种摄像头控制方法、电子设备和存储介质。
背景技术
云手机,就是将云计算技术运用于网络终端服务,通过云服务器实现云服务的手机。其实就是深度结合了网络服务的智能手机,这类手机凭借自带的***以及厂商架设的网络终端可以通过网络实现众多的功能。云手机(也称手机虚机)的操作***是运行在云端的,没有摄像头可以使用,这就导致手机虚机内的没有相机功能,手机虚机内的应用程序(Application,APP)如果需要使用拍照、录像、扫描二维码等相机相关的功能将无法正常运行。
为解决手机虚机内运行的APP无法操作相机硬件的问题,一般采用相机重定向的方法,即建立手机虚机与客户端之间的连接,将客户端的相机映射给手机虚机使用,但这种方案容易影响摄像头重定向后画面的实时性,从而影响用户体验。
发明内容
本申请实施例的主要目的在于提出一种摄像头控制方法、电子设备和计算机可读存储介质,使得可以提高摄像头重定向后画面的实时性,从而提高用户体验。
为至少实现上述目的,本申请实施例提供了一种摄像头控制方法,应用于客户端,包括:接收服务器中运行的虚拟终端发送的对摄像头的控制指令;根据所述控制指令,控制所述摄像头采集图像帧,并将所述图像帧存入缓存队列;在所述缓存队列中的图像帧的数量大于预设数量阈值的情况下,清除所述缓存队列中的目标图像帧;其中,所述目标图像帧的时间戳与当前时间戳之间的时间间隔大于预设间隔;将所述缓存队列中剩余的图像帧,发送给所述服务器以供所述服务器将接收到的图像帧发送至所述虚拟终端的操作***内的相机硬件抽象层。
为至少实现上述目的,本申请实施例还提供了一种摄像头控制方法,应用于服务器,所述服务器中运行有虚拟终端,所述方法包括:向客户端发送对摄像头的控制指令;其中,所述客户端根据所述控制指令,控制所述摄像头采集图像帧,并将所述图像帧存入缓存队列;在所述缓存队列中的图像帧的数量大于预设数量阈值的情况下,清除所述缓存队列中的目标图像帧并将所述缓存队列中剩余的图像帧,发送给所述服务器;其中,所述目标图像帧的时间戳与当前时间戳之间的时间间隔大于预设时间间隔;接收所述客户端发送的图像帧,并将所述图像帧发送至所述虚拟终端的操作***内的相机硬件抽象层。
为至少实现上述目的,本申请实施例还提供了一种摄像头控制***,包括:服务器和客户端,所述服务器中运行有虚拟终端;所述服务器用于向所述客户端发送对摄像头的控制指令;所述客户端用于根据所述控制指令,控制所述摄像头采集图像帧,并将所述图像帧存入缓存队列;所述客户端还用于在所述缓存队列中的图像帧的数量大于预设数量阈值的情况下,清除所述缓存队列中的目标图像帧,并将所述缓存队列中剩余的图像帧发送给所述服务器;其中,所述目标图像帧的时间戳与当前时间戳之间的时间间隔大于预设间隔;所述服务器还用于将接收到的图像帧发送至所述虚拟终端的操作***内的相机硬件抽象层。
为至少实现上述目的,本申请实施例还提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令;在所述电子设备为客户端的情况下,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行应用于客户端的摄像头控制方法;在所述电子设备为服务器的情况下,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行应用于服务器的摄像头控制方法。
为至少实现上述目的,本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现应用于客户端的摄像头控制方法,或者实现应用于服务器的摄像头控制方法。
本申请实施例提供的摄像头控制方法,客户端接收服务器运行的虚拟终端发送的对摄像头的控制指令;根据该控制指令,控制摄像头采集图像帧并将图像帧存入缓存队列;在缓存队列中的图像帧的数量大于预设数量阈值的情况下,清除缓存队列中的目标图像帧,目标图像帧的时间戳与当前时间戳之间的时间间隔大于预设间隔;其中,当处于缓存队列中的图像帧的数量大于预设数量阈值的情况下,说明当前网络状态不佳导致缓存队列中当前存在大量图像帧无法及时上报,即缓存队列中堆积了大量数据,此时客户端会清除缓存队列中的目标图像帧,目标图像帧的时间戳与当前时间戳之间的时间间隔大于预设间隔,也就是说目标图像帧是很早之前存入缓存队列中的图像帧,可以视为过期数据,即本申请实施例中可以在缓存队列中堆积大量图像帧的情况下,及时清除缓存队列中的过期数据。然后,客户端将缓存队列中剩余的图像帧,发送给服务器以供服务器将接收到的图像帧发送至虚拟终端的操作***内的相机硬件抽象层。也就是说,客户端可以及时将较新的图像帧发送给服务器,从而服务器将这些较新的图像帧发送至虚拟终端的操作***内的相机硬件抽象层,避免缓存队列中的图像帧的大量堆积导致摄像头重定向后图像画面出现较大延时,有利于提高摄像头重定向后画面的实时性,从而提高用户体验。
附图说明
图1是本申请实施例中提到的应用场景的示意图;
图2是本申请实施例中提到的一种应用于客户端的摄像头控制方法的流程示意图;
图3是本申请实施例中提到的一种应用于服务器的摄像头控制方法的流程示意图;
图4是本申请实施例中提到的一种摄像头控制***的示意图;
图5是本申请实施例中提到的另一种摄像头控制方法的流程示意图;
图6是本申请实施例中提到的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本申请各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本申请的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
为便于对本申请实施例的理解,下面首先对本申请中所涉及的应用场景进行简要说明:
在一个例子中,本申请实施例的应用场景的示意图可以参考图1,云手机***包括:客户端(比如图1中的客户端1、客户端2、客户端3)、服务器。服务器中可以包括:登陆管理模块、虚机管理模块,服务器中还运行有手机虚机(比如图1中的手机虚机1、手机虚机2、手机虚机3)。
客户端,用于向服务器发起登陆请求,服务器对登陆账号进行验证,验证通过后为相应的登陆用户分配一台手机虚机,并将这台手机虚机的连接参数返回给客户端,客户端可以通过返回的连接参数建立与相应的手机虚机连接的链路,连接成功后通过客户端就可以操作相应的手机虚机。
服务端,运行有登陆管理模块、虚机管理模块等。登陆管理模块用于管理用户信息和登陆验证;虚机管理模块用于对手机虚机进行管理,包括手机虚机的创建、删除、启动、停止等,还可以用于管理手机虚机的运行状态。
手机虚机为运行在服务器中的独立***,客户端可以与之建立连接,并通过建立的链路对手机虚机进行操作。通常手机虚机上还可以部署一些预设的模块,通过这些模块可以对手机虚机进行管控。
本申请的实施例提供了一种摄像头控制方法,应用于客户端。该客户端可以为图1的云手机***中的客户端,客户端可以为普通的手机设备,但是使用云手机时所述客户端可以只起到人机交互的功能。客户端上设有摄像头(即相机设备),客户端的数量可以是多个,如图l所示,服务器可以同时连接客户端1、客户端2和客户端3,服务器上可以同时运行多个手机虚机的操作***,分别供客户端1、客户端2和客户端3使用。本实施例中的摄像头控制方法的流程示意图可以参考图2,包括:
步骤201:接收服务器中运行的虚拟终端发送的对摄像头的控制指令;
步骤202:根据控制指令,控制摄像头采集图像帧,并将图像帧存入缓存队列;
步骤203:在缓存队列中的图像帧的数量大于预设数量阈值的情况下,清除缓存队列中的目标图像帧;
步骤204:将缓存队列中剩余的图像帧,发送给服务器以供服务器将接收到的图像帧发送至虚拟终端的操作***内的相机硬件抽象层。
本实施例中,当处于缓存队列中的图像帧的数量大于预设数量阈值的情况下,说明当前网络状态不佳导致缓存队列中当前存在大量图像帧无法及时上报,即缓存队列中堆积了大量数据,此时客户端会清除缓存队列中的目标图像帧,目标图像帧的时间戳与当前时间戳之间的时间间隔大于预设间隔,也就是说目标图像帧是很早之前存入缓存队列中的图像帧,可以视为过期数据,即本申请实施例中可以在缓存队列中堆积大量图像帧的情况下,及时清除缓存队列中的过期数据。然后,客户端将缓存队列中剩余的图像帧,发送给服务器以供服务器将接收到的图像帧发送至虚拟终端的操作***内的相机硬件抽象层。也就是说,客户端可以及时将较新的图像帧发送给服务器,从而服务器将这些较新的图像帧发送至虚拟终端的操作***内的相机硬件抽象层,避免缓存队列中的图像帧的大量堆积导致摄像头重定向后图像画面出现较大延时,有利于提高摄像头重定向后画面的实时性,从而提高用户体验。
在步骤201中,客户端可以接收服务器中运行的虚拟终端发送的对摄像头的控制指令。其中,服务器中运行的虚拟终端可以为图1中的手机虚机。手机虚机的操作***中的相机硬件抽象层可以拦截到手机虚机内运行的APP对相机的使用请求(也可以理解为对摄像头的使用请求),该使用请求中可以携带使用参数,使用参数可以包括APP对相机的使用时期望的相机参数,比如可以包括:摄像头分辨率、闪光灯是否开启、拍摄模式(比如人像模式、风景模式、夜景模式等)、拍摄图像的存储地址、开启前置摄像头还是后置摄像头、帧率等。相机硬件抽象层可以根据携带使用参数的使用请求生成对摄像头的控制指令,并将该摄像头的控制指令发送给客户端。
在一个例子中,客户端与服务器之间建立有传输控制协议(TransmissionControl Protocol,TCP)链路,客户端与服务器之间可以通过该TCP链路传输数据,比如服务端可以通过该TCP链路将对摄像头的控制指令发送给客户端。
在步骤202中,客户端可以根据控制指令,控制摄像头采集图像帧,并将图像帧存入缓存队列。客户端可以根据控制指令获取手机虚机内运行的APP对相机的使用参数,并根据使用参数对客户端内的相机设备即摄像头进行设置,比如设置摄像头分辨率、拍照时闪光灯是否开启、拍摄模式(比如人像模式、风景模式、夜景模式等)、拍摄图像的存储地址、开启前置摄像头还是后置摄像头等。在对客户端内的相机设备即摄像头完成设置后,可以进行图像捕获即采集图像帧。客户端可以将采集的图像帧均存入预设的缓存队列中,存入缓存队列中的图像帧可以均对应有时间戳,图像帧的时间戳可以理解为采集到该图像帧的时间点,也可以理解为将采集的图像帧存入缓存队列中的时间点。
在步骤203中,目标图像帧的时间戳与当前时间戳之间的时间间隔大于预设间隔。客户端可以在将采集的图像帧存入缓存队列后,判断缓存队列中存入的图像帧的数量是否大于预设数量阈值,并在判定缓存队列中存入的图像帧的数量大于预设数量阈值的情况下,清除缓存队列中的目标图像帧。其中,预设数量阈值可以根据实际需要进行设置,用于表征当前缓存队列中存入的图像帧的数量过多。本申请的发明人发现,当网络状态不佳时,缓存队列中的图像帧可能难以被及时发送至服务器,因此容易在缓存队列中堆积大量图像帧,服务器不能及时接收到最新的图像帧,容易造成画面的延时。因此,本实施例通过清除缓存队列中的目标图像帧,即清除缓存队列中较老的数据,以避免缓存队列中的数据堆积,使得排列在缓存队列的队首的图像帧为相对较新的数据。
在步骤204中,相机硬件抽象层(Hardware Abstraction Layer,HAL)位于操作***内核与硬件电路之间的接口层。客户端将缓存队列中剩余的图像帧,发送给服务器,从而服务器会将接收到的图像帧发送至虚拟终端的操作***内的相机硬件抽象层。比如,客户端可以按照各剩余的图像帧进入缓存队列的顺序,依次将各剩余的图像帧发送给服务器。
在具体实现中,客户端可以通过与服务器建立的TCP链路将缓存队列中剩余的图像帧,发送给服务器。服务器可以将接收到的图像帧发送给发起对摄像头的控制指令的虚拟终端的操作***内的相机硬件抽象层,则运行在该虚拟终端中的请求使用摄像头的APP就可以正常显示相机画面了。
在一个实施例中,在清除缓存队列中的目标图像帧之后,还包括:在缓存队列中存在超过预设时长未被发送给所述服务器的图像帧的情况下,降低摄像头的帧率。也就是说,清除缓存队列中的目标图像帧之后,如果检测到缓存队列中依然存在超过预设时长未被发送给服务器的图像帧的情况,说明网络不佳的状态不是偶尔出现或是短时间出现的,而是当前一段时间内不可避免的客观情况,此时可以降低摄像头的帧率,即降低每秒显示的图像帧的数量,以适应当前网络不佳的客观情况,保证用户有较好的使用体验。
在一个例子中,降低所述摄像头的帧率,包括:确定向所述服务器发送所述缓存队列中的图像帧的发送速度;根据所述发送速度确定帧率调整量,并根据所述帧率调整量降低所述摄像头的帧率。其中,向服务器发送图像帧的速度越快,说明当前的网速相对较快,网络状态相对较好,向服务器发送图像帧的速度越慢,说明当前的网速相对较慢,网络状态相对较差。向服务器发送图像帧的速度越小,帧率调整量越大,向服务器发送图像帧的速度越大,帧率调整量越小,降低后的摄像头的帧率为摄像头的当前帧率减去帧率调整量。也就是说,向服务器发送图像帧的速度越小,降低后的帧率越小,向服务器发送图像帧的速度越大,降低后的帧率越大。可选的,客户端中可以预存发送速度与帧率调整量的对应关系,从而客户端可以根据预存的该对应关系和向服务器发送图像帧的发送速度,确定帧率调整量。通过这种帧率调整方式可以更好的适应不同的网络状态。
在另一个例子中,降低所述摄像头的帧率也可以通过如下方式实现;以预设的步进值降低摄像头的帧率;其中,步进值可以根据实际需要进行设置,即每次将摄像头的帧率降低步进值的大小。
在一个例子中,在降低所述摄像头的帧率时,所述帧率最低被降低到预设帧率。也就是说,帧率不会无限制的降低,当帧率为预设帧率时,不会再对帧率进行进一步的降低。通过设置预设帧率使得可以在降低帧率以适应当前网络不佳的客观情况的同时控制帧率降低的大小,不至于使降低后的帧率过小,从而可以在一定程度上保证画面显示的连贯性。
其中,预设帧率可以根据实际需要进行设置,比如根据用户对连贯性的要求进行设定,如果对画面连贯性的要求高,则预设帧率可以设置的相对较大,反之,如果对画面连贯性的要求低,则预设帧率可以设置的相对较小。在具体实现中,预设帧率可以设置为20fps,即帧率最低被降低到20fps。
在一个实施例中,将所述缓存队列中剩余的图像帧,发送给所述服务器中运行的所述虚拟终端即上述的步骤204,包括:将所述缓存队列中剩余的图像帧进行H264编码,得到编码后的图像帧;将所述编码后的图像帧,发送给所述服务器中运行的所述虚拟终端,以供所述虚拟终端对所述编码后的图像帧进行H264解码得到解码后的图像帧。通过对图像帧进行H264编码,可以降低图像帧数据中的大量冗余信息,减少需要发送的数据量,从而加快客户端向服务器发送图像帧的速度,在一定程度上有利于提高相机画面的实时性。
其中,编码可以为软编码也可以为硬编码,软编码利用中央处理器(CentralProcessing Unit,CPU)的运算完成,硬编码利用图形处理器(Graphics Processing Unit,GPU)的运算完成,硬编码的效率远高于软编码。对应的解码可以为软解码也可以为硬解码,软解码利用CPU的运算完成,硬解码利用GPU的运算完成,硬解码的效率远高于软解码。
本申请的实施例还提供了一种摄像头控制方法,应用于服务器,服务器中运行有虚拟终端,该服务器可以为图1中的服务器,应用于服务器的摄像头控制方法的流程示意图可以参考图3,包括:
步骤301:向客户端发送对摄像头的控制指令;
其中,客户端根据控制指令,控制摄像头采集图像帧,并将图像帧存入缓存队列;在缓存队列中的图像帧的数量大于预设数量阈值的情况下,清除缓存队列中的目标图像帧并将缓存队列中剩余的图像帧,发送给服务器;其中,目标图像帧的时间戳与当前时间戳之间的时间间隔大于预设间隔。
在具体实现中,当服务器检测到虚拟终端调用摄像头的请求(即对摄像头的使用请求),可以根据调用摄像头的请求,向客户端发送对摄像头的控制指令。虚拟终端调用摄像头的请求可以具体为虚拟终端中运行的某个APP调用摄像头的请求。
步骤302:接收客户端发送的图像帧,并将图像帧发送至虚拟终端的操作***内的相机硬件抽象层。
在一个例子中,接收所述客户端发送的图像帧,包括:接收所述客户端发送的编码后的图像帧;其中,客户端对缓存队列中剩余的图像帧进行H264编码,得到编码后的图像帧;对所述编码后的图像帧进行H264解码,得到解码后的图像帧;将所述解码后的图像帧发送至所述虚拟终端的操作***内的相机硬件抽象层。
需要说明的是,本申请实施例中的上述各示例均为为方便理解进行的举例说明,并不对本发明的技术方案构成限定。
不难发现,本实施例为与上述应用于客户端的实施例对应的应用于服务器的实施例,本实施例可与上述应用于客户端的实施例互相配合实施。上述应用于客户端的实施例中提到的相关技术细节和技术效果在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在上述应用于客户端的实施例中。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本申请实施例还提供了一种摄像头控制***,包括:服务器和客户端,所述服务器中运行有虚拟终端;所述服务器用于向所述客户端发送对摄像头的控制指令;所述客户端用于根据所述控制指令,控制所述摄像头采集图像帧,并将所述图像帧存入缓存队列;所述客户端还用于在所述缓存队列中的图像帧的数量大于预设数量阈值的情况下,清除所述缓存队列中的目标图像帧,并将所述缓存队列中剩余的图像帧发送给所述服务器;其中,所述目标图像帧的时间戳与当前时间戳之间的时间间隔大于预设间隔;所述服务器还用于将接收到的图像帧发送至所述虚拟终端的操作***内的相机硬件抽象层。
在一个例子中,摄像头控制***的示意图可以参考图4,包括:服务器401和客户端402,服务器401中运行的虚拟终端包括:相机硬件抽象层4010、H264解码模块4011、接口机Server4012;客户端402包括:相机设备4020、帧缓存模块4021、相机控制模块4022、H264编码模块4023、接口机Client4024。
相机硬件抽象层4010,用于拦截获取到虚拟终端(比如手机虚机内)运行的APP对相机的使用请求,该使用请求中携带使用参数,相机硬件抽象层4010将该使用请求转换为控制相机的指令(也可以称为对摄像头的控制指令),并通过运行在手机虚机内的接口机Server4012发送到客户端402。在具体实现中,服务器401在检测到有APP对相机的使用请求时,可以通过客户端402与手机虚机之间已经存在的链路发送通知到手机虚机,然后由接口机Client4024建立与接口机Server4012之间的相机重定向数据链路。
接口机Server4012,用于下发控制相机的指令,并接收客户端发送的图像帧。
H264解码模块4011,用于对接口机Server4012接收到的编码后的图像帧进行解码,将解码后的数据注入相机硬件抽象层4010。
接口机Client4024,用于建立与接口机Server4012的TCP链路,接收接口机Server4012发送的控制相机的指令,并将H264编码后的图像帧发送到服务器。
相机设备4020,用于根据控制相机的指令完成相机设置和图像捕获,并将捕获到的图像帧存入帧缓存模块4021的缓存队列中。其中,相机设备即可以理解为摄像头。
帧缓存模块4021,用于管理和缓存图像帧,在网络不佳时缓存队列中的图像帧数量较多(即上述的判定缓存队列中存入的图像帧的数量大于预设数量阈值),则将缓存队列中较老的数据(即上述的目标图像帧)丢弃,以保证相机视频的实时性。
相机控制模块4022,用于根据当前网络状况对相机设备4020和帧缓存模块4021进行实时管理。在网络不佳的情况下,缓存队列中将会堆积大量数据,导致服务器不能及时收到最新的帧数据出现画面有延时,相机控制模块4022对缓存队列中的数据量进行检测,当缓存的图像帧的数量较大时及时清除缓存队列中较老的数据(即过期数据)。当缓存队列中的图像帧依然长时间无法及时发送,将降低相机帧率,避免图像帧的大量堆积,保证摄像头重定向后画面的实时性。
H264编码模块4023,用于从帧缓存模块4021中获取图像帧,并进行H264编码,并将编码后的数据通过接口机Client4024发送到服务器。
在一个例子中,在图4所示的摄像头控制***下,摄像头的控制方法可以参考图5,包括:
步骤501:手机虚机中的相机硬件抽象层检测到APP对相机的使用请求,通知客户端建立与服务器中运行的手机虚拟之间的相机重定向数据链路;
比如,通过在相机硬件抽象层增加拦截功能,在检测到APP对相机的使用请求时,即通过客户端与手机虚机的连接链路发送通知到客户端,由接口机Client建立与接口机Server之间的相机重定向数据链路。
步骤502:手机虚机中的相机硬件抽象层根据APP对相机的使用请求生成控制相机的指令,并通过所建立的链路下发相机启动命令给客户端;
其中,控制相机的指令中携带有对相机的使用参数。相机硬件抽象层也可以获取应用层APP对相机操作的参数,再将这些参数转化为对应的指令下发到客户端,由客户端实际完成对相机的操作。
步骤503:客户端解析控制相机的指令,并根据控制相机的指令中携带的使用参数设置并启动相应的相机设备;
步骤504:客户端中的相机设备采集图像帧,并将采集的图像帧存入缓存队列;
其中,正常启动的相机设备会根据设置的帧率输出每帧的画面数据,客户端中将会定时获取这些图像帧,并存入缓存队列中。在将图像帧存入帧缓存队列时,相机管理模块会判断当前缓存队列中堆积的数据量大小,在堆积的数据量较多的情况下将清除过期数据(即上述的目标图像帧)。当图像帧长期不能及时发送还将降低相机帧率,保证摄像头重定向后相机画面的实时性。
步骤505:客户端的H264编码模块从缓存队列中获取图像帧,并经过H264编码后发送给手机虚机;
步骤506:手机虚机接收编码后的图像帧,然后经过H264解码后注入相机硬件抽象层;
其中,解码后的数据注入到手机虚机操作***内的相机硬件抽象层,运行在手机虚机内的APP就可以正常显示相机画面了。
步骤507:手机虚机检测到相机关闭请求,发送停止命令到客户端,客户端收到停止命令后关闭相机,同时拆除所建立的链路。
其中,在手机虚机的相机硬件抽象层也可以捕获到APP关闭相机的请求,通过接口机Server也可以把关闭相机的指令下发给客户端,客户端收到关闭指令后即关闭相机,同时拆除与手机虚机之间的相机重定向数据链路。
本实施例中,第一,引入相机管理模块,在网络不佳,大量图像帧无法及时上报,缓存队列中堆积大量图像帧,相机管理模块负责及时清除缓存队列中过期数据,如果图像帧长时间无法及时发送还将调整相机帧率,避免图像帧的堆积,导致摄像头重定向后相机画面出现较大延时,保证相机画面的实时性。第二,通过H264编码对图像帧进行编码,降低图像帧中的大量冗余信息,减少需要发送的数据量,提高了重定向画面的稳定性。通过以上两项改进,能减少发送所占用的带宽,在网络不佳的情况下仍然可以保证有较好的用户体验
不难发现,本实施例为与上述应用于客户端的实施例和应用于服务器的实施例对应的***实施例,本实施例可与上述应用于客户端的实施例和应用于服务器的实施例互相配合实施。上述应用于客户端的实施例和应用于服务器的实施例中提到的相关技术细节和技术效果在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在上述应用于客户端的实施例和应用于服务器的实施例中。
本申请实施例还提供了一种电子设备,如图6所示,包括:至少一个处理器601;以及,
与所述至少一个处理器601通信连接的存储器602;其中,所述存储器602存储有可被所述至少一个处理器601执行的指令;在所述电子设备为客户端的情况下,所述指令被所述至少一个处理器601执行,以使所述至少一个处理器601能够执行应用于客户端的摄像头控制方法;在所述电子设备为服务器的情况下,所述指令被所述至少一个处理器601执行,以使所述至少一个处理器601能够执行应用于服务器的摄像头控制方法。
其中,存储器602和处理器601采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器601和存储器602的各种电路连接在一起。总线还可以将诸如***设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器601处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器601。
处理器601负责管理总线和通常的处理,还可以提供各种功能,包括定时,***接口,电压调节、电源管理以及其他控制功能。而存储器602可以被用于存储处理器601在执行操作时所使用的数据。
本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (10)
1.一种摄像头控制方法,其特征在于,应用于客户端,包括:
接收服务器中运行的虚拟终端发送的对摄像头的控制指令;
根据所述控制指令,控制所述摄像头采集图像帧,并将所述图像帧存入缓存队列;
在所述缓存队列中的图像帧的数量大于预设数量阈值的情况下,清除所述缓存队列中的目标图像帧;其中,所述目标图像帧的时间戳与当前时间戳之间的时间间隔大于预设间隔;
将所述缓存队列中剩余的图像帧,发送给所述服务器以供所述服务器将接收到的图像帧发送至所述虚拟终端的操作***内的相机硬件抽象层。
2.根据权利要求1所述的运行方法,其特征在于,在所述清除所述缓存队列中的目标图像帧之后,还包括:
在所述缓存队列中存在超过预设时长未被发送给所述服务器的图像帧的情况下,降低所述摄像头的帧率。
3.根据权利要求2所述的运行方法,其特征在于,所述降低所述摄像头的帧率,包括:
确定向所述服务器发送所述缓存队列中的图像帧的发送速度;
根据所述发送速度确定帧率调整量,并根据所述帧率调整量降低所述摄像头的帧率。
4.根据权利要求2或3所述的运行方法,其特征在于,在降低所述摄像头的帧率时,所述帧率最低被降低到预设帧率。
5.根据权利要求1所述的运行方法,其特征在于,所述将所述缓存队列中剩余的图像帧,发送给所述服务器中运行的所述虚拟终端,包括:
将所述缓存队列中剩余的图像帧进行H264编码,得到编码后的图像帧;
将所述编码后的图像帧,发送给所述服务器中运行的所述虚拟终端,以供所述虚拟终端对所述编码后的图像帧进行H264解码得到解码后的图像帧。
6.一种摄像头控制方法,其特征在于,应用于服务器,所述服务器中运行有虚拟终端,所述方法包括:
向客户端发送对摄像头的控制指令;其中,所述客户端根据所述控制指令,控制所述摄像头采集图像帧,并将所述图像帧存入缓存队列;在所述缓存队列中的图像帧的数量大于预设数量阈值的情况下,清除所述缓存队列中的目标图像帧并将所述缓存队列中剩余的图像帧,发送给所述服务器;其中,所述目标图像帧的时间戳与当前时间戳之间的时间间隔大于预设间隔;
接收所述客户端发送的图像帧,并将所述图像帧发送至所述虚拟终端的操作***内的相机硬件抽象层。
7.根据权利要求6所述的摄像头控制方法,其特征在于,所述接收所述客户端发送的图像帧,包括:
接收所述客户端发送的编码后的图像帧;其中,所述客户端对所述缓存队列中剩余的图像帧进行H264编码,得到编码后的图像帧;
对所述编码后的图像帧进行H264解码,得到解码后的图像帧;
将所述解码后的图像帧发送至所述虚拟终端的操作***内的相机硬件抽象层。
8.一种摄像头控制***,其特征在于,包括:服务器和客户端,所述服务器中运行有虚拟终端;
所述服务器用于向所述客户端发送对摄像头的控制指令;
所述客户端用于根据所述控制指令,控制所述摄像头采集图像帧,并将所述图像帧存入缓存队列;
所述客户端还用于在所述缓存队列中的图像帧的数量大于预设数量阈值的情况下,清除所述缓存队列中的目标图像帧,并将所述缓存队列中剩余的图像帧发送给所述服务器;其中,所述目标图像帧的时间戳与当前时间戳之间的时间间隔大于预设间隔;
所述服务器还用于将接收到的图像帧发送至所述虚拟终端的操作***内的相机硬件抽象层。
9.一种电子设备,其特征在于,包括:至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令;
在所述电子设备为客户端的情况下,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至5中任一所述的摄像头控制方法;
在所述电子设备为服务器的情况下,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求6至7中任一所述的摄像头控制方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一所述的摄像头控制方法,或者实现如权利要求6至7中任一所述的摄像头控制方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111131638.5A CN115883962A (zh) | 2021-09-26 | 2021-09-26 | 摄像头控制方法、***、电子设备和存储介质 |
EP22871609.8A EP4395349A1 (en) | 2021-09-26 | 2022-07-27 | Camera control method and system, electronic device and storage medium |
PCT/CN2022/108302 WO2023045551A1 (zh) | 2021-09-26 | 2022-07-27 | 摄像头控制方法、***、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111131638.5A CN115883962A (zh) | 2021-09-26 | 2021-09-26 | 摄像头控制方法、***、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115883962A true CN115883962A (zh) | 2023-03-31 |
Family
ID=85719692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111131638.5A Pending CN115883962A (zh) | 2021-09-26 | 2021-09-26 | 摄像头控制方法、***、电子设备和存储介质 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4395349A1 (zh) |
CN (1) | CN115883962A (zh) |
WO (1) | WO2023045551A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116233372A (zh) * | 2023-05-10 | 2023-06-06 | 北京城建智控科技股份有限公司 | 一种移动方舱内部的安全监控方法及*** |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117255245B (zh) * | 2023-11-17 | 2024-03-15 | 深圳市法本信息技术股份有限公司 | 摄像头匹配方法、装置、终端设备以及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1787481B (zh) * | 2004-12-08 | 2010-04-28 | 腾讯科技(深圳)有限公司 | 一种减小数据包播放延时的方法 |
CN104410583B (zh) * | 2014-11-26 | 2017-09-22 | 北京邮电大学 | 基带资源池中的上行信道数据处理方法 |
CN108206787A (zh) * | 2016-12-17 | 2018-06-26 | 北京华为数字技术有限公司 | 一种拥塞避免方法和装置 |
JP2020187706A (ja) * | 2019-05-17 | 2020-11-19 | キヤノン株式会社 | 画像処理装置、画像処理システム、画像処理方法およびプログラム |
CN110493203A (zh) * | 2019-07-31 | 2019-11-22 | 湖南微算互联信息技术有限公司 | 一种云手机摄像头控制方法、***、装置和存储介质 |
CN111917988B (zh) * | 2020-08-28 | 2021-12-10 | 湖南多行云计算机科技有限公司 | 一种云手机的远程摄像头应用方法、***及介质 |
-
2021
- 2021-09-26 CN CN202111131638.5A patent/CN115883962A/zh active Pending
-
2022
- 2022-07-27 WO PCT/CN2022/108302 patent/WO2023045551A1/zh active Application Filing
- 2022-07-27 EP EP22871609.8A patent/EP4395349A1/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116233372A (zh) * | 2023-05-10 | 2023-06-06 | 北京城建智控科技股份有限公司 | 一种移动方舱内部的安全监控方法及*** |
Also Published As
Publication number | Publication date |
---|---|
EP4395349A1 (en) | 2024-07-03 |
WO2023045551A1 (zh) | 2023-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107623851B (zh) | 视频码流传输控制装置及控制方法 | |
US6728763B1 (en) | Adaptive media streaming server for playing live and streaming media content on demand through web client's browser with no additional software or plug-ins | |
CN110430441B (zh) | 一种云手机视频采集方法、***、装置及存储介质 | |
EP4395349A1 (en) | Camera control method and system, electronic device and storage medium | |
CN109089131B (zh) | 一种基于ios***的录屏直播方法、装置、设备及存储介质 | |
CN108881931B (zh) | 一种数据缓冲方法及网络设备 | |
CN111432169B (zh) | 视频传输方法、装置、设备和*** | |
CN111726657A (zh) | 直播视频的播放处理方法、装置及服务器 | |
CN104427286B (zh) | 一种进行视频通话的方法和*** | |
WO2015120766A1 (zh) | 一种视频优化***及方法 | |
CN113068001B (zh) | 基于级联摄像机的数据处理方法、装置、设备和介质 | |
CN103327252A (zh) | 拍摄装置及其拍摄方法 | |
CN108924485B (zh) | 客户端实时视频流中断处理方法及***、监控*** | |
CN110958399A (zh) | 高动态范围图像hdr实现方法及相关产品 | |
CN114679607A (zh) | 一种视频帧率控制方法、装置、电子设备及存储介质 | |
CN114363643B (zh) | 用于智慧高速的大屏实时视频流播放方法以及装置 | |
WO2018032696A1 (zh) | 桌面截屏控制方法及*** | |
CN111629278B (zh) | 图像传输方法、装置、可移动平台、服务器及存储介质 | |
EP3860131A1 (en) | Data transmission method and apparatus | |
CN111263113A (zh) | 数据包的发送方法及装置、数据包的处理方法及装置 | |
CN110990088A (zh) | 数据处理方法及相关设备 | |
CN108076253B (zh) | 一种智能电子设备和图像处理单元、装置、方法 | |
CN114095660B (zh) | 图像显示方法、装置、存储介质及电子设备 | |
CN112533029B (zh) | 一种视频分时传输方法、摄像装置、***和存储介质 | |
US20140327781A1 (en) | Method for video surveillance, a related system, a related surveillance server, and a related surveillance camera |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |