Python 从网络摄像头按钮获取信号

Python 从网络摄像头按钮获取信号,python,python-2.7,Python,Python 2.7,我有一个摄像头,它有按钮。在Windows中,当我按下该按钮时,它会抓取图像快照。但现在我在linux上,我使用VLC从我的usb网络摄像头“/dev/video0”查看视频。我想使用python从按下的按钮获取信号——我的意思是获取这个信号(没有自动抓取快照)。 我试着用谷歌搜索,但没有成功。我不想使用opencv或gstreamer将视频放入新窗口,我只需要在按下网络摄像头上的按钮时捕捉信号。你知道怎么得到这个信号吗 使用pythonevdev可以捕获由鼠标、键盘等输入设备触发的事件,还可以

我有一个摄像头,它有按钮。在Windows中,当我按下该按钮时,它会抓取图像快照。但现在我在linux上,我使用VLC从我的usb网络摄像头“/dev/video0”查看视频。我想使用python从按下的按钮获取信号——我的意思是获取这个信号(没有自动抓取快照)。
我试着用谷歌搜索,但没有成功。我不想使用opencv或gstreamer将视频放入新窗口,我只需要在按下网络摄像头上的按钮时捕捉信号。你知道怎么得到这个信号吗

使用
pythonevdev
可以捕获由鼠标、键盘等输入设备触发的事件,还可以捕获网络摄像头

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

网络摄像头的按钮还分配了一个事件,您必须在
/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)