在RV1126装debian/ubuntu之后,读取imx415数据
有需求要在1126用python, 并且当然, 要读摄像头, 折腾了半天.
首先, 从哪里拿数据?
1126上面, 拿数据的设备节点有好个,
raw数据读取的点, 就是VICAP设备节点,
isp的尾端, 就是媒体节点为mainpath.
ispp的尾端, 就是媒体节点为rk_ispp_scale0/rk_m_by_pass等
区别是, VICAP是从摄像头直接取数据, 拿到的是raw数据, 张这样:
怎么看怎么别扭是吧, 但是这样是对的, 因为是GB10格式.
mainpath的节点可以从isp后面拿, 但是只支持从当IMX415接在CSI 1的时候, 而易百纳的板子如果要把IMX415接到CSI1, 需要改设备树, 我先想想更简单的办法.
最后就是在ispp的后端, 就是平时rkmedia接数据的地方, 获取数据, 但是需要ispserver, 就是ispp服务, ispp本身在firefly的镜像里面是没有的, 哐哐一通移植, 现在我移植已经有了点心得了, 简单来说, 你看, 在buildroot的镜像中, 其实是有ispserver这个东西的, 包括依赖的库之类, 那么思路就简单了, 直接复制到板子上, 再用ldd ispserver, 看看都依赖啥:
root@firefly:/app# ldd ispserver
linux-vdso.so.1 (0xaefa2000)
libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xa6f6b000)
librkaiq.so => /usr/lib/librkaiq.so (0xa6d6e000)
libgdbus.so => /usr/lib/libgdbus.so (0xa6d53000)
libIPCProtocol.so => /usr/lib/libIPCProtocol.so (0xa6d27000)
libglib-2.0.so.0 => /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0 (0xa6c46000)
libdbus-1.so.3 => /lib/arm-linux-gnueabihf/libdbus-1.so.3 (0xa6c05000)
libjson-c.so.3 => /usr/lib/arm-linux-gnueabihf/libjson-c.so.3 (0xa6bed000)
libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0xa6ae2000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xa6a67000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xa6a3e000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xa6942000)
/lib/ld-linux-armhf.so.3 (0xa6f90000)
libdbus-c++-1.so.0 => /usr/lib/libdbus-c++-1.so.0 (0xa6914000)
librkdb.so => /usr/lib/librkdb.so (0xa6902000)
libsqlite3.so.0 => /usr/lib/arm-linux-gnueabihf/libsqlite3.so.0 (0xa6845000)
libpcre.so.3 => /lib/arm-linux-gnueabihf/libpcre.so.3 (0xa67e8000)
libsystemd.so.0 => /lib/arm-linux-gnueabihf/libsystemd.so.0 (0xa6771000)
libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xa675e000)
librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0xa6748000)
liblzma.so.5 => /lib/arm-linux-gnueabihf/liblzma.so.5 (0xa671e000)
liblz4.so.1 => /usr/lib/arm-linux-gnueabihf/liblz4.so.1 (0xa66f9000)
libgcrypt.so.20 => /lib/arm-linux-gnueabihf/libgcrypt.so.20 (0xa6645000)
libgpg-error.so.0 => /lib/arm-linux-gnueabihf/libgpg-error.so.0 (0xa6621000)
上面是我已经修复了依赖的情况, 如果发现有not found, 直接从buildroot镜像中复制过去就行了. 复制到/usr/lib下面即可.
接下来直接跑起来, 报了个空指针的错误, 一看, 哦, 所得寺内, 原来是找不到xml文件, 这个isp比如配合ispp调制后的xml一起食用才行, 那还不简单, 直接继续从buildroot镜像中, 把这个xml复制到板子的/etc/iqfiles目录, 这个目录默认也是没有的, 直接mkdir创建一个.
然后就简单了, 先用ispserver &命令, 让ispserver在后台跑起来, 然后直接用v4l2-ctl截图即可:
v4l2-ctl -d /dev/video31 --set-fmt-video=width=1920,height=1080,pixelformat=NV12 --stream-mmap=3 --stream-skip=10 --stream-to=test.yuv --stream-count=1 --stream-poll
因为这个video31是scale0, 是可以缩放的, 所以你想要啥大小都行, 格式我这里就用nv12, 但是支持的格式有:
v4l2-ctl --list-formats-ext -d /dev/video31
...
[0]: 'NV16' (Y/CbCr 4:2:2)
[1]: 'NV12' (Y/CbCr 4:2:0)
[2]: 'GREY' (8-bit Greyscale)
[3]: 'YUYV' (YUYV 4:2:2)
[4]: 'UYVY' (UYVY 4:2:2)
就它了, 因为到时候解码会容易点, 太偏僻的编码方式, 看不到图.
一切顺利, 就会看到产生一个test.yuv文件, 大小为192010803/2 = 3110400字节, 然后用yuvviewer打开即可:
拉流的话, 只需要把rkmedia的那套拉到板子上相信也不难了.
最后再说一下, 如果板子装了ubuntu/debian没法直接用adb, 就先装nfs-common, 然后mount 开发pc的nfs盘, 才方便传文件.
另外, 需要参考我之前的文章, 把ubuntu换成firefly的debian, 因为我发现ubuntu用着十分不得劲…
- 分享
- 举报
-
浏览量:3545次2023-04-19 17:17:55
-
浏览量:4725次2023-03-24 22:56:50
-
浏览量:2466次2023-04-28 17:07:50
-
浏览量:1414次2024-01-09 17:43:28
-
浏览量:6225次2022-10-24 14:44:33
-
2023-03-21 09:28:08
-
浏览量:3396次2022-11-22 09:58:36
-
浏览量:3359次2023-03-24 16:30:17
-
浏览量:1165次2023-11-27 14:02:37
-
浏览量:2185次2023-04-16 20:34:36
-
浏览量:7911次2022-07-29 18:09:52
-
浏览量:960次2023-08-30 18:37:06
-
浏览量:1612次2023-12-29 17:51:55
-
浏览量:729次2024-01-02 09:46:50
-
浏览量:5603次2022-06-01 09:36:28
-
浏览量:3983次2021-06-18 16:05:42
-
浏览量:1247次2023-08-31 16:23:55
-
浏览量:1203次2023-12-07 00:53:19
-
浏览量:2486次2023-11-29 08:59:50
- 【详细记录】rv1126 跑通 yolov5
- ADB工具打开闪退解决办法
- RV1126_RV1109——IO电源域配置
- 2-易百纳A201 rv1126开发板rknn Python搭建(rknn python 环境搭建)
- 瑞芯微 rv1126 或者 rv1109 最小系统烧写后一直处于MASKROM
- rv1126 GB28181 invite-bye流程及信令
- 关于EB-RV1126-DC-201开发板快速入门手册V2.2.E中遇到的问题-第三部分(已解决)。
- rv1126 buildroot busybox说明
- RK1126的音频输入和mp3编码
- 如何添加APP到Buildroot里(以瑞芯微rv1126为例)
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
Marc
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明