CN114302055A - 基于Linux的相机控制方法、装置、设备和存储介质 - Google Patents

基于Linux的相机控制方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN114302055A
CN114302055A CN202111532130.6A CN202111532130A CN114302055A CN 114302055 A CN114302055 A CN 114302055A CN 202111532130 A CN202111532130 A CN 202111532130A CN 114302055 A CN114302055 A CN 114302055A
Authority
CN
China
Prior art keywords
camera
android
browser
linux
virtual
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
Application number
CN202111532130.6A
Other languages
English (en)
Inventor
张兴涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing Jingling Information System Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingling Information System Technology Co Ltd filed Critical Beijing Jingling Information System Technology Co Ltd
Priority to CN202111532130.6A priority Critical patent/CN114302055A/zh
Publication of CN114302055A publication Critical patent/CN114302055A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Studio Devices (AREA)

Abstract

本发明提供一种基于Linux的相机控制方法、装置、设备和存储介质,该方法包括:通过虚拟摄像头设备,接收浏览器发送的相机控制指令;基于Android相机驱动,控制相机执行所述相机控制指令对应的操作,并将所述相机的执行结果通过所述虚拟摄像头设备返回至所述浏览器。本发明通过虚拟摄像头设备,接收浏览器发送的相机控制指令,进而使浏览器可以通过Android相机驱动使用相机设备,以使在只存在android相机驱动的情况下,浏览器可以使用相机设备,从而实现浏览器能够使用相机设备的目的。

Description

基于Linux的相机控制方法、装置、设备和存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于Linux的相机控制方法、装置、设备和存储介质。
背景技术
Linux***是一套***和自由传播的类Unix操作***,其具备多用户、多任务、多线程、多CPU和高安全性的特点,因此,Linux***受到了广泛应用。另外,伴随着web技术的发展,越来越多的web浏览器诞生,而各web浏览器需要使用相机设备,实现相机功能。
目前,在基于Linux内核的操作***上,大多相机设备是通过v4l2驱动的。然而,在相机设备厂商不提供v4l2驱动,仅提供Android相机驱动的情况下,web浏览器无法直接使用相机设备。因此,在只存在android相机驱动的情况下,浏览器如何使用相机设备,是目前业界亟需解决的重要课题。
发明内容
本发明提供一种基于Linux的相机控制方法、装置、设备和存储介质,用以解决现有技术中在只存在android相机驱动的情况下,浏览器无法使用相机设备的缺陷,实现浏览器能够使用相机设备。
本发明提供一种基于Linux的相机控制方法,应用于Linux***,所述方法包括:
通过虚拟摄像头设备,接收浏览器发送的相机控制指令;
基于Android相机驱动,控制相机执行所述相机控制指令对应的操作,并将所述相机的执行结果通过所述虚拟摄像头设备返回至所述浏览器。
根据本发明提供的一种基于Linux的相机控制方法,所述基于Android相机驱动,控制相机执行所述相机控制指令对应的操作,包括:
通过相机代理服务,将所述相机控制指令从所述虚拟摄像头设备转发至Android相机驱动;
通过所述Android相机驱动,控制相机执行所述相机控制指令对应的操作。
根据本发明提供的一种基于Linux的相机控制方法,所述通过相机代理服务,将所述相机控制指令从所述虚拟摄像头设备转发至Android相机驱动之前,还包括:
在所述Linux***启动后,启动所述相机代理服务。
根据本发明提供的一种基于Linux的相机控制方法,所述将所述相机的执行结果通过所述虚拟摄像头设备返回至所述浏览器,包括:
将所述相机的执行结果返回至所述Android相机驱动;
通过相机代理服务,将所述执行结果从所述Android相机驱动转发至所述虚拟摄像头设备;
将所述执行结果从所述虚拟摄像头设备返回至所述浏览器。
根据本发明提供的一种基于Linux的相机控制方法,所述通过虚拟摄像头设备,接收浏览器发送的相机控制指令之前,还包括:
在所述Linux***启动后,创建所述虚拟摄像头设备。
根据本发明提供的一种基于Linux的相机控制方法,所述通过虚拟摄像头设备,接收浏览器发送的相机控制指令之前,还包括:
创建Android容器,并将所述Android相机驱动部署于所述Android容器;
运行所述Android相机驱动。
根据本发明提供的一种基于Linux的相机控制方法,所述Linux***包括用户空间层和内核层;
所述用户空间层包括所述浏览器、所述相机代理服务、所述Android相机驱动;
所述内核层包括所述虚拟摄像头设备。
本发明还提供一种基于Linux的相机控制装置,包括:
接收模块,用于通过虚拟摄像头设备,接收浏览器发送的相机控制指令;
控制模块,用于基于Android相机驱动,控制相机执行所述相机控制指令对应的操作,并将所述相机的执行结果通过所述虚拟摄像头设备返回至所述浏览器。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于Linux的相机控制方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于Linux的相机控制方法的步骤。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述基于Linux的相机控制方法的步骤。
本发明提供的基于Linux的相机控制方法、装置、设备和存储介质,该方法应用于Linux***,通过虚拟摄像头设备,接收浏览器发送的相机控制指令;基于Android相机驱动,控制相机执行相机控制指令对应的操作,并将相机的执行结果通过虚拟摄像头设备返回至浏览器。通过上述方式,本发明通过虚拟摄像头设备,接收浏览器发送的相机控制指令,进而使浏览器可以通过Android相机驱动使用相机设备,以使在只存在android相机驱动的情况下,浏览器可以使用相机设备,从而实现浏览器能够使用相机设备的目的。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的基于Linux的相机控制方法的流程示意图之一;
图2为本发明提供的基于Linux的相机控制方法的架构示意图;
图3为本发明提供的基于Linux的相机控制方法的流程示意图之二;
图4为本发明提供的基于Linux的相机控制方法的流程示意图之三;
图5为本发明提供的基于Linux的相机控制方法的流程示意图之四;
图6为本发明提供的基于Linux的相机控制装置的结构意图;
图7为本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,在基于Linux内核的操作***上,大多相机设备是通过v4l2驱动的,在相机设备厂商不提供v4l2驱动,仅提供android相机驱动的情况下,web浏览器无法直接使用相机设备。
基于上述问题,提出以下各实施例。
为便于理解以下各实施例,下面对本发明的应用场景做举例说明。
具体地,在终端设备中安装Linux***,即终端设备的操作***为基于Linux内核的操作***。同时,该终端设备中安装了浏览器,通过该浏览器可访问各网页,且浏览器需要对终端设备的相机进行控制。其中,该终端设备可以为手机、平板电脑、笔记本电脑、台式电脑、服务器、嵌入式***等等,此处不作具体限定。
本发明提供了一种应用于Linux***的基于Linux的相机控制方法。图1为本发明提供的基于Linux的相机控制方法的流程示意图之一,如图1所示,本发明提供的基于Linux的相机控制方法,包括以下步骤110-120:
步骤110,通过虚拟摄像头设备,接收浏览器发送的相机控制指令。
其中,虚拟摄像头设备是一个虚拟设备,其用于供浏览器进行操作,以使浏览器像操作真实相机设备一样操作虚拟摄像头设备。
该虚拟摄像头设备位于Linux***的内核层中。
在一具体实施例中,在上述步骤110之前,所述基于Linux的相机控制方法还包括以下步骤130:
步骤130,在所述Linux***启动后,创建所述虚拟摄像头设备。
具体地,在Linux***启动后,创建并启动所述虚拟摄像头设备。
在一实施例中,所述虚拟摄像头设备为v4l2 loopback设备,其支持v4l2接口调用。具体地,通过v4l2 loopback设备,接收浏览器发送的相机控制指令。
其中,相机控制指令包括但不限于:开启相机指令、关闭相机指令、相机预览指令、相机拍摄指令、相机录像指令和相机参数设置指令等等。
步骤120,基于Android相机驱动,控制相机执行所述相机控制指令对应的操作,并将所述相机的执行结果通过所述虚拟摄像头设备返回至所述浏览器。
其中,Android相机驱动为本发明实施例的应用设备中相机具备的相机驱动,其为Android***的相机驱动。具体地,当应用设备中相机为Android***的相机驱动的相机时,需要创建Android容器,以将Android相机驱动部署于Android容器。
在一实施例中,Android相机驱动包括Android Camera HAL service、AndroidCamera Server等等。
其中,执行结果包括但不限于:开启相机指令的执行结果、关闭相机指令的执行结果、相机预览指令的执行结果、相机拍摄指令的执行结果、相机录像指令的执行结果和相机参数设置指令的执行结果等等。
此处,开启相机指令的执行结果包括相机开启成功或相机开启失败。关闭相机指令的执行结果包括相机关闭成功或相机关闭失败。相机预览指令的执行结果包括相机实时拍摄得到的图像数据或相机预览失败。相机拍摄指令的执行结果包括相机拍摄得到的图像数据或相机拍摄失败。相机录像指令的执行结果包括相机录像得到的视频数据或相机录像失败。相机参数设置指令的执行结果包括相机参数设置成功或相机参数设置失败。
在一实施例中,若相机控制指令为开启相机指令,控制相机开启,并将相机是否开启成功的执行结果通过虚拟摄像头设备返回至浏览器。
具体地,若相机控制指令为开启相机指令,控制相机开启,将相机开启成功标识或相机开启失败标识通过虚拟摄像头设备返回至浏览器。
在另一实施例中,若相机控制指令为关闭相机指令,控制相机关闭,将相机是否关闭成功的执行结果通过虚拟摄像头设备返回至浏览器。
具体地,若相机控制指令为关闭相机指令,控制相机关闭,将相机关闭成功标识或相机关闭失败标识通过虚拟摄像头设备返回至浏览器。
在另一实施例中,若相机控制指令为相机预览指令,控制相机进行预览操作,将相机实时拍摄得到的图像数据通过虚拟摄像头设备返回至浏览器,或,将相机预览失败标识通过虚拟摄像头设备返回至浏览器。
具体地,若相机控制指令为相机预览指令,且相机预览指令为相机开始预览指令,控制相机进行预览操作,将相机实时拍摄得到的图像数据通过虚拟摄像头设备返回至浏览器,同时将相机预览成功标识通过虚拟摄像头设备返回至浏览器,或,将相机预览失败标识(相机开始预览失败标识)通过虚拟摄像头设备返回至浏览器;若相机控制指令为相机预览指令,且相机预览指令为相机停止预览指令,控制相机停止进行预览操作,即停止传输实时数据,同时将相机预览成功标识(相机停止预览成功标识)通过虚拟摄像头设备返回至浏览器,或,将相机预览失败标识(相机停止预览失败标识)通过虚拟摄像头设备返回至浏览器。
在另一实施例中,若相机控制指令为相机拍摄指令,控制相机进行拍摄操作,将相机拍摄得到的图像数据通过虚拟摄像头设备返回至浏览器,或,将相机拍摄失败标识通过虚拟摄像头设备返回至浏览器。
具体地,若相机控制指令为相机拍摄指令,控制相机进行拍摄操作,将相机拍摄得到的图像数据通过虚拟摄像头设备返回至浏览器,同时将相机拍摄成功标识通过虚拟摄像头设备返回至浏览器,或,将相机拍摄失败标识通过虚拟摄像头设备返回至浏览器。
在另一实施例中,若相机控制指令为相机录像指令,控制相机进行录像操作,将相机录像得到的视频数据通过虚拟摄像头设备返回至浏览器,或,将相机录像失败标识通过虚拟摄像头设备返回至浏览器。
具体地,若相机控制指令为相机录像指令,且相机录像指令为相机开始录像指令,控制相机进行录像操作,将录像数据流通过虚拟摄像头设备返回至浏览器,或,将相机录像失败标识通过虚拟摄像头设备返回至浏览器;若相机控制指令为相机录像指令,且相机录像指令为相机停止录像指令,控制相机停止录像,即停止传输录像数据流,同时将相机录像成功标识通过虚拟摄像头设备返回至浏览器,或,将相机录像失败标识通过虚拟摄像头设备返回至浏览器。
在另一实施例中,若相机控制指令为相机参数设置指令,控制相机配置相机参数设置指令指示的相机参数,将参数是否配置成功的执行结果返回至浏览器。
具体地,若相机控制指令为相机参数设置指令,控制相机配置相机参数设置指令指示的相机参数,将相机参数设置成功标识或相机参数设置失败标识通过虚拟摄像头设备返回至浏览器。
进一步地,在上述步骤120之前,该方法还包括:
步骤130,创建Android容器,并将所述Android相机驱动部署于所述Android容器。
步骤140,运行所述Android相机驱动。
其中,Android容器用于部署Android***的相关程序。
可以理解的是,在Linux***上创建Android容器,将Android相机驱动部署在Android容器内,并运行部署后的Android相机驱动,以实现Android***的Android相机驱动能够在Linux***上运行,使得浏览器能够控制Android相机驱动,进而使浏览器可以通过Android相机驱动使用相机设备,以使在只存在android相机驱动的情况下,浏览器可以使用相机设备,从而实现浏览器能够使用相机设备的目的。
为便于理解,对具体实施方式进行举例说明。在浏览器需要使用相机时,浏览器生成相机控制指令,然后,通过虚拟摄像头设备,接收浏览器发送的相机控制指令,之后,通过相机代理服务,将相机控制指令从虚拟摄像头设备转发至Android相机驱动,以通过Android相机驱动,控制相机执行相机控制指令对应的操作,之后,将相机的执行结果返回至Android相机驱动;通过相机代理服务,将执行结果从Android相机驱动转发至虚拟摄像头设备;将执行结果从虚拟摄像头设备返回至浏览器。此外,创建Android容器,并将Android相机驱动部署于Android容器。此外,Android相机驱动包括Android Camera HALservice、Android Camera Server等等。具体可参见图2,在图2中对本发明实施例进行了层的划分,浏览器、相机代理服务、Android容器属于用户空间层,虚拟摄像头设备属于内核层,相机属于硬件层。
根据本发明实施例的基于Linux的相机控制方法,该方法应用于Linux***,通过虚拟摄像头设备,接收浏览器发送的相机控制指令;基于Android相机驱动,控制相机执行相机控制指令对应的操作,并将相机的执行结果通过虚拟摄像头设备返回至浏览器。通过上述方式,本发明实施例通过虚拟摄像头设备,接收浏览器发送的相机控制指令,进而使浏览器可以通过Android相机驱动使用相机设备,以使在只存在android相机驱动的情况下,浏览器可以使用相机设备,从而实现浏览器能够使用相机设备的目的。
进一步地,基于上述实施例,提出本发明基于Linux的相机控制方法的另一实施例。图3为本发明提供的基于Linux的相机控制方法的流程示意图之二,如图3所示,在本实施例中,上述步骤120中,基于Android相机驱动,控制相机执行所述相机控制指令对应的操作,包括以下步骤121-122:
步骤121,通过相机代理服务,将所述相机控制指令从所述虚拟摄像头设备转发至Android相机驱动。
步骤122,通过所述Android相机驱动,控制相机执行所述相机控制指令对应的操作。
其中,相机代理服务为相机管理程序,其用于在后台对相机进行管理。该相机代理服务位于Linux的用户空间。
具体地,相机代理服务可以通过binder与Android相机驱动进行通信。该binder可以为libgbinder,该libgbinder为binder的一种linux实现。
需要说明的是,相机控制指令在经过虚拟摄像头设备和相机代理服务时,均会经过映射处理,具体根据实际需要进行设定,此处不作具体赘述。
具体地,若相机控制指令为开启相机指令,则将开启相机指令从虚拟摄像头设备转发至Android相机驱动,以使Android相机驱动,控制相机执行开启相机指令对应的操作。
具体地,若相机控制指令为关闭相机指令,则将关闭相机指令从虚拟摄像头设备转发至Android相机驱动,以使Android相机驱动,控制相机执行关闭相机指令对应的操作。
具体地,若相机控制指令为相机预览指令,则将相机预览指令从虚拟摄像头设备转发至Android相机驱动,以使Android相机驱动,控制相机执行相机预览指令对应的操作。
具体地,若相机控制指令为相机拍摄指令,则将相机拍摄指令从虚拟摄像头设备转发至Android相机驱动,以使Android相机驱动,控制相机执行相机拍摄指令对应的操作。
具体地,若相机控制指令为相机录像指令,则将相机录像指令从虚拟摄像头设备转发至Android相机驱动,以使Android相机驱动,控制相机执行相机录像指令对应的操作。
具体地,若相机控制指令为相机参数设置指令,则将相机参数设置指令从虚拟摄像头设备转发至Android相机驱动,以使Android相机驱动,控制相机执行相机参数设置指令对应的操作。
进一步地,在上述步骤121之前,该方法还包括:
在所述Linux***启动后,启动所述相机代理服务。
具体地,在Linux***启动后,启动相机代理服务;通过相机代理服务获取Android相机驱动返回的数据流,并将该数据流发送至虚拟摄像头设备,以供通过虚拟摄像头设备,接收浏览器发送的相机控制指令,并响应该相机控制指令。该数据流为控制相机所需的数据流,此处不作具体赘述。
在一实施例中,所述Linux***包括用户空间层和内核层;所述用户空间层包括所述浏览器、所述相机代理服务、所述Android相机驱动;所述内核层包括所述虚拟摄像头设备。
进一步地,创建Android容器,并将Android相机驱动部署于Android容器。该Android相机驱动包括Android Camera HAL service、Android Camera Server等等。具体可参见图2,此处不再一一赘述。
根据本发明实施例的基于Linux的相机控制方法,该方法应用于Linux***,通过相机代理服务,将相机控制指令从虚拟摄像头设备转发至Android相机驱动;通过Android相机驱动,控制相机执行相机控制指令对应的操作。通过上述方式,将相机控制指令通过相机代理服务进行转发,以通过Android相机驱动,使用相机设备,以使浏览器可以通过Android相机驱动使用相机设备,以使在只存在android相机驱动的情况下,浏览器可以使用相机设备,从而实现浏览器能够使用相机设备的目的。
进一步地,基于上述任一实施例,提出本发明基于Linux的相机控制方法的另一实施例。在本实施例中,上述步骤120中,将所述相机的执行结果通过所述虚拟摄像头设备返回至所述浏览器,包括以下步骤123-125:
步骤123,将所述相机的执行结果返回至所述Android相机驱动。
步骤124,通过相机代理服务,将所述执行结果从所述Android相机驱动转发至所述虚拟摄像头设备。
步骤125,将所述执行结果从所述虚拟摄像头设备返回至所述浏览器。
其中,相机代理服务为相机管理程序,其用于在后台对相机进行管理。该相机代理服务位于Linux的用户空间。
需要说明的是,执行结果在经过虚拟摄像头设备和相机代理服务时,可以进行处理或不作处理,具体根据实际需要进行设定,此处不作具体赘述。
此外,还需要说明的是,只要浏览器访问虚拟摄像头设备时,均会通知相机代理服务启动相机,并返回相机实时拍摄得到的图像数据。
为便于理解,相机控制指令以相机预览指令为例进行说明,浏览器、虚拟摄像头设备、相机代理服务、Android相机驱动的信令交互图如图4所示:
S401,浏览器向虚拟摄像头设备发送开启相机指令。
S402,虚拟摄像头设备向相机代理服务发送开启相机指令。
S403,相机代理服务向Android相机驱动发送开启相机指令。
S404,Android相机驱动向相机代理服务返回执行结果,其中,执行结果包括:相机开启成功标识或相机开启失败标识。此处,执行结果以相机开启成功标识为例进行说明,进而可执行下述步骤。
S405,相机代理服务向虚拟摄像头设备返回相机开启成功标识。
S406,虚拟摄像头设备向浏览器返回开启成功标识。
S407,浏览器向虚拟摄像头设备发送相机预览指令。
S408,虚拟摄像头设备向相机代理服务发送相机预览指令。
S409,相机代理服务向Android相机驱动发送相机预览指令。
S410,Android相机驱动向相机代理服务返回执行结果,其中,执行结果包括:相机拍摄得到的实时预览图像数据与相机预览成功标识,或,相机预览失败标识。其中,以执行结果为相机拍摄得到的实时预览图像数据与相机预览成功标识为例进行说明。
S411,相机代理服务向虚拟摄像头设备返回相机拍摄得到的实时预览图像数据与相机预览成功标识。
S412,虚拟摄像头设备向浏览器返回相机拍摄得到的实时预览图像数据与相机预览成功标识。
为便于理解,此处假设相机设备已开启,相机控制指令以相机拍摄指令为例进行说明,浏览器、虚拟摄像头设备、相机代理服务、Android相机驱动的信令交互图如图5所示:
S501,浏览器向虚拟摄像头设备发送相机拍摄指令。
S502,虚拟摄像头设备向相机代理服务发送相机拍摄指令。
S503,相机代理服务向Android相机驱动发送相机拍摄指令。
S504,Android相机驱动向相机代理服务返回执行结果,其中,执行结果包括:相机拍摄得到的图像数据与相机拍摄成功标识,或,相机拍摄失败标识。其中,以执行结果为相机拍摄得到的图像数据与相机拍摄成功标识为例进行说明。
S505,相机代理服务向虚拟摄像头设备返回相机拍摄得到的图像数据与相机拍摄成功标识。
S506,虚拟摄像头设备向浏览器返回相机拍摄得到的图像数据与相机拍摄成功标识。
此外,相机录像指令和相机参数设置指令与上述相机预览指令和相机拍摄指令基本相同,此处不再一一赘述。
进一步地,在上述步骤123之前,该方法还包括:
在所述Linux***启动后,启动所述相机代理服务。
具体地,在Linux***启动后,启动相机代理服务;通过相机代理服务获取Android相机驱动返回的数据流,并将该数据流发送至虚拟摄像头设备,以供通过虚拟摄像头设备,接收浏览器发送的相机控制指令,并响应该相机控制指令。该数据流为控制相机所需的数据流,此处不作具体赘述。
在一实施例中,所述Linux***包括用户空间层和内核层;所述用户空间层包括所述浏览器、所述相机代理服务、所述Android相机驱动;所述内核层包括所述虚拟摄像头设备。
进一步地,创建Android容器,并将Android相机驱动部署于Android容器。该Android相机驱动包括Android Camera HAL service、Android Camera Server等等。具体可参见图2,此处不再一一赘述。
根据本发明实施例的基于Linux的相机控制方法,该方法应用于Linux***,将相机的执行结果返回至Android相机驱动;通过相机代理服务,将执行结果从Android相机驱动转发至虚拟摄像头设备;将执行结果从虚拟摄像头设备返回至浏览器。通过上述方式,将相机的执行结果通过相机代理服务进行转发,且通过虚拟摄像头设备返回执行结果,以使浏览器可以接收到返回的执行结果,实现了浏览器可以通过Android相机驱动使用相机设备,以使在只存在android相机驱动的情况下,浏览器可以使用相机设备,并返回执行结果的目的。
下面对本发明提供的基于Linux的相机控制装置进行描述,下文描述的基于Linux的相机控制装置与上文描述的基于Linux的相机控制方法可相互对应参照,重复之处不再赘述,具体如图6所示,该基于Linux的相机控制装置包括:
接收模块610,用于通过虚拟摄像头设备,接收浏览器发送的相机控制指令;
控制模块620,用于基于Android相机驱动,控制相机执行所述相机控制指令对应的操作,并将所述相机的执行结果通过所述虚拟摄像头设备返回至所述浏览器。
根据本发明实施例的基于Linux的相机控制装置,通过虚拟摄像头设备,接收浏览器发送的相机控制指令;基于Android相机驱动,控制相机执行相机控制指令对应的操作,并将相机的执行结果通过虚拟摄像头设备返回至浏览器。通过上述方式,本发明实施例通过虚拟摄像头设备,接收浏览器发送的相机控制指令,进而使浏览器可以通过Android相机驱动使用相机设备,以使在只存在android相机驱动的情况下,浏览器可以使用相机设备,从而实现浏览器能够使用相机设备的目的。
进一步地,所述控制模块620还用于通过相机代理服务,将所述相机控制指令从所述虚拟摄像头设备转发至Android相机驱动;通过所述Android相机驱动,控制相机执行所述相机控制指令对应的操作。
进一步地,所述控制模块620还用于在所述Linux***启动后,启动所述相机代理服务。
进一步地,所述控制模块620还用于将所述相机的执行结果返回至所述Android相机驱动;通过相机代理服务,将所述执行结果从所述Android相机驱动转发至所述虚拟摄像头设备;将所述执行结果从所述虚拟摄像头设备返回至所述浏览器。
进一步地,所述基于Linux的相机控制装置还包括:
设备创建模块,用于在所述Linux***启动后,创建所述虚拟摄像头设备。
进一步地,所述基于Linux的相机控制装置还包括:
容器创建模块,用于创建Android容器,并将所述Android相机驱动部署于所述Android容器;
驱动运行模块,用于运行所述Android相机驱动。
进一步地,所述Linux***包括用户空间层和内核层;所述用户空间层包括所述浏览器、所述相机代理服务、所述Android相机驱动;所述内核层包括所述虚拟摄像头设备。
图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(Communications Interface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行基于Linux的相机控制方法,该方法包括:通过虚拟摄像头设备,接收浏览器发送的相机控制指令;基于Android相机驱动,控制相机执行所述相机控制指令对应的操作,并将所述相机的执行结果通过所述虚拟摄像头设备返回至所述浏览器。
此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的基于Linux的相机控制方法,该方法包括:通过虚拟摄像头设备,接收浏览器发送的相机控制指令;基于Android相机驱动,控制相机执行所述相机控制指令对应的操作,并将所述相机的执行结果通过所述虚拟摄像头设备返回至所述浏览器。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的基于Linux的相机控制方法,该方法包括:通过虚拟摄像头设备,接收浏览器发送的相机控制指令;基于Android相机驱动,控制相机执行所述相机控制指令对应的操作,并将所述相机的执行结果通过所述虚拟摄像头设备返回至所述浏览器。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种基于Linux的相机控制方法,其特征在于,应用于Linux***,所述方法包括:
通过虚拟摄像头设备,接收浏览器发送的相机控制指令;
基于Android相机驱动,控制相机执行所述相机控制指令对应的操作,并将所述相机的执行结果通过所述虚拟摄像头设备返回至所述浏览器。
2.根据权利要求1所述的基于Linux的相机控制方法,其特征在于,所述基于Android相机驱动,控制相机执行所述相机控制指令对应的操作,包括:
通过相机代理服务,将所述相机控制指令从所述虚拟摄像头设备转发至Android相机驱动;
通过所述Android相机驱动,控制相机执行所述相机控制指令对应的操作。
3.根据权利要求2所述的基于Linux的相机控制方法,其特征在于,所述通过相机代理服务,将所述相机控制指令从所述虚拟摄像头设备转发至Android相机驱动之前,还包括:
在所述Linux***启动后,启动所述相机代理服务。
4.根据权利要求1所述的基于Linux的相机控制方法,其特征在于,所述将所述相机的执行结果通过所述虚拟摄像头设备返回至所述浏览器,包括:
将所述相机的执行结果返回至所述Android相机驱动;
通过相机代理服务,将所述执行结果从所述Android相机驱动转发至所述虚拟摄像头设备;
将所述执行结果从所述虚拟摄像头设备返回至所述浏览器。
5.根据权利要求1至4任一项所述的基于Linux的相机控制方法,其特征在于,所述通过虚拟摄像头设备,接收浏览器发送的相机控制指令之前,还包括:
在所述Linux***启动后,创建所述虚拟摄像头设备。
6.根据权利要求1至4任一项所述的基于Linux的相机控制方法,其特征在于,所述通过虚拟摄像头设备,接收浏览器发送的相机控制指令之前,还包括:
创建Android容器,并将所述Android相机驱动部署于所述Android容器;
运行所述Android相机驱动。
7.根据权利要求2至4任一项所述的基于Linux的相机控制方法,其特征在于,所述Linux***包括用户空间层和内核层;
所述用户空间层包括所述浏览器、所述相机代理服务、所述Android相机驱动;
所述内核层包括所述虚拟摄像头设备。
8.一种基于Linux的相机控制装置,其特征在于,包括:
接收模块,用于通过虚拟摄像头设备,接收浏览器发送的相机控制指令;
控制模块,用于基于Android相机驱动,控制相机执行所述相机控制指令对应的操作,并将所述相机的执行结果通过所述虚拟摄像头设备返回至所述浏览器。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述基于Linux的相机控制方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述基于Linux的相机控制方法的步骤。
CN202111532130.6A 2021-12-14 2021-12-14 基于Linux的相机控制方法、装置、设备和存储介质 Pending CN114302055A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111532130.6A CN114302055A (zh) 2021-12-14 2021-12-14 基于Linux的相机控制方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111532130.6A CN114302055A (zh) 2021-12-14 2021-12-14 基于Linux的相机控制方法、装置、设备和存储介质

Publications (1)

Publication Number Publication Date
CN114302055A true CN114302055A (zh) 2022-04-08

Family

ID=80966646

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111532130.6A Pending CN114302055A (zh) 2021-12-14 2021-12-14 基于Linux的相机控制方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN114302055A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115002503A (zh) * 2022-08-01 2022-09-02 广州市千钧网络科技有限公司 web端的直播显示方法、装置、电子设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182116B1 (en) * 1997-09-12 2001-01-30 Matsushita Electric Industrial Co., Ltd. Virtual WWW server for enabling a single display screen of a browser to be utilized to concurrently display data of a plurality of files which are obtained from respective servers and to send commands to these servers
CN104484181A (zh) * 2014-12-23 2015-04-01 北京元心科技有限公司 在glibc环境下控制安卓相机的方法、装置及移动设备
WO2019119831A1 (zh) * 2017-12-19 2019-06-27 华为技术有限公司 访问摄像头的方法和装置、服务器、可读存储介质
CN110515667A (zh) * 2019-08-26 2019-11-29 武汉蓝星科技股份有限公司 一种基于linux内核的终端双***显示切换方法及终端双***
CN111625293A (zh) * 2020-05-15 2020-09-04 武汉蓝星科技股份有限公司 一种基于linux内核的终端双***及其硬件访问管理方法
CN112839194A (zh) * 2020-12-25 2021-05-25 广州朗国电子科技有限公司 双***下共享摄像头的方法、装置、一体机及储存介质
CN113220445A (zh) * 2021-03-26 2021-08-06 西安神鸟软件科技有限公司 一种图像或视频数据获取方法及终端设备
CN113452916A (zh) * 2021-06-29 2021-09-28 技德技术研究所(武汉)有限公司 一种Linux兼容Android的摄像头图像处理方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182116B1 (en) * 1997-09-12 2001-01-30 Matsushita Electric Industrial Co., Ltd. Virtual WWW server for enabling a single display screen of a browser to be utilized to concurrently display data of a plurality of files which are obtained from respective servers and to send commands to these servers
CN104484181A (zh) * 2014-12-23 2015-04-01 北京元心科技有限公司 在glibc环境下控制安卓相机的方法、装置及移动设备
WO2019119831A1 (zh) * 2017-12-19 2019-06-27 华为技术有限公司 访问摄像头的方法和装置、服务器、可读存储介质
CN110515667A (zh) * 2019-08-26 2019-11-29 武汉蓝星科技股份有限公司 一种基于linux内核的终端双***显示切换方法及终端双***
CN111625293A (zh) * 2020-05-15 2020-09-04 武汉蓝星科技股份有限公司 一种基于linux内核的终端双***及其硬件访问管理方法
CN112839194A (zh) * 2020-12-25 2021-05-25 广州朗国电子科技有限公司 双***下共享摄像头的方法、装置、一体机及储存介质
CN113220445A (zh) * 2021-03-26 2021-08-06 西安神鸟软件科技有限公司 一种图像或视频数据获取方法及终端设备
CN113452916A (zh) * 2021-06-29 2021-09-28 技德技术研究所(武汉)有限公司 一种Linux兼容Android的摄像头图像处理方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LINUX爱好者: "Anbox:在 Linux 上运行 Android 应用程序的简单方式", pages 2, Retrieved from the Internet <URL:https://blog.csdn.net/zgcr654321/article/details/85219121> *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115002503A (zh) * 2022-08-01 2022-09-02 广州市千钧网络科技有限公司 web端的直播显示方法、装置、电子设备及存储介质
CN115002503B (zh) * 2022-08-01 2023-01-06 广州市千钧网络科技有限公司 web端的直播显示方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN113990354B (zh) 基于Linux的音频控制方法、装置、设备和存储介质
CN108845861B (zh) 虚拟摄像头的实现方法及装置
EP3343364A1 (en) Accelerator virtualization method and apparatus, and centralized resource manager
CN104995927A (zh) 用于构建和使用混合移动应用的***和方法
CN113824888B (zh) Linux兼容Android的相机控制方法、***、装置及介质
CN104516885A (zh) 浏览程序双内核组件的实现方法及装置
CN113448740B (zh) 操作***的电源管理方法及装置
CN111198998A (zh) 基于Ajax请求的网络页面加载方法、装置及***
CN111930283B (zh) 一种消息显示方法及计算设备
CN112596757A (zh) 一种云桌面虚拟机代理组件升级方法、装置及存储介质
CN111367753A (zh) 基于网络通信引擎ice架构的云桌面录屏方法及装置
CN112313614A (zh) 使用终端设备打印虚拟机中的文件的方法、装置及***
CN114302055A (zh) 基于Linux的相机控制方法、装置、设备和存储介质
US20240212255A1 (en) Scene Rendering Method, Apparatus, Device, and System
CN111651763B (zh) 进程监控方法、装置、电子设备及存储介质
WO2023124007A1 (zh) 基于Linux的相机控制方法、装置、设备和存储介质
CN114610446B (zh) 一种自动注入探针的方法、装置及***
CN115629809A (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN115562807A (zh) 一种在kubernetes环境下为安卓容器挂载动态设备的方法及***
CN114726905A (zh) 一种Tbox网络接入Android***的方法、装置、设备及存储介质
CN109933444A (zh) 一种寄宿应用间的即时通讯方法
CN105094896B (zh) 虚拟化平台上客户端启动方法、设备和***
CN109634721B (zh) 一种虚拟机与主机的启动通信方法及相关装置
WO2020064000A1 (zh) 一种消息框的显示方法及装置、终端、存储介质
CN111240805A (zh) 云操作***用户切换处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220406

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant after: BEIJING BYTEDANCE NETWORK TECHNOLOGY Co.,Ltd.

Address before: 2005, floor 2, No. 39, West Street, Haidian District, Beijing 100080

Applicant before: Beijing jingling Information System Technology Co.,Ltd.

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination