精华内容
下载资源
问答
  • 安卓设备摄像头驱动

    热门讨论 2013-01-20 15:02:49
    安卓设备摄像头驱动安卓设备摄像头驱动
  • UVCCamera安卓驱动USB摄像头

    万次阅读 热门讨论 2017-05-03 09:36:43
    最近在做一个USB摄像头的项目,需要做一个安卓APP。从来没写过安卓程序,所以只能网上到处搜,搜了一个叫simplewebcam的源码,可能我配置不对一直不出图像。现在搜了一个叫UVCCamera的开源程序,开源了8个例程,每个...

    最近在做一个USB摄像头的项目,需要做一个安卓APP。从来没写过安卓程序,所以只能网上到处搜,搜了一个叫simplewebcam的源码,可能我配置不对一直不出图像。现在搜了一个叫UVCCamera的开源程序,开源了8个例程,每个例程功能各不相同。经过配置终于能出preview了,也能拍照、录像了。

    1.下载开源程序

    下载地址:https://github.com/saki4510t/UVCCamera
    点击图中的clone or download可以直接下载程序的压缩包
    这里写图片描述

    2.安装配置编译环境

    可以用 Gradle build system,android studio,eclipse(不推荐)编译,我选择的是android studio,其实我也不想用,因为我用Gradle build system编译没编译成功,看到网上好多人编译usb摄像头都用的android studio,我也下载了,我下载的版本是android-studio-bundle-162.3871768-windows,这个版本自带SDK。下载好了后安装在C:\Program Files\Android\目录下,SDK放在C:\Android\sdk目录下。
    编译需要NDK,我用android studio下载NDK下载不成功,就手动下载了NDK,版本为android-ndk-r13b-windows-x86_64。在C:\Android\sdk目录下新建ndk-bundle目录,下载的NDK解压后的内容放在ndk-bundle目录下
    这里写图片描述

    3.编译

    打开android studio将下载的工程导入,在local.properties中添加NDK路径
    这里写图片描述
    在File-Project Structure里添加NDK路径
    这里写图片描述
    然后选择工程里的任何一个就可以编译成功了。例如编译的工程3、4支持拍照、录像;编译的工程8支持录像、设置对比度、设置亮度。下图为工程8的界面
    这里写图片描述
    其中拍摄的照片位于手机的 文件管理中的 DCIM/USBCameraTest目录下
    录制的视频位于手机的 文件管理中的 Movies/USBCameraTest目录下

    官网上介绍编译方法为
    这里写图片描述
    这里写图片描述

    展开全文
  • 这是手机做摄像头驱动和程序,用于安卓手机通过无线,蓝牙,USB数据线连接电脑,以便把手机当电脑摄像头使用。
  • 用高通SDK做了一个识别模型的ar,发布到安卓端后默认调用手机摄像头没什么问题,公司的硬件是一个ar眼镜,不知道怎么去调用第三方摄像头驱动,有没有大佬来解答一下,就相当于把摄像头转移到眼镜的摄像头,跪求大佬...
  • 安卓外接摄像头

    2015-07-07 13:33:57
    现在还没想到怎么做,可能底层驱动和硬件的中间应用层需要写个app,看看再说
    现在还没想到怎么做,可能底层驱动和硬件的中间应用层需要写个app,看看再说
    
    展开全文
  • 实现安卓手机做摄像!!1,先安装手机usb驱动 2,安装pc端
  • 这段时间开始搞安卓camera底层驱动了,把以前的的Linux视频驱动回顾一下,本篇主要概述一下vfl2(video for linux 2). 一. V4L2框架: video for linux version 2虚拟视频驱动vivi.c分析:1.分配video_devic...

    转载于: http://www.cnblogs.com/blogs-of-lxl/p/4946113.html

     

    这段时间开始搞安卓camera底层驱动了,把以前的的Linux视频驱动回顾一下,本篇主要概述一下vfl2(video for linux 2).

    一. V4L2框架: video for linux version 2
    虚拟视频驱动vivi.c分析:
    1.分配video_device
    2.设置
    3.注册:video_register_device

    vivi_init
        vivi_create_instance
            v4l2_device_register   // 不是主要, 只是用于初始化一些东西,比如自旋锁、引用计数
            video_device_alloc
            // 设置
              1. vfd:
                .fops           = &vivi_fops,
                .ioctl_ops  = &vivi_ioctl_ops,
                .release = video_device_release,
              2.
                vfd->v4l2_dev = &dev->v4l2_dev;
              3. 设置"ctrl属性"(用于APP的ioctl):
                 v4l2_ctrl_handler_init(hdl, 11);
                 dev->volume = v4l2_ctrl_new_std(hdl, &vivi_ctrl_ops,
                   V4L2_CID_AUDIO_VOLUME, 0, 255, 1, 200);
                 dev->brightness = v4l2_ctrl_new_std(hdl, &vivi_ctrl_ops,
                   V4L2_CID_BRIGHTNESS, 0, 255, 1, 127);
                 dev->contrast = v4l2_ctrl_new_std(hdl, &vivi_ctrl_ops,
                   V4L2_CID_CONTRAST, 0, 255, 1, 16);                        
            video_register_device(video_device, type:VFL_TYPE_GRABBER, nr)
                __video_register_device
                    vdev->cdev = cdev_alloc();
                    vdev->cdev->ops = &v4l2_fops;
                    cdev_add
                    
                    video_device[vdev->minor] = vdev;

              if (vdev->ctrl_handler == NULL)
               vdev->ctrl_handler = vdev->v4l2_dev->ctrl_handler;
                    
                   

    分析vivi.c的open,read,write,ioctl过程
    1. open
    app:     open("/dev/video0",....)
    ---------------------------------------------------
    drv:     v4l2_fops.v4l2_open
                vdev = video_devdata(filp);  // 根据次设备号从数组中得到video_device
                ret = vdev->fops->open(filp);
                            vivi_ioctl_ops.open
                                v4l2_fh_open

    2. read
    app:    read ....
    ---------------------------------------------------
    drv:    v4l2_fops.v4l2_read
                struct video_device *vdev = video_devdata(filp);
                ret = vdev->fops->read(filp, buf, sz, off);

    3. ioctl
    app:   ioctl
    ----------------------------------------------------
    drv:   v4l2_fops.unlocked_ioctl
                v4l2_ioctl
                    struct video_device *vdev = video_devdata(filp);
                    ret = vdev->fops->unlocked_ioctl(filp, cmd, arg);
                                video_ioctl2
                                    video_usercopy(file, cmd, arg, __video_do_ioctl);
                                        __video_do_ioctl
                                            struct video_device *vfd = video_devdata(file);
                                            根据APP传入的cmd来获得、设置"某些属性"v4l2_ctrl_handler的使用过程:
        __video_do_ioctl
            struct video_device *vfd = video_devdata(file);     case VIDIOC_QUERYCTRL:
         {
          struct v4l2_queryctrl *p = arg;
        
          if (vfh && vfh->ctrl_handler)
           ret = v4l2_queryctrl(vfh->ctrl_handler, p);
          else if (vfd->ctrl_handler)  // 在哪设置?在video_register_device
           ret = v4l2_queryctrl(vfd->ctrl_handler, p);
                       // 根据ID在ctrl_handler里找到v4l2_ctrl,返回它的值...}
                                                    
                                                      

    [18721.327983] usb 2-1: USB disconnect, address 4
    [18724.929301] usb 2-1: new full speed USB device using uhci_hcd and address 5
    [18725.196200] usb 2-1: configuration #1 chosen from 1 choice
    [18725.204999] uvcvideo: Found UVC 1.00 device <unnamed> (1b3b:2977)
    [18725.222065] input: UVC Camera (1b3b:2977) as /devices/pci0000:00/0000:00:07.2/usb2/2-1/2-1:1.0/input/input7
    [25252.578719] usb 2-1: USB disconnect, address 5

    由以上usb摄像头插入的dmesg打印信息,搜索UVC关键字得到相关代码:uvc.driver.c ->uvc_driver结构体->video_register_device方法。

     

    二、如何写v4l2驱动:

     ①构造、设置、注册: v4l2_device : v4l2_device_register, v4l2_device

     ②分配:video_device, video_device_alloc

     ③设置: a. vfd->v4l2_dev

         b. vfd: .fops = ***.open/read/write  <-上层app调用

              .ioctl_ops  <-驱动程序 v4l2_fops {open,read,write,"ioctl"}

           c.APP通过ioctl来设置,获得亮度 等信息。

        驱动程序: v4l2_ctrl : 属性。

           v4l2_ctrl_handler : 管理 ===>(1)初始化:v4l2_ctrl_handler_init

                            (2)设置:v4l2_ctrl_new_std , v4l2_ctrl_new_custom ,设置创建v4l2_ctrl并加入链表。

                              (3)跟vdev关联: v4l2_dev.ctrl_handler = hdl  

                              video_dev -> v4l2_dev.

         

    转载于:https://www.cnblogs.com/tureno/articles/6890929.html

    展开全文
  • 系统平台:Android6.0;...我们测试的设备是自己的,摄像头是USB摄像头,不过RK在驱动做了UVC的封装,所以在RK平台下调用摄像头不用UVC也是可以的,但是这里需要注意的是RK在驱动里最大支持的摄像头数写...

    系统平台:Android6.0;

    CPU:Rockchip 3288;

    Android Studio项目

    这个Demo是用来检测Android设备的双目摄像头是不是好使,很简单的一个Demo,下载下来直接用就行;

    我们测试的设备是自己的,摄像头是USB摄像头,不过RK在驱动做了UVC的封装,所以在RK平台下调用摄像头不用UVC也是可以的,但是这里需要注意的是RK在驱动里最大支持的摄像头数写的是1,如果需要调用两个摄像头的同学碰到Camera.open(0)可以但是Camera.open(1)报错的情况请修改Android系统驱动,具体方法请看K神文章:https://blog.csdn.net/kris_fei/article/details/53515473

    Demo的界面很简单,就是显示两个摄像头的画面,因为我只需要看到画面就行所以对画面尺寸没有太多的要求,这里有需要的可以自己改:

    布局:中规中矩的两个SurfaceView

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.charleyszc.twoCameraDemo.mobile.activity.MainActivity">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">
            <SurfaceView
                android:id="@+id/redsurface"
                android:layout_width="fill_parent"
                android:layout_height="450dp"/>
            <SurfaceView
                android:id="@+id/colorsurface"
                android:layout_width="fill_parent"
                android:layout_height="450dp" />
    
        </LinearLayout>
    
    </android.support.constraint.ConstraintLayout>

    在MainActivity里的onCreate中调用方法启用摄像头,因为是Android6.0,所以我做了个权限判断(但是我这个系统编译时是debug版的,好像不用也行):

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            surfaceViewRed = findViewById(R.id.redsurface);
            surfaceViewColor = findViewById(R.id.colorsurface);
            ButterKnife.bind(this);
            initView();
            //动态权限
            if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
                ActivityCompat.requestPermissions(this,
                        new String[]{Manifest.permission.CAMERA}, 1);
            }else {
                initRedCamera(); //0
                initColorCamera(); //1
                setRedCamera(redCamera);
                setColorCamera(colorCamera);
            }
            initThread();
        }

     完整的代码-->https://github.com/YuGongCharley/twoCamerasDemo

    APK下载地址-->https://download.csdn.net/download/charleyszc/11461385

    ---------------------------------------2020/05/01--------------

    Android的代码做了更新 详细解析可以参考新的文章:https://blog.csdn.net/Charleyszc/article/details/105829397

    如果有问题希望可以指出,谢谢

     

     

    展开全文
  • 1,要想调用摄像头首先要打开摄像头驱动,如果用户允许则可以使用。 2,定义WebCamTexture的变量用于捕获单张照片。 3,连续捕获须启用线程。 实现代码:using UnityEngine; using System.Collections; using ...
  • USB摄像头应用--可以把安卓手机装换为电脑的USB摄像头或网络摄像头,win10亲测可用,若无法连接则请在电脑上安装dtb驱动
  • 安卓添加USB外置UVC摄像头

    千次阅读 2019-10-23 09:13:48
    实现的方法有很多种,按步骤来看...1.首先下载个安卓USB检测程序,插入UVC摄像头,在程序中检测看是在/dev/video中新增了节点,还是在/bus/usb下新增了节点。如果没新增video节点,则没有UVC驱动。如果你有很多个u...
  • 笔记本电脑有点老了,摄像头好像坏了,重装了一下午驱动都没弄好,换了ubuntu系统也打不开摄像头,然后就放弃了,于是想到了能不能用android手机当笔记本电脑的摄像头?然后百度了一通发现了一套软件DroidCam,非常...
  • 忙了几天,今天在公司居然没...直到下午才开始有点活干,改瑞芯微的摄像头驱动,偶滴天!!特别麻烦,摄像头的代码好几千行,果真不太好看,驱动想改也不好改,看看我的测试效果就知道了,显示的图片是反的,又到了...
  • 第七章 Led为我闪烁 尽管Linux 驱动直接与硬件打交道,但并不是 Linux 驱动直接向硬件中的内存写数据, 而是与本...声卡、摄像头等〉在主机内 存中的映射。例如,在 Ubuntu Linux 上运行的驱动只需要访问运行 Ubun...
  • 使用USB连接要稍微麻烦一点,先做一点准备工作:下载adb客户端及驱动,解压缩后,把里面 adb.exe 和 AdbWinApi.dll 两个文件(搜索一下你的电脑,一般用安卓手机的电脑里都有这东西)放到系统盘的 windows/system32 ...
  • 使用 USB 接口的 UVC 摄像头进行图像采集, 只有配置好驱动, 才能进行图像的采集和帧提取, 在图像采集时, 需要加载 USB 驱动和 V4L2 摄像头驱动。 进入 Device Drivers --> Multimedia support,选择V4L2 sub-...
  • 这段时间开始搞安卓camera底层驱动了,把以前的的Linux视频驱动回顾一下,本篇主要概述一下vfl2(video for linux 2).一. V4L2框架: video for linux version 2虚拟视频驱动vivi.c分析:1.分配video_device2.设置3....
  • USB 检测外接摄像头

    千次阅读 2019-10-12 16:04:21
    1.首先下载个安卓USB检测程序,插入UVC摄像头,在程序中检测看是在/dev/video中新增了节点,还是在/bus/usb下新增了节点。如果没新增video节点,则没有UVC驱动。 2.如果可以连电脑,在Dos命令下:AndroidSDK\...
  • 目前官方已经适配了这款1300万像素的摄像头(型号:OV13850),同时开发者也可以自行写驱动去适配其他MIPI接口的摄像头,官方维护的Linux源码提供了多款摄像头驱动源码,安卓系统下,可以看安卓源码RKDocs文件夹下...
  • 采用分布式网络系统的方式,在手机端安装视频客户端软件,在远程服务器端安装camera服务器软件,采集摄像头实时视频,进行H264编码,并以自定义TCP服务器形式发布,手机端则通过客户端的软件,输入服务器的IP地址,...
  • 硬件:粤嵌开发板、USB无线网卡、USB摄像头安卓手机、U盘(可选) 软件:集成arm-linux-gcc的Ubuntu虚拟机、SecureCRT、QTAPP 一、工程目录介绍 工程下载地址:https://wws.lanzoui.com/iKx5bpq2s0b 文件夹/...
  • ADB驱动驱动驱动

    2012-12-23 09:31:05
    安卓手机如何做电脑摄像头?_百度知道 5个回答 - 提问时间: 2012年02月22日 最佳答案: 在手机和PC上安装上各自的软件: 打开PC端软件,设置连接方式,这里选择蓝牙。 运行连接上手机和PC的蓝牙设备,确认蓝牙设备连接状态...
  • opkg install mjpg-streamer 安装摄像头驱动(如果已经安装了,就可以不用安装!) mjpg_streamer -i "input_uvc.so /dev/video0 -r 640x480 " -o "output_http.so -p 8080 -w /www/webcam" 启动摄像头,如上图表示...
  • camera驱动解析

    2020-08-12 14:39:29
    分类专栏: 安卓camera驱动 文章标签: 摄像头手机camera驱动 Camera模块解析之驱动篇 1 手机摄像头功能概述 手机摄像头功能由多个功能模块组成,主要三个部分,采集,加工,显示。 (1)采集部分由感光的sensor完成...
  • adb客户端及驱动

    热门讨论 2012-12-12 13:43:27
    用于adb应用开发,安卓手机开发需要用到的驱动安卓手机做PC摄像头使用需要用到的驱动
  • 1、首先下载个安卓USB检测程序,插入UVC摄像头,在程序中检测看是在/dev/video中新增了节点,还是在/bus/usb下新增了节点,如果没新增video节点,则没有UVC驱动; 2、如果没有新增节点,有3个办法:一是自己写一个...

空空如也

空空如也

1 2 3 4
收藏数 62
精华内容 24
关键字:

安卓摄像头驱动