Skocz do zawartości

Motion mmalcam i parametr -roi


old_man

Pomocna odpowiedź

Przyznam, że działam po omacku 🥺

Raspberry Pi 4 2GB buster.  Motion 4.3.1

Mam problem z parametrem -roi, a dokładniej w połączeniu z mmalcam_control_params. Z raspivid działa on wyśmienicie - wyświetla dokładnie ten obszar jaki chcę. Jednak z motion zdjęcia i nagrania obejmują cały obszar.

Fragment motion.conf

# Video device (e.g. /dev/video0) to be used for capturing.
videodevice /dev/video0
# Parameters to control video device.  See motion_guide.html
; vid_control_params value
# Name of mmal camera (e.g. vc.ril.camera for pi camera).
; mmalcam_name value
# Camera control parameters (see raspivid/raspistill tool documentation)
mmalcam_control_params -hf -f -w 1920 -h 1080 -roi .3333,.3333,.4166,.4444

Zgodnie z informacjami na https://motion-project.github.io/motion_config.html opcja mmalcam nie będzie działać, jeżeli motion został zainstalowany przez apt. Odinstalowałem więc pakiet motion poprzez sudo apt-get purge.

Zainstalowałem odpowiednią paczkę dla swojej malinki (buster armhf) za pomocą dpkg -i <paczka> i nic. 

Usunąłem v4l oraz ponownie zainstalowałem motion za pomocą dpkg. Brak rezultatu.

Odinstalowałem motion za pomocą dpkg oraz na wszelki wypadek za pomocą apt (wiem - widać, że nie wiem co robię 😉 ). 

Zainstalowałem wg instrukcji https://motion-project.github.io/motion_build.html#Install_Deb (Abbreviated Building Guide). Nie zauważyłem błędów. Ucieszyłem się gdy wyłowiłem komunikat Support mmal - yes. Niestety efekt taki sam.

Co robię nie tak? Co pomijam? A może mmalcam służy zupełnie do czego innego?

Link do komentarza
Share on other sites

Jak najbardziej można ustawić roi przy pomocy mmalcam_control_params.
Domyślnie mmalcam_control_params nie działa, więc dobrze że wykonałeś ręczny build i tą wersje zainstalowałeś.

Spróbuj ustawić nazwę kamery:

mmalcam_name vc.ril.camera

 

Link do komentarza
Share on other sites

Cześć, zadziałał Ci ten parametr -roi? 

Mam ten sam problem. Z tym, że używam MotionEye i próbuję go podać w "Extra Motion Optrions", ale do tego musiałem zainstalować również samo motion. Zainstalowałem poprzez dpkg i niestety parametr na odwrócenie obrazu, przykładowo -vf, działa ale -roi za nic nie chce ruszyć. Tak samo przy raspistill -roi działa zadowalająco, ale z motion/motioneye nie do końca.

Link do komentarza
Share on other sites

@k22 Niestety zmiana tego parametru nic nie dała.

@dominik916 Niestety nadal problem występuje i zaczynam podejrzewać, że mmalcam i roi nie działają razem. Zresztą Twoje próby utwierdzają mnie w moich podejrzeniach. Tym bardziej, że skoro odwracanie obrazu działa a 'roi' nie (a próbowałem wszystkie parametry po 0.25 i 0.1), to znaczy, że ta opcja po prostu w tym układzie nie działa.

Przewertowałem wszystkie wyniki z przeglądarki, ale najwidoczniej nikt wcześniej nie miał potrzeby takiej kombinacji ustawień. A tym czyszczeniem na oślep odinstalowałem sobie biblioteki, przez co omxplayer odmówił posłuszeństwa 🥺

Jak komuś działa kombinacja mmalcam i roi, niech da znać!

A tymczasem spróbuję ugryźć problem z innej strony np. poprzez pipe (nagrywanie całości i jednoczesne wyświetlanie na ekranie tylko określonego obszaru), tylko najpierw muszę przeczytać co nieco.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

@old_man jeżeli chodzi o wyświetlanie na LCD, który mam podłączony do maliny to również korzystam z omxplayer. Nie wiem co masz zainstalowane ale MotionEye umożliwia wystawienie podglądu live i otwieram go z omxplayer z parametrem crop :)

przykładowo:

/usr/bin/omxplayer http://localhost:8081 --live --crop 350,370,600,600


Tylko wolałbym to zrobić wcześniej, tak żebym wchodząc na podgląd z innego urządzenia, na www MotionEye, obraz był już przycięty... roi by rozwiązało nasze problemy :D 

  • Lubię! 1
Link do komentarza
Share on other sites

Przeinstalowałem RPiOS kilka razy, za każdym razem instalując motion inaczej, bo myślałem że sterowniki mają jakiś konflikt. Niestety nie ma efektu.

@dominik916 chyba widziałem, że zadałeś podobne pytanie wcześniej na Githubie. Szkoda, że nie uzyskałeś odpowiedzi 😞

O MotionEye wcześniej nie słyszałem (myślałem, że to to samo co MotionEyeOS), zainstalowałem i muszę stwierdzić, że jest o niebo wygodniejszy. Nie muszę pisać skryptów do wysyłki zdjęć na maila 🙂 ani wysyłać na Google Drive osobnym skryptem. Ba! Hasło do konta Google nie jest widoczne w skrypcie. Same zalety.

Niestety mmcal i roi nadal nie działają.

Jeżeli chodzi o:

/usr/bin/omxplayer http://localhost:8081 --live

to w końcu działa, ale z przy większym ruchu ze sporym opóźnieniem i klatkowaniem (przy 20fps i jakości 75%). No i niestety nie działa u mnie opcja --crop 🤬

Link do komentarza
Share on other sites

Tak zgadza się pytałem 😄

Po jakimś czasie ktoś chciał logi ale też przez te zabawy z reinstalacją Motion później mi MotionEye przestawał działać, a nie miałem ostatnio czasu na ponowne reinstalacje 😉. On jest na tyle wygodny, że wszystko już jest gotowe i nie trzeba nic oprawiać, włączasz co potrzebujesz. Próbowałem zmieniać w konfigach, żeby logował wszystko (debug) ale też nic interesującego tam nie widziałem, żeby był jakiś błąd czy coś.

Z cropem dziwne, bo tutaj nic nie musiałem kombinować. Zadziałało mi od ręki. 

Jeszcze sobie zrobiłem uruchamianie omxplayer jako service, w celu prostrzego restartu, po ssh. A jak się zmienia jakieś parametry to omxplayer się zamyka, bo traci źródło.

stworzyłem plik /etc/systemd/system/omxplayer.service:

[Unit]
Description=Live view from door peephole
After=graphical.target

[Service]
TimeoutStartSec=5

ExecStart=/usr/bin/omxplayer http://localhost:8081 --live --crop 350,370,600,600 --fps 15 --timeout 60
Type=simple
User=pi

ExecStop=/usr/bin/killall omxplayer
User=pi

Restart=yes

[Install]
WantedBy=graphical.target

 

Ja zmniejszyłem rozdzielczość na 1024x768 i 15 klatek. Fakt, ze przy nagrywaniu też jest widoczne zwolnienie. Ale przy 1920x1080 lagi były bardzo długie 🙂

Przy mniejszej rozdzielczości niestety większy crop jest potrzebny, bo przy FullHD obraz jest jakby "powiększony" i "bliżej". 

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.