Вот такой скрипт, по итогам:
Код: Выделить всё
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os, sys, commands, cv2, re
vd = []
stat, ls = commands.getstatusoutput( 'ls -l /dev/v4l/by-id' )
if stat != 0:
print( 'no video cameras!' )
sys.exit( 0 )
for dir in ls.splitlines():
i = dir.find( 'index' )
if i < 0: continue
vv = dir[ i: ].split( ' -> ' )
if int( vv[ 0 ][ ( re.search( '\d', vv[ 0 ] ).start( 0 ) ): ] ) != 0:
continue # index not 0
print( vv[ 0 ].strip(), ' | ', vv[ 1 ].strip( ' ./' ) )
vd.append( int( vv[ 1 ][ ( re.search( '\d', vv[ 1 ] ).start( 0 ) ): ] ) )
print( vd )
На десктопе где 2 WEB-камеры висят на USB:
Код: Выделить всё
[olej@xenix Face_recognition]$ ls /dev/video*
/dev/video0 /dev/video1 /dev/video2 /dev/video3
[olej@xenix Face_recognition]$ lsusb
Bus 001 Device 004: ID 0c45:62f0 Microdia
Bus 001 Device 003: ID 1908:2310 GEMBIRD
...
[olej@xenix Face_recognition]$ python find_video.py
('index0', ' | ', 'video0')
('index0', ' | ', 'video2')
[0, 2]
На другом десктопе, где на USB висит всё что угодно, только не WEB-камеры:
Код: Выделить всё
olej@nvidia ~/2018_WORK/own.WORKs/AplitSoft/Face $ lsusb
Bus 001 Device 007: ID 14cd:168a Super Top
Bus 001 Device 004: ID 148f:7601 Ralink Technology, Corp. MT7601U Wireless Adapter
Bus 001 Device 005: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 001 Device 003: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 05d8:4002 Ultima Electronics Corp. Artec Ultima 2000 (GT6801 based)/Lifetec LT9385/ScanMagic 1200 UB Plus Scanner
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 2101:020f ActionStar
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
olej@nvidia ~/2018_WORK/own.WORKs/AplitSoft/Face $ ls /dev/video*
ls: невозможно получить доступ к '/dev/video*': Нет такого файла или каталога
olej@nvidia ~/2018_WORK/own.WORKs/AplitSoft/Face $ python find_video.py
no video cameras!
На SBC DragonBoard 410c ARM64:
Код: Выделить всё
linaro@linaro-alip:~/Face$ uname -a
Linux linaro-alip 4.14.0-qcomlt-arm64 #1 SMP PREEMPT Fri Feb 2 21:19:01 UTC 2018 aarch64 GNU/Linux
linaro@linaro-alip:~/Face$ lsusb
Bus 001 Device 016: ID 046d:082b Logitech, Inc. Webcam C170
Bus 001 Device 015: ID 045e:0750 Microsoft Corp. Wired Keyboard 600
Bus 001 Device 014: ID 046d:c03d Logitech, Inc. M-BT96a Pilot Optical Mouse
Bus 001 Device 017: ID 07a6:8515 ADMtek, Inc. AN8515 Ethernet
Bus 001 Device 013: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 002: ID 0424:2513 Standard Microsystems Corp. 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
linaro@linaro-alip:~/Face$ ls /dev/video*
/dev/video0 /dev/video1 /dev/video2
linaro@linaro-alip:~/Face$
linaro@linaro-alip:~/Face$ python find_video.py
('index0', ' | ', 'video2')
[2]