从网络摄像头按钮抓取信号

时间:2018-02-04 19:34:10

标签: python python-2.7

我有一个网络摄像头,它有按钮。在Windows中,当我按下该按钮时,它会抓取图像快照。但现在我在linux上,我正在使用VLC从我的usb网络摄像头观看视频" / dev / video0"。我想使用python一旦推送就从该按钮获取信号 - 我的意思是获取此信号(不自动获取快照)。 我试着谷歌,但没有运气。我不想使用opencv或gstreamer将视频导入新窗口,我只需要在按下网络摄像头上时抓取信号。知道如何获得这个信号吗?

1 个答案:

答案 0 :(得分:1)

使用python-evdev,您可以捕获鼠标,键盘,...以及网络摄像头等输入设备触发的事件

   evdev是内核用于转发的仅Linux通用协议   有关用户空间的输入设备的信息和事件。它不仅仅是   对于鼠标和键盘,但任何具有任何轴,键的设备   或按钮,包括网络摄像头和遥控器等。每   设备表示为设备节点的形式   / dev / input / event0,随着您添加更多内容,尾随数字会增加   设备。拔下设备后重新使用节点号,所以   不要将设备节点硬编码到脚本中。设备节点是   也只能由root读取,因此您需要运行任何调试工具   也是根。

http://who-t.blogspot.de/2016/09/understanding-evdev.html

网络摄像头的按钮也分配了一个事件,你必须找到/dev/input/个文件夹

http://python-evdev.readthedocs.io/en/latest/tutorial.html运行以下代码以获取网络摄像头的/dev/input路径:

列出可访问的事件设备

 import evdev

 devices = [evdev.InputDevice(fn) for fn in evdev.list_devices()]
 for device in devices:
     print(device.fn, device.name, device.phys)