当前位置: 首页 > news >正文

摄像头应用测试

作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生在读,研究方向无线联邦学习
擅长领域:驱动开发,嵌入式软件开发,BSP开发
作者主页:一个平凡而乐于分享的小比特的个人主页
文章收录专栏:RV1106_LINUX,本专栏为本栏为RV1106_LINUX开发,学习记录
欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖

Luckfox Pico Max适配的是 SC3336 3MP Camera (A) 摄像头,这款摄像头采用思特威SC3336感光芯片,支持3百万像素。具备高灵敏度,高信噪比低照度的性能,能够呈现更加细腻、色彩更加逼真的夜视全彩成像,更好地适应环境光线变化。当前推流仅适用于 buildroot系统。

1. 查看摄像头

1.首先连接摄像头,请确保连接正常后开机。系统将自动识别摄像头,注意接线不要接反了。

LuckFox PicoMax 开发板连接摄像头时,请确保摄像头排线的金属面朝向开发板芯片。

在这里插入图片描述

2.查看摄像头,若成功识别摄像头会生成 rkipc.ini 文件。

在这里插入图片描述

3.获取设备的 IP 地址
在这里插入图片描述
Luckfox Pico Max 默认 IP 为 172.32.0.93,网口ip为10.230.149.130

2. 配置RNDIS虚拟网口

1.Windows 安全中心—>防火墙和网络保护—>关闭防火墙。

2.配置 RNDIS 网卡的静态IP,打开设置—>高级网络设置—>更改适配器选项。

3.网卡一般是类似这样的名字Remote NDIS based nternet Sharing Device,右键属性。

在这里插入图片描述

4.双击 internet 协议版本(TCP/IPv4),IPV4地址设置为 172.32.0.100,避免和设备冲突。

在这里插入图片描述
在这里插入图片描述

3. 使用VLC media player 推流

  1. 下载并安装 VLC media player 。

  2. 打开 VLC media player 软件,在媒体—>打开网络串流

    在这里插入图片描述

  3. 输入默认的 IP 地址:rtsp://172.32.0.93/live/0

  4. 也可以使用 eth0 的 IP地址串流: rtsp://10.230.149.130/live/0

  5. 点击播放,即可看到摄像头画面,可以旋转镜头来调焦

摄像头测试

4. V4L2-utils 工具包安装

V4L2-utils 是一组用于测试和配置 V4L2 设备的实用工具,它们通过命令行界面提供了对 V4L2 接口的访问。Luckfox SDK 的buildroot包中已经包含了 v4l2-utils软件包中的工具,但需要手动开启它,进入到/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6下输入make menuconfig,进入buildroot图形化界面菜单选项(注意:必须先将下载好的源码编译一次才会有/buildroot-2023.02.6

在 buildroot 目录添加 V4L2,使用关键字"libv4l2"进行搜索。
在这里插入图片描述

根据路径使能V4L2-utils 工具包

在这里插入图片描述

注意libv4l和v4l-utils tools都要选上选上后,一定要保存再退出,继续输入

make ARCH=arm savedefconfig
cp .config ./configs/luckfox_pico_defconfig

然后重新编译,编译完成后会在/luckfox-pico/output下生成编译产物

output/
├── image
│   ├── download.bin ---------------- 烧录工具升级通讯的设备端程序,只会下载到板子内存
│   ├── env.img --------------------- 包含分区表和启动参数
│   ├── uboot.img ------------------- uboot镜像
│   ├── idblock.img ----------------- loader镜像
│   ├── boot.img -------------------- kernel镜像
│   ├── rootfs.img ------------------ kernel镜像
│   └── userdata.img ---------------- userdata镜像
└── out├── app_out --------------------- 参考应用编译后的文件├── media_out ------------------- media相关编译后的文件├── rootfs_xxx ------------------ 文件系统打包目录├── S20linkmount ---------------- 分区挂载脚本├── sysdrv_out ------------------ sysdrv编译后的文件└── userdata -------------------- userdata

将系统镜像烧录到开发板

5. v4l2-ctl使用

1.列出摄像头的设备

# v4l2-ctl --list-devices
rkisp-statistics (platform: rkisp):/dev/video19/dev/video20rkcif-mipi-lvds (platform:rkcif):/dev/media0rkcif (platform:rkcif-mipi-lvds):/dev/video0/dev/video1/dev/video2/dev/video3/dev/video4/dev/video5/dev/video6/dev/video7/dev/video8/dev/video9/dev/video10rkisp_mainpath (platform:rkisp-vir0):/dev/video11/dev/video12/dev/video13/dev/video14/dev/video15/dev/video16/dev/video17/dev/video18/dev/media1
  • rkisp_mainpath:CSI摄像头

2.列出摄像头支持的格式

# v4l2-ctl --device=/dev/video11 --list-formats-ext
ioctl: VIDIOC_ENUM_FMTType: Video Capture Multiplanar[0]: 'UYVY' (UYVY 4:2:2)Size: Stepwise 32x16 - 2304x1296 with step 8/8[1]: 'NV16' (Y/CbCr 4:2:2)Size: Stepwise 32x16 - 2304x1296 with step 8/8[2]: 'NV61' (Y/CrCb 4:2:2)Size: Stepwise 32x16 - 2304x1296 with step 8/8[3]: 'NV21' (Y/CrCb 4:2:0)Size: Stepwise 32x16 - 2304x1296 with step 8/8[4]: 'NV12' (Y/CbCr 4:2:0)Size: Stepwise 32x16 - 2304x1296 with step 8/8[5]: 'NM21' (Y/CrCb 4:2:0 (N-C))Size: Stepwise 32x16 - 2304x1296 with step 8/8[6]: 'NM12' (Y/CbCr 4:2:0 (N-C))Size: Stepwise 32x16 - 2304x1296 with step 8/8

3.显示摄像头参数

# v4l2-ctl --device=/dev/video11 --list-ctrlsImage Processing Controlspixel_rate 0x009f0902 (int64)  : min=0 max=1000000000 step=1 default=1000000000 value=101250000 flags=read-only, volatile

4.录制视频

#CSI 摄像头(需要先关掉自带的RKIPC)
killall rkipc
v4l2-ctl --device=/dev/video11 --set-fmt-video=width=640,height=480,pixelformat=NV12 --stream-mmap --stream-to=video50.yuv --stream-count=60
  • -device:摄像头对应设备文件
  • --set-fmt-video:指定了宽高及 pxielformat (标识像素格式)
  • --stream-mmap:指定 buffer的类型为 mmap,即由内核分配的物理连续的或经过 iommu 映射的buffer
  • --stream-to:指定帧数据保存的文件路径
  • --stream-count:指定抓取的帧数,不包括–stream-skip丢弃的数量

5.如果出现“The pixelformat ‘UYVY’ is invalid” 字样说明摄像头不支持此格式,使用第二步的方法查看摄像头支持的格式

6.看到<<<<<<<<<<<<<<<<<<<<<<<<<< 25.00 fps 说明成功录制视频,可以成功生成video50.yuv视频文件

# killall rkipc
# v4l2-ctl --device=/dev/video11 --set-fmt-video=width=640,height=480,pixelforma
t=NV12 --stream-mmap --stream-to=video50.yuv --stream-count=60
<<<<<<<<<<<<<<<<<<<<<<<<<< 25.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<<< 25.00 fps
<<<<<<<<
# ls
bin            lib32          oem            run            usr
data           lib64          opt            sbin           var
dev            linuxrc        proc           sys            video50.yuv
etc            media          rockchip_test  tmp
lib            mnt            root           userdata

6. 显示视频

上面抓取的图片或者视频可以拷贝到 Ubuntu 中借助借助工具ffplay查看。ffplay 是 FFmpeg 工具包中的一个命令行工具,用于播放音频和视频文件。它基于 FFmpeg 库,支持广泛的音视频格式,能够在命令行中实时播放或预览多媒体内容。

首先我们要让虚拟机和开发板在同一网段下

在这里插入图片描述

可以看到笔者的虚拟机ip地址为192.168.10.100,因此我们开发板IP地址

在这里插入图片描述

进入root目录,创建一个文件夹与虚拟机的目录进行nfs挂载,将生成的video50.yuv文件拷贝到虚拟机的挂载目录中

在这里插入图片描述

1.播放视频

ffplay -video_size 640x480 -pixel_format nv12 -framerate 10 -i video50.yuv
  • -video_size size 设置帧尺寸 设置帧尺寸大小
  • -pixel_format format 设置像素格式
  • -framerate 10: 设置视频的帧率为 10 帧/秒

在这里插入图片描述

2.转换视频格式

ffmpeg -f rawvideo -pixel_format yuyv422 -video_size 640x480 -framerate 30 -i video.yuv -c:v libx264 output.mp4

在这里插入图片描述

生成MP4格式,使用mpv命令进行播放

mpv output.mp4

摄像头MP4视频测试

相关文章:

摄像头应用测试

作者简介&#xff1a; 一个平凡而乐于分享的小比特&#xff0c;中南民族大学通信工程专业研究生在读&#xff0c;研究方向无线联邦学习 擅长领域&#xff1a;驱动开发&#xff0c;嵌入式软件开发&#xff0c;BSP开发 作者主页&#xff1a;一个平凡而乐于分享的小比特的个人主页…...

Golang框架HTTP客户端框架zdpgo_resty发送表单请求

核心代码 这里通过字典传递了一个简单的表单数据。 发送的是POST请求。 resp, err : client.R().SetFormData(map[string]string{"username": "jeeva","password": "mypass",}).Post("http://127.0.0.1:3333/login")fmt.P…...

【机器学习300问】99、多通道卷积神经网络在卷积操作时有哪些注意事项?

一、多通道卷积神经网络示例 还是以图像处理为例&#xff0c;如果你的目标不仅是分析灰度图像特性&#xff0c;还打算捕捉RGB彩色图像的特征。如下图&#xff0c;当面对一张66像素的彩色图像时&#xff0c;提及的“3”实际上是指红、绿、蓝三种颜色通道&#xff0c;形象地说&am…...

Rust之函数、单元测试

1、函数 类似于C函数。 1.1、普通函数 在Rust中&#xff0c;函数的定义使用fn关键字&#xff0c;后跟函数名、参数列表、返回类型和函数体。函数体由一系列语句组成&#xff0c;用于执行特定的操作和计算。 函数定义&#xff1a; 使用fn关键字定义函数&#xff0c;函数由函数…...

Linux环境下TensorFlow安装教程

TensorFlow是学习深度学习时常用的Python神经网络框 下面以Mask R-CNN 的环境配置为例&#xff1a; 首先进入官网&#xff1a;www.tensorflow.org TensorFlow安装的总界面&#xff1a; 新建anaconda虚拟环境&#xff1a; conda create -n envtf2 python3.8 &#xff08;Pyth…...

基于Open3D的点云处理19-模拟生成点云

如果没有设备,怎么得到点云进行学习研究呢,一般通过以下方法: 模型采样+增加噪声:简单方便,但结果比较理想与真实扫描不一致;光线投射:简单方便,可以模仿传感器的一个扫描视角Blensor点云仿真:能够模仿传感器本身的一些噪声,适合激光雷达和tof相机的仿真,传感器较少…...

安全分析[1]之网络协议脆弱性分析

文章目录 威胁网络安全的主要因素计算机网络概述网络体系结构 网络体系结构脆弱性分组交换认证与可追踪性尽力而为匿名与隐私对全球网络基础实施的依赖无尺度网络互联网的级联特性中间盒子 典型网络协议脆弱性IP协议安全性分析IPSec&#xff08;IP Security)IPv6问题 ICMP协议安…...

数据湖对比(hudi,iceberg,paimon,Delta)

Delta 数据湖 Delta 更新原理 update/delete/merge 实现均基于spark的join功能。 定位 做基于spark做流批一体的数据处理 缺点 本质为批处理。强绑定spark引擎。整体性能相较其他数据湖比较差 hudi 数据湖 hudi 更新原理 通过hudi自定义的主键索引hoodiekey 布隆过…...

基于ssm的蛋糕商城系统java项目jsp项目javaweb

文章目录 蛋糕商城系统一、项目演示二、项目介绍三、系统部分功能截图四、部分代码展示五、底部获取项目源码&#xff08;9.9&#xffe5;带走&#xff09; 蛋糕商城系统 一、项目演示 蛋糕商城管理系统 二、项目介绍 系统角色 : 管理员、用户 一&#xff0c;管理员 管理员有…...

vue3父组件使用ref获取子组件的属性和方法

在vue3中父组件访问子组件中的属性和方法是需要借助于ref: 1.<script setup> 中定义响应式变量 例如&#xff1a; const demo1 ref(null) 2.在引入的子组件标签上绑定ref属性的值与定义的响应式变量同名( <demo1 ref"demo1"/>)。 父组件代码如下&…...

加入MongoDB AI创新者计划,携手MongoDB共同开创AI新纪元

加入MongoDB AI创新者计划&#xff01; MongoDB对AI创新和初创企业的支持既全面又广泛&#xff01;无论您是领先的AI初创企业还是刚刚起步&#xff0c;MongoDB Atlas都是支持您愿景的最佳平台。 AI 初创者计划The AI Startup Track AI初创者计划为早期初创企业提供专属福利&…...

3. CSS的色彩与背景

3.1 CSS3中的色彩 CSS3扩展了颜色的定义方式&#xff0c;使得开发者能够使用更多样化和灵活的颜色表达方式。这包括RGB、RGBA、HSL、HSLA等格式&#xff0c;以及支持透明度和渐变的特性。 3.1.1 颜色格式 十六进制颜色 十六进制颜色是最常用的颜色表示法&#xff0c;以#开头…...

MiniCPM-Llama3-V-2_5-int4

MiniCPM-Llama3-V-2_5-int4大模型部署使用环境&#xff1a; python3.8cuda11.8其它要求&#xff0c;按照安装文档要求下载即可 我是在算力平台用4090跑的&#xff0c; GPU 显存&#xff08;8GB&#xff09;可以部署推理 int4 量化版本&#xff0c;如果推理非量化版本需要更高显…...

压缩能力登顶 小丸工具箱 V1.0 绿色便携版

平常录制视频或下载保存的视频时长往往都很长&#xff0c;很多时候都想要裁剪、 截取出一些“精华片段”保留下来&#xff0c;而不必保存一整个大型视频那么浪费硬盘空间… 但如今手机或电脑上大多数的视频剪辑软件&#xff0c;切割视频一般都要等待很长时间导出或转换&#…...

电子电器架构 - 车载网管功能简介

电子电器架构 - 车载网管功能简介 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,…...

路由配置总结

在 Vue 中&#xff0c;一级路由和二级路由的配置主要依赖于 vue-router 插件。以下是关于一级路由和二级路由配置的总结&#xff1a; 一、安装 vue-router 你可以通过 npm 或 yarn 来安装 vue-router。在命令行中运行以下命令&#xff1a; 使用 npm: npm install vue-router…...

从零起航,Python编程全攻略

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、Python入门之旅 二、Python进阶之道 三、Python爬虫实战 四、Python数据分析利器 五…...

正运动视觉与运动一体机小课堂----三分钟系列

【视觉运控一体机小课堂】三分钟搭建机器视觉开发环境-正运动技术 (zmotion.com.cn) 【视觉运控一体机小课堂】三分钟读取本地图像-正运动技术 (zmotion.com.cn) 【视觉运控一体机小课堂】三分钟实现相机采集和图像保存-正运动技术 (zmotion.com.cn) 【视觉运控一体机小课堂…...

微信小程序如何跳转微信公众号

1. 微信小程序如何跳转微信公众号 1.2. 微信公众号配置 登录微信公众号&#xff0c;点击【小程序管理】&#xff1a;   点击【添加】&#xff1a;   点击【关联小程序】&#xff1a;   输入小程序进行关联&#xff1a; 1.2. 微信小程序配置 登录微信小程序&#xf…...

vi和vim编辑器

目录 1 vi和vim的基本介绍 2 vi和vim常用的三种模式 1&#xff09;正常模式 2&#xff09;插入模式 3&#xff09;命令行模式 3 vim快捷键 1&#xff09;普通模式下&#xff1a; 2&#xff09;输入模式 3&#xff09;命令行模式 4&#xff09;可视模式 1 vi和vim的基本…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象&#xff1a; android studio报错&#xff1a; [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决&#xff1a; 不要动CMakeLists.…...