问题标签 [uvc]

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 投票
1 回答
1907 浏览

webcam - 在 Android 设备中未检测到 USB 网络摄像头

我创建了一个基于 UVC 的应用程序来连接 USB 外部网络摄像头 [Logitech c170] 与 android 设备。我遵循此链接中的编码。构建项目后,执行 Native NDK Build 操作并将 libs 文件夹复制到我的目录中。

该程序已成功构建并运行,但它不会显示与我的平板电脑的 USB 连接。

在 device_filter.xml 文件中,我还包含了我的网络摄像头的产品 ID 和供应商 ID(供应商 ID:046D,产品 ID:082B)。

如何将我的网络摄像头连接到安卓设备。引导我!!

提前致谢 !..

0 投票
0 回答
136 浏览

android - android中的USB设备没有声音

我已将 USB 设备(uvc)连接到我的 android 设备。当 USB 设备连接时,文件 dev/video0 被创建并且 iam 能够通过读取 dev/video0 文件来显示视频。现在我正在尝试读取音频数据,在 dev/snd 文件夹中创建了两个文件 controlC0 和 PCMC0D0c。谁能告诉我如何播放 PCMC0D0c 中的内容?谢谢你

0 投票
1 回答
195 浏览

windows - MS Media Foundation Session 默认演示者 - 视频纵横比错误

(痛苦地)学习如何使用拓扑和会话来呈现捕获的视频。没什么特别的——只需选择一个网络摄像头,列出它的模式,选择一种视频格式,然后点击“开始”。一般来说,这些是我呈现视频捕获的步骤:

  1. 列出具有MFEnumDeviceSources()过滤条件的可用设备MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID并让用户选择一个
  2. GetStreamDescriptorCount()在激活源并创建 Presentation Descriptors 之后列出流CreatePresentationDescriptor()并让用户选择一个流(如果有多个流可用)
  3. 根据IMFMediaType可用的列表显示所有支持的视频格式,GetMediaTypeByIndex()并让用户选择一种

一旦选择了确切的格式,我就会以这种方式构建拓扑:

  1. 调用MFCreateTopology()创建一个新IMFTopology对象
  2. 创建媒体接收器激活MFCreateVideoRendererActivate()
    1. 确保调用当前选择SetCurrentMediaType()的对象IMFMediaTypeHandlerIMFStreamDescriptor
  3. 创建源节点MFCreateTopologyNode(),通过调用设置其表示和流描述符SetUnknown()并将该节点添加到拓扑
    1. 确保将其电流设置IMFMediaType为用户选择的SetCurrentMediaType()
  4. 创建一个输出节点并调用SetObject()它,提供先前创建的媒体接收器激活对象(来自上面的步骤 5)
  5. 将源连接到输出并ConnectOutput()为其提供节点 ID0

单击“预览”按钮时,会IMFMediaSession使用新拓扑设置会话对象(在应用程序启动时创建)

这就是我看到一些奇怪的地方。我根据用户选择的帧尺寸设置预览视频的大小,IMFMediaType并且源似乎正在以该格式生成视频。然而,渲染器错误地处理了像素纵横比,并且在将图片呈现为垂直或水平拉伸的同时对视频进行了信箱/邮筒处理。

对于我的一生,我无法找到告诉渲染器调整正确像素纵横比的方法(在上面的步骤 5.1 中设置为正确的值)


MS 的 SDK 示例仅显示如何为未压缩格式呈现捕获的视频 - 它不使用IMFMediaSession对象并且适用于YUV2格式但不适用于MJPG. 事实上,它工作得很好,我认为继续使用会话会很容易:)

使用IMFMediaSession似乎是支持压缩视频格式的最简单的方式,尤其是H.264在较新的UVC 1.5标准中以及H.265将来出现的任何新 (?) 格式中。

0 投票
0 回答
1242 浏览

android - 内窥镜应用程序 USB 设备在打开 LED 灯时分离?


我使用库UVCCamera开发了一个支持内窥镜的 Android 应用程序。一切正常,但是当使用带 LED 灯的相机时,稍后相机将断开连接并显示消息“USB DEVICE DETACHED”。此错误也无法在日志控制台中找到且不显示。

当我在Google Play(CameraFi,UsbWebCamera)中使用类似应用程序测试该应用程序时,我也发现了同样的问题。对此有何建议?

这个链接是我录制的视频。https://www.youtube.com/watch?v=BkXbZo6AO8c
我在测试中使用三星 Note 2 和 Redmi2。

谢谢你。

0 投票
0 回答
1279 浏览

webcam - Logitech C920 uvcdyntrl 中的曝光设置?

我设法手动和固定设置曝光值,以及罗技 C920 网络摄像头的任何其他可控值。(我正在用它进行计算机视觉研究)。但是,我找不到任何来源告诉我曝光值的单位:

uvcdynctrl -d /dev/video1 -s“曝光(绝对)”——10

它似乎低至 3,高至 255,较低的值会导致图像更暗(更短的快门速度/曝光时间)。

谁能告诉我这些值如何映射到毫秒的方程式?

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 回答
688 浏览

linux - 用于linux的VGA采集卡

我正在寻找一个“用于 linux 的 VGA 采集卡”,它以这样一种方式从远程计算机捕获 VGA 输入,以便我可以使用 V4L2 来捕获提要。请推荐一些。

0 投票
0 回答
539 浏览

android - 使用 ZBar 读取位图图像

在我的 android 应用程序中,我使用 USB 摄像头作为图像捕获方法。为此,我正在使用UVCCamera库。这背后的想法是用这个cameta读取条形码,因此从这个输入中创建位图,并将使用ZBar库对其进行解码

但我现在遇到的问题是,ZBar 只能读取“GRAY”和“Y800”图像格式。所以我的问题是如何用 ZBar 读取位图。

我尝试了以下方法,但失败了:

但是当我这样做时,程序会因“致命信号 11 (SIGSEGV)”消息而崩溃。

关于 android 设备的处理能力和内存,扫描此类图像的最佳方法是什么。

谢谢。

0 投票
1 回答
406 浏览

linux - V4L2 帧上的系统偏移

我正在使用 V4L2 API 从 UVC 设备中抓取帧。我想通过计算帧的时间戳和当前时钟时间之间的偏移量来测量曝光时间。这是我正在使用的代码:

设置为 1 秒的曝光时间返回的示例VIDIOC_S_CTRL

我在SRC_SOE时间戳和单调时钟之间得到了奇怪的 30 秒偏移,其中有 1 秒的曝光焊接。V4L2/UVC 时间戳应该是从ktime_get_ts(). 知道我做错了什么吗?

这在 Linux 4.4 Gentoo 系统上运行。网络摄像头是 DMK21AU04.AS,被认为是标准的 UVC 设备。

0 投票
2 回答
2779 浏览

linux - Linux 作为 USB UVC 设备

使 Linux 设备 (Raspberry Pi) 的行为类似于另一台计算机的 UVC 设备需要什么?本质上,我想使用 ffmpeg 的输出来表现得像另一台计算机的网络摄像头输入。