最近有个需求,要用android 来驱动外部usb摄像头。emmmmmmm......  港真,突然听到这么个需求,有点蒙~~于是google github转有没有类似需求的文章。诶嘿 还真有。 还有开源的项目。项目地址:传送门。

事前要检测摄像头是不是好用。这个apk能直接驱动usb摄像头。 下载链接: 传送门 。但是这个apk找不到源码诶。

接下来就按照readme中的介绍开始测试demo。好久不用eclipse啦  就只用android studio(AS)做的测试

1.git或者直接下载zip 把源码搞到本地。然后用AS打开项目。划重点了。。项目要配合NDK。ndk的配置方法大家自行搜索,本文就不在多说这块内容。

在AS内打开项目后。会有多个usbCameraTest 的module。 每个mudule 里面有不同的内容,拍照、 视频、设置亮度等等。但是一般能拿到摄像头的预览内容 剩下的都好说了。

2.接下来 随便run个module 开始测试能不能驱动自己的测试摄像头。我选的usbCameraTest3来做的测试。

期间遇到的问题

1.ndk版本要用r14 的如果用其他版本的会有各种莫名其妙的问题。用r14版本就稳了。我用的是r14b的版本。下载地址:传送门。

2.点击页面上的开关button 报错 could not open camera:err=-1  。  在libuvccamera/src/main/jni/Application.mk 中 将NDK_TOOLCHAIN_VERSION := 4.9 的注释放开后,重新编译。

3.再次点击页面上的开关button。页面还不出preview。依旧一片黑。咋子个问题哦。。这时候 注意logcat里面的输出问题。

这是摄像头支持的分辨率,但是在java代码中默认设置的是:

这项目中默认的 宽高比好像和摄像头支持的不一样诶。emmm 是真的不一样。将项目中的宽高比改为摄像头支持的随便一组。再次尝试运行~~~~。bingo~~preview成功出来了。。撒花撒花。

等等等等~~

preview确实出来了。但是需求可不是单单纯纯的看就完事儿了。。我们需要视频的二进制流来做图像处理才行啊。

在源码中继续翻。在AbstractUVCCameraHandler 类中 找到了

曙光就在眼前了。将这ByteBuffer 转成byte[] 。 做图像的基本数据格式就满足了。将该方法改造下。放到自己需要的地方做个回调。需要的数据就出来了。

我是用着数据做人脸分析的。把数据放进去 图像中其实是有人脸的,但是分析人脸的接口返回的数据是没人脸。。。。。。脑袋一晃  发现这事儿没这么简单。 人脸识别的api 需要 二进制流的灰度图(NV21格式数据)。但是摄像头出的数据是不是NV21格式的呢???? 在AbstractUVCCameraHandler 类中。

哇 真滴是 ~~~找这设置图像输出格式真是费了老鼻子劲儿了。在这设置成NV21 格式就好了。

在这还有个坑。第一家人脸识别sdk用 YUV420SP格式的输出数据能做识别。第二家人脸识别sdk就需要NV21 格式的了。在次 用usb摄像头做识别的同学要注意了。

到此~~需求的基本内容算是搞定了。。。奖励自己下 晚饭加个肯德基手枪腿!!

android pc摄像头驱动,Android 驱动USB摄像头相关推荐

  1. php调用linux摄像头,Linux_Linux中开发USB摄像头驱动详解,USB摄像头以其良好的性能和低 - phpStudy...

    Linux中开发USB摄像头驱动详解 USB摄像头以其良好的性能和低廉的价格得到广泛应用.同时因其灵活.方便的特性,易于集成到嵌入式系统中.但是如果使用现有的符合Video for Linux标准的驱 ...

  2. linux开发板usb摄像头,ARM9+Linux下USB摄像头图像采集

    终于实现了在Micro2440+Linux2.6.29环境下通过NFS文件系统实现USB摄像头图像采集.在此,做一个总结,以备后续参考. 实验条件:RedHat9.0(内核版本2.4.18),Micr ...

  3. java usb摄像头_Android中多USB摄像头解决方案——UVCCamera源码分析(一)

    前言 前段时间捣鼓多USB摄像头的方案,一阵手忙脚乱算是勉强跑起来了.整个流程主要还是依赖于网上大神们封装好的库.之前想仔细分析一下整套底层实现,然而一直拖到现在--也没有完全看完,于是想着干脆分阶段 ...

  4. android 访问usb摄像头,从Android中的webview访问外部USB摄像头

    USB相机驱动程序和相机选择可能存在问题,而不是权限问题. > USB相机驱动程序 第一步是确保您的USB摄像头被检测到并且正在您的设备上运行.您没有说明您是否确认了这一点.我的理解是andro ...

  5. 【高分】ubuntu 、打开USB摄像头、Linux、USB摄像头驱动

    一.让系统可以识别到usb摄像头设备     打开终端,输入命令:ls /dev/v*,则可看到"/dev/video0",表示成功驱动摄像头. 如果没有的话,拔掉摄像头,重新插上 ...

  6. linux查看网络摄像头,用网络查看usb摄像头的图像

    最近要把那个usb摄像头简单做成一个网络摄像头 板子里的服务端暂时用的c,客户端用的qt 现在的传输方式是: 两个线程,一个负责采集图像数据,然后转换格式压缩成jpeg文件,一个320*240的图片平 ...

  7. linux usb摄像头 源码,Linux USB摄像头驱动实现源码分析

    Spac5xx的实现是按照标准的USB VIDEO设备的驱动框架编写(其具体的驱动框架可参照/usr/src/linux/drivers/usb/usbvideo.c文件),整个源程序由四个主体部分组 ...

  8. android设备外接多个usb摄像头

    转自:https://youshaohua.com/post/android-device-external-multiple-USB-camera 代码访问 OTG USB camera https ...

  9. 基于3.14内核usb摄像头驱动的移植

    一. 移植环境 1.主机: Ubuntu 12.04 64bit 发行版 2.目标机:fs4412(cortex_a9)平台 3.交叉编译器:arm-none-linux-gnueabi 4.内核版本 ...

  10. NanoPi NEO Air使用十五:使用V4L2驱动USB摄像头

    USB摄像头初识   Linux UVC driver(uvc) 该驱动适用于符合USB视频类(USB Video Class)规范的摄像头设备,它包括V4L2内核设备驱动和用户空间工具补丁.大多数大 ...

最新文章

  1. java生成缩略图类源码
  2. 点击左边tab右侧跟着变化_通过代码判断阿里巴巴国际站右侧P4P产品的位置
  3. php开源mvccms_轻松理解MYSQL MVCC 实现机制
  4. STM32-GPIO篇
  5. 实时搜索专家Krzana正式进军金融大数据市场
  6. kettle分布式部署_kettle服务器集群
  7. Django中的swagger文档
  8. 微信表情包的制作以及50*50像素图片太模糊的处理方法
  9. html messagebox确定取消,提示组件 - MessageBox 弹框 - 《ElementUI v2.15 使用手册》 - 书栈网 · BookStack...
  10. 第三章 原位正三和弦的连接
  11. nginx配置不生效
  12. 内网渗透学习-Windows信息收集
  13. 太用力的人跑不远(转)
  14. Android中TextView的SetText()方法注意事项
  15. Splatter Painting题目代码
  16. UNITY 使用代码更换地形中草的贴图
  17. 计算机流水线生产管理知识,生产流水线管理应注意的六个方面
  18. 思科计算机网络题目及翻译3,思科计算机网络题目及翻译.doc
  19. 一个Python用户的天文相关Python资料收集
  20. 2021年全球医用非织造布收入大约3140.4百万美元,预计2028年达到4497百万美元

热门文章

  1. 安搭Share:霜降来,寒意到
  2. python根据关键词实现信息检索推荐(使用深度学习算法)
  3. Makefile:14: config-host.mak: No such file or directory
  4. 记一次武汉科技大学ctf新手赛 wuctf2020
  5. 一元三次方程求解matlab_浅谈三次函数的性质及其在高考中的应用
  6. REST ful风格总结(在逍遥子的基础上~只供自己简单总结,详情请看原文)
  7. 认识心理学上的自我界限(学习记录)
  8. fastlane php,fastlane安装与初体验
  9. 塔城地区谷歌高清卫星地图下载
  10. js判断是否微信登陆