问题标签 [v4l]

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 投票
0 回答
549 浏览

opencv - 将 MJPEG 用于 OpenCV 时出现 Highgui V4L 错误

我在 ARM A9 处理器上运行 OpenCV。我正在尝试使用 MJPEG,因此我的 C920 网络摄像头运行得更快。我的程序的开头如下:

程序编译,但是,当我运行它时出现以下错误:

我完全不知道该怎么做。有谁知道为什么会发生此错误?

0 投票
2 回答
3458 浏览

java - MPEG-TS PSI 解析

我正在尝试构建EN 300 468中指定的 EIT 表部分。我已经成功地将数据包解析为数据结构(在 Java 中),并且可以访问每个数据包的有效负载。

我不明白表格部分是如何在数据包中拆分的,规范有点混乱/不确定。假设可以通过PID过滤TS数据包流,构建这样一个表的过程是什么?

我了解payload_unit_start_indicator正在设置,表示有效负载字段的第一个字节是指向新部分第一个字节的指针,这是从有效负载开始的偏移量吗?

例如,如果我收到一个 TS 数据包,并且我将其标识为一个部分的开头,那么我是否将字节读入一个数组,从标题中确定部分长度,然后继续用越来越多的 TS 数据包有效负载填充我的数组相同的 PID 直到bytesRead == sectionLength?

感谢您的阅读,任何建议或帮助都将不胜感激!:)

0 投票
2 回答
2668 浏览

c - 编写视频时OpenCV发出相机

我正在尝试使用我的笔记本电脑摄像头使用 OpenCV 编写视频,但出现以下错误:

我正在使用的代码是:

如您所见,我已经使用 CV_FOURCC 测试了每个编解码器,但仍然出现错误。

我究竟做错了什么?我有编解码器问题吗?

0 投票
1 回答
232 浏览

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

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

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

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

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

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

如何进行亚秒级等待?

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

但我有 v4l1 设备。

0 投票
3 回答
2059 浏览

linux - Debian 8 上的 v4l2 构建错误

我正在按照以下步骤安装视频 4 linux,

http://www.linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers

但是在构建时,会出现以下错误。Debian 8 虚拟机。

0 投票
1 回答
1817 浏览

opencv - 使用 OpenCV 在 Raspberry PI 上捕获 1920x1080 视频

硬件:
1.树莓派 2
2.树莓派相机

软件:
1. OpenCV 2.4.11
2. 用 C++ 编程

我有以下简单的代码,可以从相机捕获视频并将其显示在窗口中。
帧大小始终为 640 x 480,尝试更改帧宽度和高度(如注释行所示)没有帮助,它保持 640 x 480。

我正在寻找一种将框架宽度和高度从我的代码(而不是外壳)更改为 1920 x 1080 的方法。
如果可以从 OpenCV 或 V4l2 驱动程序完成,那就太好了

0 投票
1 回答
507 浏览

linux-device-driver - Linux V4L 驱动程序 - 轮询相机输入格式

我不熟悉 Linux 内核开发,但我的任务是更新内核驱动程序,以便它返回一个应用程序可以读取的状态代码。这将要求驱动程序每秒轮询硬件几次,以查看正在发送的相机格式(PAL、NTSC 或无)。

但是,我不知道如何实现这一点。我了解驱动程序如何与硬件通信,但我不了解如何将此数据传递给应用程序。这种行为是否需要使用 ioctl() 调用或者这是一个读取文件操作?此外,如果应用程序正在调用 IOCTL 或读取函数,然后需要等待硬件响应,这是否会产生性能问题?

另外为了补充信息,我正在开发 2.6 版本的内核。我正在研究“Linux Device Drivers 3rd Ed”,但在如何解决这个特定问题方面没有什么突出的。LDD3 使它听起来像 ioctl() 仅用于向驱动程序发送命令。由于这是一个 V4L 驱动程序,我认为打开文件将返回图像数据,而不是我想要的状态信息。

0 投票
0 回答
207 浏览

linux - 如何查询 Linux DVB 内核解复用缓冲区中的可用数据大小?

我正在使用 Linux-DVB 前端/解复用驱动程序对来获取从直播 TS 重新混合到用户空间的程序流。但是,我正在使用轮询/读取组合,以将上下文切换和内核到用户空间的复制惩罚保持在最低限度,我只想读取大于特定大小的数据。

我找不到任何方法来查询 demux 缓冲区中的可用数据大小,也找不到任何选项来指定轮询通知大小。

有人知道这样的功能吗?如果没有,在DVB api上有这样的功能要求是不是很不合理?

问候,

0 投票
2 回答
1567 浏览

android - 通过 ndk 和 V4L 在 Android 上预览 USB 网络摄像头

我正在尝试从 Android ndk 访问 USB 网络摄像头。

Android 系统有 V4L 内核模块,所以我认为最好使用 V4L 库。它们捆绑在 ndk 中,因此将它们包含在我的项目中并不是什么大问题。

我的问题如下:

我需要打开 /dev/video4 并将 ioctl 发送到该文件描述符,但我无权访问 /dev/video4。我想到了三件事:

1) 为什么我缺少 /dev/video4 的权限?我的app使用了android.permission.CAMERA权限,所以运行app的用户应该在camera组,camera组对/dev/video4有r+w权限,为什么打不开呢?

2)我试图从java端获取文件描述符,这可以通过UsbManager类来实现,但是文件描述符指向/dev/bus/usb/001/004。有没有办法从 Java 端请求 /dev/video4 的权限?或者我可以包含一个用户空间 V4L 库并将指针传递给 /dev/bus/usb/001/004 中的通用 USB 设备吗?

3) OpenCV 的android 版本是否支持V4L?我可以使用它来预览相机而无需访问 /dev/video4 吗?

有没有人尝试过这样的事情?

另外,我知道有一些库使用 libusb 和 libuvc 来连接相机(例如https://github.com/saki4510t/UVCCamera),但是这个库非常不稳定并且不能提供令人满意的结果。

0 投票
1 回答
444 浏览

v4l2 - 带有回调而不是轮询循环的 V4L2 预览

我刚开始研究 V4L2,我能找到的所有样本都使用循环来轮询来自相机的图像。有没有办法注册回调而不是循环?我不知道什么时候轮询图像,而且一直轮询似乎不是一个好主意,或者是吗?

这是我目前正在查看的示例> https://linuxtv.org/downloads/v4l-dvb-apis/capture-example.html 主循环的某些部分是否阻塞并等待下一帧?