0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ArmSom--摄像头开发指南(二)

ARMSOM 2023-11-06 10:30 次阅读

一. 简介

RK3588从入门到精通

开发板:ArmSoM-W3

Kernel:5.10.160

OS:Debian11

上篇文档介绍了rockchip平台怎么配置MIPI-CSI的通路,本⽂主要介绍在Rockchip平台下Camera相关测试命令

二. 摄像头连接

ArmSoM-W3开发板与imx415连接图如下:

wKgZomVITeKABfqrAAgn30_F2bg515.pngw3-camera-hardware

注意

排线的金属引脚朝向板子

三. 使用摄像头

连接摄像头模块并上电后,可查看开机日志。

wKgZomVIXVCALdplAACZ1x4sHoI462.png

如果没有报错,那表明模块在正常运行,在Linux系统中,你可以使用多种方法来访问和利用该摄像头设备。

3.1 使用命令行工具

media-ctl 和 v4l2-ctl 是在Linux环境下用于配置和管理视频和多媒体设备的命令行工具。它们通常与V4L2(Video for Linux 2)子系统一起使用,用于管理摄像头、视频采集卡、显示设备和其他多媒体硬件的设置和参数

media-ctl工具的操作是通过/dev/medio0等media 设备,它管理的是Media的拓扑结构中各个节点的 format、大小、 链接。 v4l2-ctl工具则是针对/dev/video0,/dev/video1等 video设备,它在video设备上进行set_fmt、 reqbuf、qbuf、dqbuf、stream_on、stream_off 等一系列操作。

n为4的倍数(0,1,2,3…) /dev/videon+0:视频输出 SP主通道 /dev/videon+1:视频输出 MP自身通道 /dev/videon+2:3A统计 /dev/videon+3:3A参数设置

3.1.1 显示拓扑结构

使用以下命令可以显示拓扑结构:

media-ctl -p -d /dev/media0

主要关注的是有没有找到Sensor的Entity。如果没有找到Sensor的Entity,说明Sensor注册有问题。

开发板上接上摄像头后可以看到如下的输出:

wKgaomVIXW2AEXb5AACISAOFQg0281.png

3.2.2 查看摄像头信息

使用命令列出所有摄像头设备:

wKgaomVIXX2AaRE0AACFOxrdQRk945.png

其中/dev/video11就是这个摄像头的设备。

查看设备的预览支持格式:

wKgZomVIXYmAQ8jOAACN_AFZZ-Y911.png

查看设备的所有信息:

wKgZomVIXZ6ANiM6AAC8vtHZed0051.png

3.2.3 显示图像

使用v4l2-ctl抓一帧图片:

wKgaomVIXayAfNqkAACfbZ14DMY217.png

参数说明:

-d: 摄像头对应设备文件 --set-fmt-video:指定了宽高及pxielformat(用FourCC表示)。NV12即用FourCC表示的pixelformat --stream-mmap:指定buffer的类型为mmap,即由kernel分配的物理连续的或经过iommu映射的buffer --stream-to:指定帧数据保存的文件路径 --stream-skip:指定丢弃(不保存到文件)前3帧 --stream-count:指定抓取的帧数,不包括--stream-skip丢弃的数量

抓取的图片使用adb工具拷贝到Windows下用7YUV工具打开,也可以用ffplay命令打开

ffplay是FFmpeg提供的一个极为简单的音视频媒体播放器(由ffmpeg库和SDL库开发),可以用于音视频播放、可视化分析 ,提供音视频显示和播放相关的图像信息、音频的波形等信息,也可以用作FFmpeg API的测试工具使用。

使用 ffplay 非常简单,只需在终端中运行以下命令来播放媒体文件:

ffplay /data/4k_nv12.yuv -f rawvideo -pixel_format nv12 -video_size 3840x2160

3.2.3 显示视频

使用v4l2可以录制视频:

wKgZomVIXciAQu_qAAAvRBV1X0E271.png

使用ffplay播放:

ffplay -f rawvideo -video_size 3840x2160 -pixel_format nv12 out.yuv

3.3 使用多媒体框架应用程序

GStreamer:GStreamer是一种多媒体框架,你可以使用它来构建自定义的多媒体应用程序,捕获摄像头视频,进行处理和展示。

你可以使用以下GStreamer管道捕获视频:

gst-launch-1.0 v4l2src device=/dev/video11 ! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1 ! videoconvert ! autovideosink

1. v4l2src:从 /dev/video11 捕获视频数据。

2. video/x-raw:指定输出数据格式为原始视频,format 参数设置为 NV12,width 设置为 3840,height 设置为 2160,framerate 设置为 30fps。

3. videoconvert:执行格式转换,确保输出数据适用于后续的元素。

4. autovideosink:自动选择适当的视频输出插件,将视频显示在屏幕上。

显示如下:

wKgZomVITueAedvsABvs2e5x2TI333.pngcamera-screenshot

注意:显示器的分辨率是1920x1080,摄像头的分辨率是3840x2160,导致如左上角画面显示不全,双击边框可以得到分辨率是1920x1080的画面。

下面有一个简单的Python示例,用于创建一个GStreamer管道并启动捕获视频可供参考:

wKgZomVIXdyAXxG5AADG-aKWH6w066.png

3.4.自定义应用程序开发

特定的定制功能,一般是使用编程语言(如C++或Python)开发自己的摄像头应用程序

总的来说,应用程序通过API接口采集视频数据大致分为五个步骤:

首先,打开视频设备文件,进行视频采集的参数初始化,设置视频图像的采集窗口、采集的点阵大小和格式;

其次,申请若干视频采集的帧缓冲区,并将这些帧缓冲区从内核空间映射到用户空间,便于应用程序读取/处理视频数据;

第三,将申请到的帧缓冲区在视频采集输入队列排队,并启动视频采集;

第四,驱动开始视频数据的采集,应用程序从视频采集输出队列取出帧缓冲区,处理完后,将帧缓冲区重新放入视频采集输入队列,循环往复采集连续的视频数据;

第五,停止视频采集。

四. 结语

根据需求,选择最适合的方法来访问和使用摄像头设备,每个具体型号的摄像头可能有其独特的设置和要求,各个系统下的使用摄像头的方法也有很多,如果你有疑问或者需要帮助,可以在ArmSom论坛提出问题,与其他开发者分享经验和获取支持。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 摄像头
    +关注

    关注

    59

    文章

    4797

    浏览量

    95340
  • 开发板
    +关注

    关注

    25

    文章

    4921

    浏览量

    97126
  • RK3588
    +关注

    关注

    6

    文章

    308

    浏览量

    4183
收藏 人收藏

    评论

    相关推荐

    用于环视和CMS摄像头系统的四通道摄像头应用程序

    电子发烧友网站提供《用于环视和CMS摄像头系统的四通道摄像头应用程序.pdf》资料免费下载
    发表于 10-11 10:02 0次下载
    用于环视和CMS<b class='flag-5'>摄像头</b>系统的四通道<b class='flag-5'>摄像头</b>应用程序

    摄像头 PMIC 选型指南

    电子发烧友网站提供《摄像头 PMIC 选型指南.pdf》资料免费下载
    发表于 09-10 10:00 0次下载
    <b class='flag-5'>摄像头</b> PMIC 选型<b class='flag-5'>指南</b>

    LVGL开发指南介绍

    电子发烧友网站提供《LVGL开发指南介绍.pdf》资料免费下载
    发表于 09-09 10:24 15次下载

    TPS6503xx-Q1摄像头PMIC编程指南

    电子发烧友网站提供《TPS6503xx-Q1摄像头PMIC编程指南.pdf》资料免费下载
    发表于 09-03 14:14 0次下载
    TPS6503xx-Q1<b class='flag-5'>摄像头</b>PMIC编程<b class='flag-5'>指南</b>

    RA/RX电机应用开发指南

    电子发烧友网站提供《RA/RX电机应用开发指南.pdf》资料免费下载
    发表于 08-15 09:44 0次下载
    RA/RX电机应用<b class='flag-5'>开发指南</b>

    CANape Option DA中参考摄像头的标定演示#CANape

    摄像头
    北汇信息POLELINK
    发布于 :2024年07月30日 12:37:29

    安防摄像头IPC芯片的应用

    安防摄像头IPC芯片的应用
    的头像 发表于 07-22 09:42 599次阅读
    安防<b class='flag-5'>摄像头</b>IPC芯片的应用

    esp32是如何与摄像头连接的呢?

    新手。看了esp32的模组中没有摄像头的硬件接口,请问它是如何与摄像头连接的呢
    发表于 06-28 15:01

    摄像头模组电路

    求助各位大佬,想问一下摄像头模组硬件电路大概需要怎么设计
    发表于 06-07 10:29

    爆苹果正在探索开发摄像头的AirPods

    据知名苹果爆料记者马克•古尔曼消息,苹果正在探索开发摄像头的AirPods。
    的头像 发表于 02-27 15:04 783次阅读

    高清网络摄像头多媒体智能屏

    。同时,在屏幕上显示摄像头画面可直接通过DGUS开发来实现,十分快捷。硬件接口展示:产品特点支持通过以太网、WiFi(2.4GHz、5GHz均可)连接网络摄像头;支
    的头像 发表于 02-19 13:21 534次阅读
    高清网络<b class='flag-5'>摄像头</b>多媒体智能屏

    使用Arduino IDE 2.0开发ESP32摄像头模块

    /nodematrix/ESP32CameraDemo)。 以上是如何使用Arduino IDE 2.0开发ESP32摄像头模块的快速指南。可以在扩展包的样例库(File > Examples
    发表于 02-07 17:06

    AHD摄像头与CVBS的区别

    随着科技的不断进步,摄像头作为监控领域中重要的设备之一,也在不断演化和改进。AHD(Analog High Definition,模拟高清)摄像头是近年来相对较新的一种技术,相对于传统的CVBS
    的头像 发表于 01-04 11:08 1.3w次阅读

    【ELF 1开发板试用】+ 3.2 USB摄像头连接测试 + Ubutu SSH连接

    连接测试 本文继续做一下连接接口的测试,本文使用USB摄像头进行连接,以测试ELF 1 USB功能,以及其对应的摄像头视频流的处理反馈 设备部署如下: ELF1 外接了一个部署在维云台的 USB
    发表于 12-06 15:37