vm 虚拟机无法调用摄像头(亲测有效)

2024-08-22 21:04

本文主要是介绍vm 虚拟机无法调用摄像头(亲测有效),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

--

  • 前言
  • 1 报错说明
    • 1.1 opencv调用摄像头失败,画面窗口无法显示
    • 1.2 选择连接摄像头出现失败:桌面右下角出现【USB 设备“Acer Integrated RGB Camera"的连接失败】
      • 连接摄像头方法
  • 2 解决方法
    • 步骤一
    • 步骤二
    • 步骤三
  • 补充

前言

网上找的很多方法都是无效的,只有一篇文章是对我有效的,CSDN的文章:ubuntu18虚拟机连接usb摄像头连接失败,驱动错误解决办法,非常感谢这个博主。

主要解决方法:打开设备管理器,在vm连接摄像头的时候,对【通用串行总线控制器】进行【扫描检测硬件改动(A)】,即可发现多了一个【VMware USB Device】且保持不变,即可以解决报错。

1 报错说明

1.1 opencv调用摄像头失败,画面窗口无法显示

在这里插入图片描述
终端输出显示

xucg@xucg-vm17:~/dev_ws$ ros2 run learning_node node_object_webcam 
[INFO] [1724301196.539635769] [node_object_webcam]: ROS2节点示例:检测图像中的苹果
[ WARN:0] global ./modules/videoio/src/cap_gstreamer.cpp (2075) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module v4l2src0 reported: Cannot identify device '/dev/video0'.
[ WARN:0] global ./modules/videoio/src/cap_gstreamer.cpp (1053) open OpenCV | GStreamer warning: unable to start pipeline
[ WARN:0] global ./modules/videoio/src/cap_gstreamer.cpp (616) isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
[ WARN:0] global ./modules/videoio/src/cap_v4l.cpp (890) open VIDEOIO(V4L2:/dev/video0): can't open camera by index

1.2 选择连接摄像头出现失败:桌面右下角出现【USB 设备“Acer Integrated RGB Camera"的连接失败】

在这里插入图片描述

连接摄像头方法

  1. 【虚拟机】>【可移动设备】>【电脑摄像头型号】>【连接(断开与主机的连接)(C)】

在这里插入图片描述

  1. 点击右下角【摄像头图标】也可以进行摄像头连接

在这里插入图片描述

2 解决方法

步骤一

上方菜单【虚拟机】>【管理】>【USB控制器】>【USB兼容性】>【确认】

这时会虚拟机会卡一下,进行重新加载,等待加载完成即可

在这里插入图片描述

步骤二

参考上面的【连接摄像头的方法】,连接过程大概需要10几秒,同时打开【设备管理器】,找到【通用串行总线控制器】,右键选择【扫描检测硬件改动(A)】,等扫描结束,可发现多了一个【VMware USB Device】且保持不变,且桌面右下角的【摄像头图标】保持高亮,即是摄像头可以正常使用。

在这里插入图片描述

在这里插入图片描述

步骤三

安装chese软件进行摄像头查看

sudo apt-get install cheese
cheese

在这里插入图片描述

补充

这些命令主要是用于查看关于摄像头设备的信息和操作。它们的功能如下:

列出所有符合 /dev/video* 模式的视频设备文件,这些文件通常代表着系统中的摄像头设备。

ls /dev/video*

列出PCI设备信息,并使用grep命令过滤出包含"camera"关键词的行,以显示与摄像头相关的PCI设备信息。

lspci | grep -i camera

列出USB设备信息,并使用grep命令过滤出包含"camera"关键词的行,以显示与摄像头相关的USB设备信息。

lsusb | grep -i camera

列出所有/dev/video*模式的视频设备文件,并按照时间顺序从旧到新进行排序,以及以易读的格式展示文件大小。

ls -ltrh /dev/video*

显示当前正在使用 /dev/video0 设备(摄像头0)的进程信息。

sudo lsof /dev/video0

使用 v4l2-ctl 命令来显示 /dev/video0 设备(摄像头0)的所有控制项和设置。

sudo apt install v4l-utils
v4l2-ctl -d  /dev/video0 --all
# 查看摄像头信息
v4l2-ctl --list-devices #列出系统上可用的视频设备。
v4l2-ctl -d /dev/video0 --list-formats-ext #列出特定设备支持的视频格式。

这篇关于vm 虚拟机无法调用摄像头(亲测有效)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1097391

相关文章

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

虚拟机Centos7安装MySQL数据库实践

《虚拟机Centos7安装MySQL数据库实践》用户分享在虚拟机安装MySQL的全过程及常见问题解决方案,包括处理GPG密钥、修改密码策略、配置远程访问权限及防火墙设置,最终通过关闭防火墙和停止Net... 目录安装mysql数据库下载wget命令下载MySQL安装包安装MySQL安装MySQL服务安装完成

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Python中Tensorflow无法调用GPU问题的解决方法

《Python中Tensorflow无法调用GPU问题的解决方法》文章详解如何解决TensorFlow在Windows无法识别GPU的问题,需降级至2.10版本,安装匹配CUDA11.2和cuDNN... 当用以下代码查看GPU数量时,gpuspython返回的是一个空列表,说明tensorflow没有找到

python如何调用java的jar包

《python如何调用java的jar包》这篇文章主要为大家详细介绍了python如何调用java的jar包,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录一、安装包二、使用步骤三、代码演示四、自己写一个jar包五、打包步骤六、方法补充一、安装包pip3 install

Python如何将OpenCV摄像头视频流通过浏览器播放

《Python如何将OpenCV摄像头视频流通过浏览器播放》:本文主要介绍Python如何将OpenCV摄像头视频流通过浏览器播放的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完... 目录方法1:使用Flask + MJPEG流实现代码使用方法优点缺点方法2:使用WebSocket传输视

Oracle修改端口号之后无法启动的解决方案

《Oracle修改端口号之后无法启动的解决方案》Oracle数据库更改端口后出现监听器无法启动的问题确实较为常见,但并非必然发生,这一问题通常源于​​配置错误或环境冲突​​,而非端口修改本身,以下是系... 目录一、问题根源分析​​​二、保姆级解决方案​​​​步骤1:修正监听器配置文件 (listener.

java对接海康摄像头的完整步骤记录

《java对接海康摄像头的完整步骤记录》在Java中调用海康威视摄像头通常需要使用海康威视提供的SDK,下面这篇文章主要给大家介绍了关于java对接海康摄像头的完整步骤,文中通过代码介绍的非常详细,需... 目录一、开发环境准备二、实现Java调用设备接口(一)加载动态链接库(二)结构体、接口重定义1.类型

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地