【问题标题】:Streaming webcam data in Node.js在 Node.js 中流式传输网络摄像头数据
【发布时间】:2016-02-16 22:15:07
【问题描述】:

我有一个 Raspberry Pi(2B,运行 Raspbian Jessie 02/09)和一个网络摄像头(ID 041e:406c Creative Technology, Ltd Live!Cam Sync [VF0520],与 V4L 兼容)。

我正在尝试构建一个机器人,而我想象的相机会是这样的:

Pi (Node.js) -> 服务器(计算机,Node.js,运行 Electron 为相机图像创建窗口)。

目标是使用套接字 (socket.io) 以可用帧速率(10~20?)将数据从 Pi 发送到服务器。

我研究过以下模块:

  • 节点相机,无法正常工作(空白图像),并使用了 websocket。
  • node-opencv (opencv on npm),编译失败,编译时没有正确检测到摄像头(但是 python 用 opencv 完美检测到)

我在互联网上找到的许多指南都要求客户端连接到浏览器,以便能够检索网络摄像头数据,这不是我想要的。

任何帮助将不胜感激,谢谢!

编辑: 澄清一下,我有一个 Node.js socket.io 服务器,我希望 jpeg(或其他格式)网络摄像头数据以合理的帧速率从 Node.js (v5.6.0) 客户端传递给它。

【问题讨论】:

  • 你想要什么?您是否希望能够通过手机访问网络摄像头数据? Java 应用程序?你的问题有点开放式。尝试更具体。
  • 您好,我已经编辑了问题以进一步澄清,谢谢。
  • 关于需要客户端连接到浏览器的指南:您应该离开这些指南,然后再更换浏览器。换句话说,弄清楚如何让相机与 node + 浏览器一起工作,然后弄清楚如何让相机在没有浏览器的情况下与 node 一起工作。
  • 我的 Raspberry Pi 被配置为禁用了 GUI,所以我不确定该怎么做。

标签: node.js


【解决方案1】:

如果您正在构建机器人,您应该看看 ROS(机器人操作系统)。许多相机都有支持 ROS 的驱动程序,它有一个 javascript 界面。

您可能希望发送数据以进行某种处理。同样,如果这是一个机器人,您应该保持正确的代码结构。一部分是低级控制器,另一部分是高级控制器,用于其他代码中的图像处理之类的外部库。使用 ROS 使用的发布者/订阅者方法(还有很多人喜欢的 LCM,我觉得这确实很酷)让您保持更多的秩序,因为您可以更轻松地共享这些数据。

此外,数据的发送方式对用户来说是透明的。也许不是以最有效的方式(也许 LCM 有 - 或有,我不知道 - 更多的性能),但很容易实现。我强烈建议您看看。

也许这个链接可以让你知道你可以做什么:http://wiki.ros.org/image_transport/Tutorials/PublishingImages

请注意,socket.io 声明是实时的。 Web 开发中的实时在机器人技术中意味着完全不同的东西。你应该记住这一点。

【讨论】:

    【解决方案2】:

    我已经设法用 Node.js 安装 opencv 并确认它可以工作。我是这样做的:

    • 安装和编译 OpenCV(3.0.0 适用于我的用途)
    • git clonenode-opencv
    • 删除.git文件夹
    • node-opencv 文件夹中运行npm install
    • node-opencv 重命名为opencv 并移至node_modules
    • cd 到项目目录(包含node_modules 的目录包含opencv

    这些说明来自对node-opencv 的 github 问题跟踪器中发布的问题的回复。

    如果安装后无法打开摄像头,是因为用户无权访问/dev/video。这是我花了几个小时试图弄清楚为什么我无法打开相机后才意识到的。

    在大多数发行版中,您只需将自己添加到 video 组即可访问所有 /dev/video* 设备。

    【讨论】:

    • 按照这些步骤后,我已经能够运行电子了。但是,我无法播放视频。我使用 VNC 访问我的 PI,但这不会导致视频出现问题。我检查了“pi”用户是否在“视频”组中。有什么想法吗?
    猜你喜欢
    • 2011-10-31
    • 2013-05-14
    • 2014-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-22
    • 1970-01-01
    相关资源
    最近更新 更多