Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Nie typowy problem z kamerą USB
#1
0
Na serwerze mam skrypt
Kod:
ffmpeg -i /dev/video0 /var/www/html/kamera/images/123.jpg
Za zwyczaj jest ok!
Wykonywany jest z crona co 2 minuty a jpg wyświetlany na stronie.

Czasem jednak skrypt przestaje działać.
Problem jest w tym, że system zmienia nazwę urządzenia.
Z /dev/video0 na /dev/video1
Serwer chodzi 24 na dobę nie jest restartowany.
Jak rozwiązać problem.
Na szybko rozwiązałem to tak.
Kod:
ffmpeg -i /dev/video0 /var/www/html/kamera/images/123.jpg
ffmpeg -i /dev/video1 /var/www/html/kamera/images/123.jpg
Odpowiedz
#2
0
Skorzystaj z tego poradnika: https://bugs.launchpad.net/mythbuntu/+bu...comments/5
Uzyskaj informacje o urządzeniu za pomocą:
Kod:
udevadm info -a $(udevadm info -q path -n /dev/video0)

dla każdego urządzenia. Przejdź do /etc/udev/rules.d i utwórz nowy plik reguł (z niską liczbą, np. 11) i zmodyfikuj plik tak aby użyć nowego atrybutu i nadaj urządzeniu nową/stałą nazwę. To powinno rozwiązać problem.
Born to be root... not to reboot. Dodgy
Odpowiedz
#3
0
(15-12-2023, 13:51)Xan666 napisał(a): Skorzystaj z tego poradnika: https://bugs.launchpad.net/mythbuntu/+bu...comments/5
Uzyskaj informacje o urządzeniu za pomocą:
Kod:
udevinfo -a -p $(udevinfo -q path -n /dev/video0)

dla każdego urządzenia. Przejdź do /etc/udev/rules.d i utwórz nowy plik reguł (z niską liczbą, np. 11) i zmodyfikuj plik tak aby użyć nowego atrybutu i nadaj urządzeniu nową/stałą nazwę. To powinno rozwiązać problem.
Bądz uprzejmy i napisz mi z jakiego pakietu pochodzi to polecenie. Na serwerze nie mam go.
Muszę go zainstalować.
Odpowiedz
#4
0
Mój błąd, udevinfo zostało zastąpione przez udevamd, a ten przez "udev" Smile powinno być zainstalowane w Mint-cie. Wyedytowałem kwerendę. Spróbuj czy zadziała.
Born to be root... not to reboot. Dodgy
Odpowiedz
#5
0
(15-12-2023, 13:51)Xan666 napisał(a): Skorzystaj z tego poradnika: https://bugs.launchpad.net/mythbuntu/+bu...comments/5
Uzyskaj informacje o urządzeniu za pomocą:
Kod:
udevadm info -a $(udevadm info -q path -n /dev/video0)

dla każdego urządzenia. Przejdź do /etc/udev/rules.d i utwórz nowy plik reguł (z niską liczbą, np. 11) i zmodyfikuj plik tak aby użyć nowego atrybutu i nadaj urządzeniu nową/stałą nazwę. To powinno rozwiązać problem.
/etc/udev/rules.d i tam zrobic plik 11??

Dodano po pewnym czasie:
(15-12-2023, 15:46)Xan666 napisał(a): Mój błąd, udevinfo zostało zastąpione przez udevamd, a ten przez "udev" Smile powinno być zainstalowane w Mint-cie. Wyedytowałem kwerendę. Spróbuj czy zadziała.
Zainstalowałem to na serwerze.
Serwer Debian 12
jaka składnia dla tego polecenia "udev" dla /dev/video0
Odpowiedz
#6
0
Kod:
ID_VENDOR_ID=$(udevadm info /dev/video0 | grep ID_VENDOR_ID | sed -e 's#.*=\(\)#\1#') ; ID_MODEL_ID=$(udevadm info /dev/video0 | grep ID_MODEL_ID | sed -e 's#.*=\(\)#\1#') ; ID_V4L_PRODUCT=$(udevadm info /dev/video0 | grep ID_V4L_PRODUCT | sed -e 's#.*=\(\)#\1#'); echo SUBSYSTEMS=="\"usb"\", ENV{ID_VENDOR_ID}=="\"$ID_VENDOR_ID"\", ENV{ID_MODEL_ID}=="\"$ID_MODEL_ID"\", ENV{ID_V4L_PRODUCT}=="\"$ID_V4L_PRODUCT"\", ENV{DEVNAME}=="\"/dev/video0"\"

To co wypluje wrzuć do pliku:
Kod:
/etc/udev/rules.d/50-kamera-usb.rules

reboot dla pewności i sprawdzić czy dobrze zaczytało:
Kod:
udevadm test $(udevadm info -q path -n /dev/video0)
[Obrazek: userbar.png]
Prowadzę to forum od roku 2007. Przez ten czas projekt minta bardzo negatywnie się zmienił, stąd mogą w moich postach być opinie z którymi można się nie zgadzać.
Odpowiedz
#7
0
(16-12-2023, 17:09)mati75 napisał(a):
Kod:
ID_VENDOR_ID=$(udevadm info /dev/video0 | grep ID_VENDOR_ID | sed -e 's#.*=\(\)#\1#') ; ID_MODEL_ID=$(udevadm info /dev/video0 | grep ID_MODEL_ID | sed -e 's#.*=\(\)#\1#') ; ID_V4L_PRODUCT=$(udevadm info /dev/video0 | grep ID_V4L_PRODUCT | sed -e 's#.*=\(\)#\1#'); echo SUBSYSTEMS=="\"usb"\", ENV{ID_VENDOR_ID}=="\"$ID_VENDOR_ID"\", ENV{ID_MODEL_ID}=="\"$ID_MODEL_ID"\", ENV{ID_V4L_PRODUCT}=="\"$ID_V4L_PRODUCT"\", ENV{DEVNAME}=="\"/dev/video0"\"

To co wypluje wrzuć do pliku:
Kod:
/etc/udev/rules.d/50-kamera-usb.rules

reboot dla pewności i sprawdzić czy dobrze zaczytało:
Kod:
udevadm test $(udevadm info -q path -n /dev/video0)
Czekam na druga kamerę
to samo zrobić z drugą?
Nazwa pliku zapewne musi być inna?
Kod:
/etc/udev/rules.d/51-kamera-usb.rules
Odpowiedz
#8
0
Zmienić video0 na video1 i można dopisać do tego samego pliku. Ewentualnie po prostu używać konfiguracji z /dev/v4l/by-id/ zamiast /dev/camera*
[Obrazek: userbar.png]
Prowadzę to forum od roku 2007. Przez ten czas projekt minta bardzo negatywnie się zmienił, stąd mogą w moich postach być opinie z którymi można się nie zgadzać.
Odpowiedz


Skocz do:




Użytkownicy przeglądający ten wątek: 3 gości