问题标签 [v4l2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1282 浏览

linux-device-driver - 在 Linux 内核中移植虚拟视频驱动程序

我正在尝试在 linux 内核中构建 vivi 驱动程序。我尝试使用 make menuconfig 但我没有看到任何启用 vivi 驱动程序的选项。谁能告诉我在内核中启用 vivi 驱动程序的过程

-基兰

0 投票
1 回答
8577 浏览

python - 无法使用 Python/opencv 关闭/打开 CameraCapture:设备或资源繁忙

当我尝试使用 Python 重新打开 opencv 的 CameraCapture 时,我得到:

尽管我的应用程序使用 PyQt 和其他各种模块在更大的上下文中运行,但我能够隔离问题。因此,当我点击“r”(重新加载)时,捕获对象被删除,但我无法重新打开与相机的连接,因为它仍然处于活动状态:

为类似问题给出的提示对我不起作用: 在使用 python 时无法在 opencv 中找到 ReleaseCapture?和/或OpenCV / Array 应该是 CvMat 或 IplImage / 释放捕获对象

0 投票
7 回答
28096 浏览

opencv - 在 Linux 上使用 OpenCV 捕获多个网络摄像头 (uvcvideo)

我正在尝试在 Ubuntu 11.10 上使用 OpenCV 2.1 同时流式传输来自 3 个 Logitech Webcam Pro 900 设备的图像。为这些加载了 uvcvideo 驱动程序。

捕获两个设备工作正常,但是三个我遇到第三个空间不足错误:

我似乎遇到了这个问题: http ://renoirsrants.blogspot.com.au/2011/07/multiple-webcams-on-zoneminder.html我试图做 quirks=128 (或几乎任何其他二次幂)技巧,但无济于事。我还尝试在另一台带有两个 USB 2.0 集线器的机器上将两个摄像头连接到一个,将第三个摄像头连接到第二个,这导致了同样的问题。我大致如下初始化(使用 N 个摄像头,因此结果实际上被放入 STL 向量中):

并尝试将所有摄像机循环捕获为

这适用于 N=2 相机。当我设置 N=3 时,第三个窗口打开但没有图像出现,并且控制台充满了 V4L2 错误。同样,当我设置 N=2 并尝试在说 Cheese(简单的网络摄像头捕获应用程序)中打开第三个摄像头时,这也不起作用。

现在来了个大问题:通过启动三个实例尝试 guvcview 后,我能够一次查看三个摄像头(在帧速率或相关方面没有问题),所以这似乎不是硬件问题。我认为我应该设置一些属性,但我不确定那是什么。我已经研究了 MJPEG(这些相机似乎支持),但没有成功设置这个属性,或者如果我从 OpenCV 启动它们,它们在哪种模式下运行(yuyv?)。

想法?

0 投票
1 回答
1432 浏览

c++ - V4L2 的线程安全性如何?

除了这封来自 2008 的电子邮件之外,我找不到任何提及 V4L2 的线程安全特性的内容。它谈到了大内核锁,我猜它现在已经消失了,对吧?

有人有这方面的最新信息吗?我可以ioctl(我特别想VIDIOC_DQBUFVIDIOC_QBUF)来自多个线程的相同 V4L2 文件描述符而无需序列化吗?上面引用的讨论似乎表明答案取决于驱动程序,但我想我还是会问。

0 投票
1 回答
4527 浏览

v4l2 - v4l2 图像捕获的时间戳

我有一个处理相机图像的 Linux 应用程序。目前我为 v4l2 内核子系统提供缓冲区,这些缓冲区填充了图像数据。

但是,我需要尽可能准确地知道(由相机)捕获此帧的时间。使用缓冲区,我可能无法准确知道何时发生这种情况,因为我可能无法及时处理所有帧(即,我可能会在图像已经可用几毫秒时请求图像)。

我正在寻找的是一种确定(或估计)图像被捕获的时间(或它的年龄)的方法,例如通过让内核以某种方式记录它,或者在最坏的情况下通过不将图像流式传输给我,而是仅应我的明确要求发送。

环境:UVC 网络摄像头,Linux 内核 2.6.3x,V4L2 API

0 投票
2 回答
6560 浏览

v4l2 - v4l2_buffer->timestamp 值从哪里开始计算?

我正在尝试使用 v4l2_buffer 的时间戳值(类型 timeval)将从UVC网络摄像头捕获的图像同步到外部事件。

但是时间戳与系统时间或正常运行时间等不同:

结果是

我的正常运行时间是 10 天。

0 投票
4 回答
11419 浏览

android - 适用于 Android USB 网络摄像头的 V4L2 补丁

我一直在尝试使用https://bitbucket.org/neuralassembly/simplewebcam作为指南,让 USB 网络摄像头在我的 Acer A500 上工作。

根据我设备上的配置文件,它满足所有要求并且应用程序运行,但我仍然无法让它工作。

我在这里找到了一个 V4L2 补丁:http ://code.google.com/p/android-m912/downloads/detail?name=v4l2_camera_v2.patch但我不知道如何处理它。

我会很感激任何可以帮助我编译/安装这个补丁的人。

谢谢

保罗

Acer A500 CWM 3.2 植根于 ADHOC wifi 支持

0 投票
1 回答
3363 浏览

android-camera - V4l2:缓冲区的Enque,Deque和Queue(ing)之间的区别?

我是v4l2中的菜鸟,并试图找出ioctl在相机图像捕获期间进行的各种调用之间的区别。我正在关注来自 linuxtv.org 站点的此 pdf,我想知道以下内容之间的区别:

缓冲区的查询、入队、出队和队列(ing)。从相机获取原始数据是否有特定的顺序?在流式传输和捕获模式的情况下,序列是否会有所不同?

任何人都可以解释一下。

0 投票
1 回答
695 浏览

c - 编译 v4l2 程序时出现 ioport.h 错误

我想关注这篇关于 v4l2 驱动程序编写的文章。

但是当我包含 media/v4l2-dev.h 时,我的第一次基本尝试失败了(因为我想访问像 VFL_TYPE_GRABBER 这样的宏)。

media/v4l2-dev.h 包括 linux/device.h ,其中包括 linux/ioport.h 与此输出崩溃:

[...]

来源 :

我编译:

它发生在 2.6.32-37-generic-pae 和 gcc 4.4.3 glibc 2.10 我在 gentoo 上用内核头文件和 gcc 的近似等效版本进行了同样的尝试。

我究竟做错了什么 ?

编辑:指出确切的包含路径。

0 投票
1 回答
8303 浏览

c++ - 如何写入/管道到由 V4L2loopback 模块创建的虚拟网络摄像头?

我编写了一个应用程序,它从网络摄像头读取并在 Linux 上使用 OpenCV 处理帧。现在我想将我的应用程序的输出通过管道传输到由 V4L2loopback 模块创建的虚拟网络摄像头,以便其他应用程序能够读取它。我已经使用 C 编写了应用程序。我不知道该怎么做。你能给我一些提示吗?