写在前面:
两年前(2019)任职的公司在rk3288板子5.1系统上搞过UVC多路摄像头,那时自己还比较菜,可以看下这篇博客:https://blog.csdn.net/qq_24712507/article/details/92999760
目的是获取多路摄像头数据流做AI的,但是那篇博客还是比较简单的,因为他是在工业板上搞的,而且还是5.1。。。大家都是Android开发,不说废话了。
本篇文章是在安全性更高的移动端手机、平板上搞的,先放图。(图我就不放了,做生物识别的,不太方便公开)
环境:小米平板4 晓龙660 2.2GHz
系统:MIUI10 android8.1
难度和板子不是一个量级,硬件性能提升好几倍(这句有点废话了,价格都差了很多。。。),并且是兼容板子的。
本来我们是打算用C++写V4L2开的,工业板都撸完了想进一步适配下移动端,可惜移动端太难了。(坑太多了,就不一一讲述了)
正文:
首先双手奉上参考资料,给大神前辈们跪了:
UVC C++底层库(手撸必备):https://github.com/libuvc/libuvc
经典的UVC-Camera库:https://github.com/saki4510t/UVCCamera
如果你实在看不懂的话,可以看下这位大神的代码:https://github.com/jiangdongguo/AndroidUSBCamera 这是他封装的SDK
https://jiangdg.blog.csdn.net/article/details/78324181 这是他的博客
网上有一款App叫UsbWebCamera是免费的,上面这个代码实现的效果跟这个一样。
我的项目也是因为他的代码受到的启发,最起码知道能做,进而在这个技术方向上做出来的。在这里感谢下。
除此之外,网上其他的资源,全部不推荐,包括墙外的。上面三个git涵盖了NDK、SDK以及应用层的封装了,就是针对UVC的。网上其他的资源要么封装的稀烂,要么跟我似的是项目里面扒出来的,不简洁。
这两天有展会,在公司没什么事,下周继续补充。