问题标签 [video4linux]

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 投票
4 回答
5882 浏览

cross-platform - 跨平台网络摄像头访问

我正在寻找一个跨平台的视频捕获库,用于网络摄像头访问。一种在 Linux 上封装 V4L/V4L2、在 Windows 上封装 DirectShow 和在 Mac 上封装 QuickTime。

首选 C 或 C++,但如果 Java 或 Python 有更好的库选项,我可以使用它们。

0 投票
2 回答
3514 浏览

c++ - 使用 video4linux 将 mjpeg 转换为原始 rgb24

我正在使用 video4linux 编写一个 c++ 网络摄像头查看器。我需要一个 RGB24 输出(交错的R8B8G8)来显示。我可以使用 YUYV、GREY8 或 RGB24 为几乎所有低分辨率网络摄像头获取视频输入。但我还需要从高分辨率网络摄像头获取输入,这些摄像头在需要高帧率时使用MJPEG进行压缩。

我能够使用V4L2_PIX_FMT_MJPEG像素格式获取 MJPEG 流,但接收到的帧缓冲区被压缩。

如何快速将其转换为 RGB24?

我可以为此使用 libjpeg 吗?

0 投票
2 回答
3830 浏览

c - 如何使用 video4linux api 获取网络摄像头设备支持的帧大小和帧间隔列表?

我正在尝试使用 V4L2 api 枚举网络摄像头设备支持的帧大小和帧速率。我尝试使用以下代码进行操作但没有成功。ioctl 函数总是返回-1。

0 投票
3 回答
7643 浏览

linux - 让 BeagleBone 使用 OpenCV 捕获静止帧

我有一个运行Ångström Linux 3.2.28 的 BeagleBone,我正在尝试从我的相机中捕捉一帧。

所以我插入了我的 USB 网络摄像头,并检查/dev以确保它显示出来。

确实如此,如video0(右下)。我知道这是正确的,因为它在我拔掉相机后消失了。

(博

所以现在我启动 Python 并运行以下命令:

如您所见,我能够充分创建捕获对象,但无法从中拉出框架。我也尝试过使用相机 ID 的不同(或没有)整数参数(-1在上面的代码中),但无济于事。

作为参考,在我的笔记本电脑上使用IPython运行相同的代码如下所示:

你可以看到,我确实在捕捉图像。我不确定从这里去哪里。

更新:

我已经使用FFmpeg进行了一些尝试,并且能够通过发出以下命令让相机做出响应(即,它的灯亮起):

这很有趣,因为显然 CaptureFromCAM使用了 V4L 界面……我不知道从这里去哪里。

0 投票
1 回答
152 浏览

c - 如何在 Linux 无线电设备驱动程序中验证无线电频率?

我知道无符号数永远不会小于 0,也无需对其进行测试。但我想避免调谐器的虚假频率。

是否可以以另一种方式进行此检查(可能有限制)?

对不可能存在的值的“虚假”频率提出更好的定义。

如果频率自调谐后没有改变,则数字驱动器不会设置频率。模拟调谐器驱动器对数字驱动器保存的频率一无所知。当使用 video4linux 代码设置频率时,硬件会发生变化,但数字驱动程序的状态不会更新。

0 投票
0 回答
126 浏览

c++ - 如何在 C++ 中从 video4linux 检索帧?

我正在尝试从网络摄像头提要中保存像素数据。

如何使用 c++ 从 video4linux 保存帧?

0 投票
1 回答
1952 浏览

linux - 如何用video4linux2录制网络摄像头视频信号?

我需要使用 ffmpeg 从我的网络摄像头录制视频。

我试过这个命令:ffmpeg -re -f video4linux2 -i /dev/video0 video.avi

我收到了:The v4l2 frame is 24384 bytes, but 153600 bytes are expected

当我使用此命令对 avconv 尝试相同的操作时:avconv -f video4linux2 -i /dev/video0 video.avi 我收到了相同的错误。

但是我可以使用以下命令从我的网络摄像头接收视频:gstreamer-properties.

如何配置 v4l2 以从我的网络摄像头获取信号视频?

0 投票
0 回答
246 浏览

macos - MBP Retina Isight 和 FFmpeg

我尝试从我全新的 MacBook Pro Retina (Mavericks) 获取视频流,以将其用作 ffmpeg 中的输入(并通过 RTMP 再次流式传输)。

我在其他堆栈溢出的主题中尝试了不同的解决方案,但似乎没有一个有效:

wacaw -L不列出任何设备

Quicktime Broadcaster 不显示任何视频(仅限音频)

但 Isight 确实可以在 Photo Booth 中使用。

有任何想法吗 ?有人在研究这个主题吗?

0 投票
1 回答
1285 浏览

linux - 如何在linux中检测相机断开连接?

在没有命令支持的情况下,如何检测相机信号断开(不是模块断开或硬件断开)V4l2-ctl?因为我的相机驱动程序不支持v4l2-ctl命令。

0 投票
1 回答
232 浏览

c - 如何等待帧和报警信号

我的网络摄像头有问题。它可以是硬件,但我相信它不是。使用所有应用程序,我可以看到流,但突然冻结。由于出现问题时使用的应用程序的以下输出:

我检查了代码和有趣的部分:

从中我得出结论,SYNC_TIMEOUT 可能是个问题。该值为 3 秒,这似乎已经足够了。

我的请求是帮助我更改代码以不无限期地阻塞等待帧:

如果在 100 毫秒内没有帧到达,则超时并让 GUI 有机会自我更新。并非所有设备都可以自由转动,因此应用程序应在不阻塞 GUI 的情况下支持此类设备。

如何进行亚秒级等待?

v4l2 设备在这方面工作得很好:

但我有 v4l1 设备。