【在英伟达nvidia的jetson-orin-nx上使用调试摄像头-同时开启多个摄像头-基础测试(2)】

【在英伟达nvidia的jetson-orin-nx上使用调试摄像头-同时开启多个摄像头-USB摄像头与Camera Conn.#0/#1接口-基础测试(2)】

  • 1、概述
  • 2、实验环境
  • 3、 先前确认
    • (1)USB摄像头,先确认可以单独打开
    • (2)CSI摄像头,首先确认单独打开
  • 4、自我总结
    • (1)工具的选择和使用方式
    • (2)相关工具与指令
  • 5、实验过程
    • (1)usb摄像头测试过程
      • 1、实验过程
      • 2、实验初效
      • 3、加入多个摄像头&安装软件
      • 4、开启多个USB摄像头
    • (2)CSI摄像头测试过程
      • 1、实验过程
      • 2、实验结果
    • (3)CSI摄像头相关工具安装
    • (3)CSI摄像头多个摄像头打开
  • 6、细节部分
    • (1)其他工具尝试
    • (2)OpenCV的python脚本文件报错
    • (3)其他知识补充
  • 7、总结

1、概述

最近同事问了一个问题,如何同时开启多个摄像头,自己之前也不了解,于是上网查了一下,决心自己做个实验来尝试下。

对于单个摄像头使用,自己之前有文章可以看下。
【在英伟达nvidia的jetson-orin-nx上使用调试摄像头-初步调试USB摄像头与Camera Conn.#0/#1接口-基础测试】

2、实验环境

初次了解,这里使用提供软硬件信息吧。
硬件信息:Jetson Orin nx
软件版本:Linux ubuntu 5.10.120-tegra #1 SMP PREEMPT Tue Aug 1 12:32:50 PDT 2023 aarch64 aarch64 aarch64 GNU/Linux (注意因为重新刷机,版本有点改变)
在这里插入图片描述

其它硬件:USB摄像头,CSI的摄像头,和CSI排线。

3、 先前确认

对于单个摄像头使用,自己之前有文章可以看下。
【在英伟达nvidia的jetson-orin-nx上使用调试摄像头-初步调试USB摄像头与Camera Conn.#0/#1接口-基础测试】
如果想同时调试多个摄像头,至少先确认每个摄像头是可以打开的,这里使之前文章,对于初学者最好先确认下,以证明连接和摄像头没有问题。否则开始很容易打不开。

(1)USB摄像头,先确认可以单独打开

本次在jetson-orin-nx使用摄像头连接如下,和jetson orin nx板子是一家买的。

我这里只是给个参照,请各位根据自己需求购买相关摄像头。

物品链接:创乐博 树莓派 jetson 免驱USB 摄像头视觉云台 AI 人脸识别视觉对焦距离可调 USB摄像头
在这里插入图片描述

一般来说,只要是usb接口的摄像头,大部分都是驱动都是在的,直接使用cheese工具都能直接打开,当然这部保证全部,目前接触几款都是可以的。

(2)CSI摄像头,首先确认单独打开

这种摄像头,就是使用在这上面的,我们需要看下载板的图,如下,就是Camera conn.#0 [j20]和Camera conn.#1 [j21]。
这个图是出自“jetson orin nano developer kit…"文档,可以去英伟达官网搜索。
在这里插入图片描述
如下,其中一个是,我自己的套件里带的摄像头。
在这里插入图片描述
物品链接:https://item.jd.com/10069364522103.html

另一个是后买的摄像头,也是同一家,当时就是怕装上不好使。
在这里插入图片描述

物品链接:https://item.jd.com/10020835077458.html

4、自我总结

(1)工具的选择和使用方式

在Linux下,有很多工具可以使用,可以同时打开多个摄像头。
目前在网上搜到一些工具简单罗列如下:

  1. ffmpeg
  2. v4l-utils
  3. OpenCV
  4. GStreamer

每个工具各样特点吧,有想法的可以去详细了解下,目前用过OpenCV,它一般比较适合开发。
而本期我们只是同时多开摄像头设备

对于USB摄像头,所使用工具是 ffmpeg。
对于CSI摄像头,所使用工具是 GStreamer。

ffmpeg这个工具还能做剪辑等工作,暂时就先不细说了。

(2)相关工具与指令

确认相关使用工具后,那么就是使用相关使用工具,调用相关指令,在上网上查的适合,发现有些指令是无法成功的,会报一些错误,对于新手而言,还是有点难得,除非认准了这个工具,否则不细细研究每个错误。

5、实验过程

如下图,就是本次设备了,需要先连接后摄像头和线,USB摄像头直接插在usb口上,csi排线接在接口上。
在这里插入图片描述

(1)usb摄像头测试过程

1、实验过程

建议先只链接一个USB摄像头,这样也不乱,一个个验证比较好。
开机后,打开终端,先送搜以下,看看摄像头在不在,是否被系统识别了。如下,因为自己已经熟悉了,所以都插上了。
使用命令查看摄像头。

ls /dev/vid*ce

在这里插入图片描述

之后,USB摄像头其实测试也是非常简单的,打开终端直接输入。

cheese

在这里插入图片描述

2、实验初效

一般没有什么问题的话,会直接出图的。
我这里还是不想本人出镜,就拿个本子挡住了。
在这里插入图片描述

3、加入多个摄像头&安装软件

我们手动插入多个USB摄像头,然后在终端中安装软件,具体命令如下。

  476  ls /dev/video*477  cheese478  sudo apt-get install ffmpeg479  sudo apt update480  history

(1)安装软件截图
在这里插入图片描述

(2)历史命令截图
在这里插入图片描述

4、开启多个USB摄像头

如下使用命令,在新的终端中,一个一个,注意每次开一个新摄像头,都需要开一个终端。

ffplay -f v4l2 /dev/video0
ffplay -f v4l2 /dev/video1

(1)我们先看下有多少个设备在线

wjl-linux@ubuntu:~$ ls /dev/video*
/dev/video0  /dev/video2  /dev/video4  /dev/video6
/dev/video1  /dev/video3  /dev/video5  /dev/video7

在这里插入图片描述
(2)新开终端,使用命令尝试

ffplay -f v4l2 /dev/video0

最终新开了三个终端,并不是所有摄像头都可以使用,会报错,错误如下。
在这里插入图片描述

最后打开了三个终端。
在这里插入图片描述

(2)CSI摄像头测试过程

csi相对复杂点,并且不能直接使用cheese工具。并且在调试过程中,还遇到了问题。

1、实验过程

建议先只链接一个CSI摄像头,这样也不乱,一个个验证比较好。
开机后,打开终端,先送搜以下,看看摄像头在不在,是否被系统识别了。如下,因为自己已经熟悉了,所以都插上了。
使用命令查看摄像头。

ls /dev/vid*ce

在这里插入图片描述
之后,打开终端,输入如下指令。
这个指令是自己尝试成功了的。

DISPLAY=:1.0 nvgstcapture-1.0

当时商家给到指令是

DISPLAY=:0.0 nvgstcapture-1.0

不管如何尝试,系统都会报错,其实也没有刷系统,但就是不行,后来自己没办法,加上排线烧了,按照商家建议,将摄像头发回验证,后刷系统,还是不行,自己尝试尝试后,才弄通,所以在报如下问题时,建议两条命令都尝试下。
在这里插入图片描述

以下指令是根据商家(就是买套件jetson orin nx商家售后)说明,也有相关教程。
链接:Jetson Orin NX CLB套件客户资料
百度网盘链接:https://pan.baidu.com/s/1axRaDMaezUEm3h6_OHEf6w
提取码:wjl5

2、实验结果

如上所示,使用如下指令后,可以正常调用摄像头了。
我这里还是不想本人出镜,就拿个本子挡住了。
在这里插入图片描述

(3)CSI摄像头相关工具安装

sudo apt-get install GStreamer

在这里插入图片描述

(3)CSI摄像头多个摄像头打开

命令如下:

gst-launch-1.0 \
nvarguscamerasrc sensor-id=0 ! "video/x-raw(memory:NVMM), width=640, height=480, format=NV12, framerate=30/1" ! nvvidconv ! xvimagesink \
nvarguscamerasrc sensor-id=1 ! "video/x-raw(memory:NVMM), width=640, height=480, format=NV12, framerate=30/1" ! nvvidconv ! xvimagesink

在这里插入图片描述

6、细节部分

(1)其他工具尝试

开始尝试过其他工具,都碰到一些问题,但是自己觉得,是自己不会用,不过本次实验主要是完成多个摄像头同时打开,就不研究了。

(2)OpenCV的python脚本文件报错

之前为了调试usb摄像头,将csi线拔掉了,怕互相影响。
一定要关机再拔线
结果忘记了,openCV的python脚本,是用来给CSI的摄像头的。
在这里插入图片描述

(3)其他知识补充

1、OpenCV:
如前所述,使用 OpenCV,可以编写自定义的 Python 脚本来同时打开和显示多个摄像头。这种方法提供了很高的灵活性,允许控制视频流的处理和显示方式。

2、GStreamer:
GStreamer 是一个强大的多媒体框架,可以用来创建复杂的视频流处理管道。可以使用 GStreamer 的命令行工具 gst-launch-1.0 来创建一个管道,该管道从多个摄像头捕获视频并将其显示在屏幕上或者处理这些视频流。

3、FFmpeg:
FFmpeg 是一个非常强大的多媒体处理工具,它也可以用来捕获和显示来自多个摄像头的视频流。通过合适的命令行参数,FFmpeg 可以同时处理多个视频源。

4、VLC Media Player:
VLC 是一个流行的媒体播放器,它也可以用来捕获和显示视频流。可以打开多个 VLC 实例,每个实例捕获一个摄像头的视频流。

5、专业的视频监控软件:
如果需求是视频监控方面的,那么使用专业的视频监控软件可能是最好的选择。这些软件通常支持多摄像头输入,并提供各种高级功能,如录制、运动检测等。

6、Web-based solutions:
有些基于网页的解决方案允许通过浏览器访问和显示多个摄像头。这些通常涉及到一些网络配置,并可能需要一定的编程知识来设置。

7、总结

慢慢积累吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/199499.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

灯塔ARL-NPoC全面教程

灯塔ARL-NPoC全面教程 1.ARL-NPoC2.安装3.参数解析4.ARL-NPoC编写指南标准POC模板`__init()__`verifyexploit_cmd5.将指纹同步到远程Web服务器1.ARL-NPoC 最新版的arl增加了poc编写与探测的功能,ARL-NPoC是一个集漏洞验证和任务运行的一个框架 2.安装 ARL-NPoC下载地址 下载…

Leetcode题库(数据库合集)_ 难度:困难

目录 难度:困难1. 部门工资前三高的所有员工2. 行程和用户3. 体育馆的人流量4. 员工薪水的中位数5. 同一天的第一个电话和最后一个电话6. 查询员工的累计薪水7. 给定数字的频率查询中位数8. 学生地理信息报告9. Hopper 公司查询 ①10. 职员招聘人数11. 职员招聘人数…

MPC模型预测控制理论与实践

一、基本概念 最有控制的动机是在约束条件下达到最优的系统表现。 模型预测控制(MPC,Model Predictive Control)是通过模型来预测系统在某一未来时间段内的表现来进行优化控制,多用于数位控制,通常用离散型状态空间表…

我的计算机之旅:为何选择这个领域?

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…

python 堆与栈

【一】堆与栈 【 1 】简介 栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top&a…

企业微信SCRM助力,让运营效率翻倍!

如今,越来越多的企业选择通过企业微信进行营销,将客户引入企业微信并沉淀到社群中进行精细化运营。相较于个人微信,企业微信的功能更加丰富,更适合企业进行私域留存。 然而,企业微信自带的功能往往只能满足企业的基本…

CSS中常用的4种长度单位

在现实生活中,我们知道很多的长度单位,例如米,厘米,寸,尺等等,在css的世界中,也有很多的长度单位 以下是css中常用的四种常用的长度单位 1,像素 px - 像素是我们在网页中使用的最…

IPoIB在国产并行系统上的实现与优化

目录 1 国产异构众核系统 2 相关工作 3 IPoIB在国产并行系统上的实现 3.1 IPoIB协议原理

Java_ArrayList顺序表详解

目录 前言 顺序表 ​编辑 顺序表和数组 ArrayList简介 说明 ArrayList使用​编辑 ArrayList常见操作 ArrayList实现二维数组 ArrayList的遍历 ArrayList的扩容机制 总结 前言 一个高端的程序员,往往都是数据结构学的很好,判断一个程序的优劣也是看数据结构学的好与坏.…

原生video设置控制面板controls显示哪些控件

之前我们学习了如何使用原生video播放视频 今天来一个进阶版的——设置控制面板controls显示哪些控件 先看一下当我们使用原生video时,controls属性为true时,相关代码如下: 正常的控制面板默认显示的控件有:播放、时间线、音量调…

CloudStack中的VPC(Virtual Private Cloud)

CloudStack中的VPC(Virtual Private Cloud,虚拟私有云)是一种网络隔离和管理机制,允许用户在云环境中创建独立的虚拟网络环境。VPC提供了逻辑上隔离的网络空间,可用于创建虚拟机、子网、路由器和防火墙等网络资源&…

【ffmpeg】视频常用操作合集

1.转码264 ffmpeg -i [原视频.mp4] -vcodec h264 [输出视频.mp4]2.视频流yuv数据抽取帧 ffmpeg -f rawvideo -s:v [尺寸] -i "[视频源]" -f image2 -q 2 -r [帧数] [文件夹及文件名]尺寸 : 例如 :640x360 视频源:例如&#xff1a…

Android基础: 使用Java代码控制 Activity类页面相互之间进行跳转 Activity页面的的启动和结束

Android基础(Activity) Activity的启动和结束 我们主要看Java代码逻辑: 第一个页面的逻辑代码 public class StartActivity01 extends AppCompatActivity implements View.OnClickListener {Overrideprotected void onCreate(Bundle saved…

JS中的 回调函数(callback)

1.什么是回调函数(callback)呢? 把函数当作一个参数传到另外一个函数中,当需要用这个函数是,再回调运行()这个函数. 回调函数是一段可执行的代码段,它作为一个参数传递给其他的代码,其作用是在…

香港云服务器计算型和通用型的区别

在当今数字化时代,云服务器作为企业级应用的核心设备,其性能和类型对于企业的运营和数据处理至关重要。在常见的香港云服务器类型中,通用型和计算型是最为常见的两种。那么,这两种云服务器到底有什么区别呢? 设计目标和应用场景不…

HarmonyOS开发基础(一)

HarmonyOS开发基础(一) // :装饰器:用来装饰类结构、方法、变量 Entry // Entry:标记当前组件为入口组件 Component // Component:标记为自定义组件 // struct:自定义组件,可复用的…

【LeetCode】692. 前K个高频单词

692. 前K个高频单词 描述示例解题思路及事项思路一思路二 描述 给定一个单词列表 words 和一个整数 k ,返回前 k 个出现次数最多的单词。 返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率, 按字典顺序 排序 示例 示例1 输…

电力校准平台

介绍 明确电力校准溯源平台的需求,包括设备管理、校准流程、数据存储、数据分析、安全保障、用户管理、系统管理和报告生成等方面的需求。通过清晰定义需求,为后续系统开发提供准确依据,确保系统的顺利实施和稳定运行。 设备管理 2.1 设备信息管理 平台应具备设备信息管理功…

Python实现FA萤火虫优化算法优化BP神经网络回归模型(BP神经网络回归算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 萤火虫算法(Fire-fly algorithm,FA)由剑桥大学Yang于2009年提出 , …

15.Servlet [一篇通]

文章目录 1.Servlet 是什么2.第一个 Servlet 程序2.1创建项目2.2引入依赖2.3创建目录2.4编写代码2.5打包程序2.6部署程序2.7验证程序 3.更方便的部署方式3.1安装 Smart Tomcat 插件3.2配置 Smart Tomcat 插件 4.访问出错怎么办?4.1出现 4044.2出现 4054.3出现 5004.4出现 &quo…