Eu decidi o que eu acho que é uma resposta muito melhor, apesar de exigir a instalação de outro pacote. A instalação do v4l-utils
(debian) fornece um comando prático v4l2-ctl
:
$ v4l2-ctl --list-devices
HPigh Definition Webcam (usb-0000:00:14.0-11):
/dev/video2
UVC Camera (046d:0821) (usb-0000:00:14.0-13):
/dev/video0
Logitech Webcam C930e (usb-0000:00:14.0-9):
/dev/video1 1.0MP H
. . que pode ser acessado assim:
def find_cam(cam):
cmd = ["/usr/bin/v4l2-ctl", "--list-devices"]
out, err = Popen(cmd, stdout=PIPE, stderr=PIPE).communicate()
out, err = out.strip(), err.strip()
for l in [i.split("\n\t") for i in out.split("\n\n")]:
if cam in l[0]:
return l[1]
return False
Gist aqui .