使用NodeJS访问WebCam?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (110)

有没有人有任何尝试通过节点访问摄像头的经验?我似乎无法找到任何此前的尝试。

为了扩大一点 - 我有一个nodeJS服务器在运行,并且我希望能够在同一个盒子上访问网络摄像机节点正在运行(真的,我更多地使用节点作为客户端实现)。

有谁知道这可以做到吗?

提问于
用户回答回答于

我还没有深入,但你可以使用Python来做到这一点与OpenCV。

然后你可以使用node-python从Node调用python。

http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_gui/py_video_display/py_video_display.html

https://www.npmjs.com/package/node-python

或者,如果所有内容都在Windows上运行,则可以使用.Net和C#与摄像头对话,然后使用edge.js进行.Net调用。

Edge.Js现在通过Mono支持linux,你只需要运行一个Linux发行版,可以使用单声道软件包,或者自己构建单声道。

用户回答回答于

当涉及到使用网络摄像头时,我认为没有什么特别的Node.js,无论你使用什么语言或服务器,概念都是一样的。所涉及的硬件和该硬件的接口是应该定义解决方案的。

最简单的情况是提供通过网络摄像头包含的软件定期保存到磁盘的单个快照,或者你可以进行系统调用,调用本地进程或程序以按需保存快照。然后,你可以使用Node.js来定期刷新最新快照。

或者,你可以使用针对操作系统(DirectShow,Windows Image Acquisition,IKPictureTaker,V4L2等)定制的控制器直接与网络摄像头硬件进行连接,并使用Node.js作为传输机制创建实时视频流。

如果您的网络摄像头具有网络接口并已提供流媒体服务器,则可以使用nginx或Apache来代替逆向代理解决方案。其中nginx被用于代理由VLC格式化的网络摄像头流。

这是一个创造性的解决方案,它使用Node.js作为中间服务器,通过获取单个帧,编码图像数据以及使用websockets将图像数据推送到客户端页面上的canvas元素来捕获视频流。

扫码关注云+社区