Satura rādītājs:
- 1. darbība: instalējiet Linux Motion vietnē Raspberry
- 2. darbība. Iestatiet Google fotoattēlu API Python
- 3. darbība: pārbaudiet
- 4. darbība: pēc izvēles: konfigurējiet piekļuvi tīmeklim reāllaika straumēšanas kamerai
- 5. solis: padomi
Video: Raspberry Pi Linux Motion Google fotoattēlu integrācija: 5 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:54
Ideja ir augšupielādēt fotoattēlus un videoklipus, kas izveidoti, izmantojot kustību aktivizētu kameru, kas savienota ar Raspberry Pi, lai augšupielādētu failus mākonī. Programma “Motion” atbalsta augšupielādi Google diskā, izmantojot PyDrive. Šajā rakstā “Kustība” tiek izmantota, lai augšupielādētu pakalpojumā Google fotoattēli.
Aparatūra:
Raspberry Pi 3B+
USB tīmekļa kamera Logitech C920
Aparatūras izvēle nebija noteikta, es vienkārši paņēmu to, kas bija pa rokai.
Priekšnosacījumi:
Ērtības labad Raspberry pi vajadzētu būt jūsu lokālajā tīklā - lai to kontrolētu bez monitora/tastatūras un augšupielādētu/lejupielādētu failus. Lai to izdarītu, datorā jābūt ssh aģentam (piemēram, tepe).
Liels paldies ssandbac par lielisko pamācību. Ja jums nepieciešama plašāka informācija par vides iestatīšanu, izlasiet šo rakstu. Es no tā aizņēmos kustības instalēšanu un darbību konfigurēšanu un pievienoju dažas izmaiņas. Jo īpaši, tā vietā, lai nosūtītu failus un brīdinājumus pa e -pastu, šajā piemērā tiek izmantota augšupielāde Google fotoattēlu kopīgotajā albumā un paziņojumu joslā tiek saņemti paziņojumi par “pievienotiem fotoattēliem”.
Tālāk ir norādītas darbības.
1. darbība: instalējiet Linux Motion vietnē Raspberry
Īpaši šajā piemērā tika izmantota kustība v4.0.
1.1 Atjaunināt pi
pi@raspberrypi: ~ $ sudo apt-get update
pi@raspberrypi: ~ $ sudo apt-get upgrade
1.2 Kustības lejupielāde
pi@raspberrypi: ~ $ sudo apt-get install motion
1.3 Tagad rediģējiet šo failu ar šādām izmaiņām
pi@raspberrypi: ~ $ sudo nano /etc/motion/motion.conf
# Sāciet dēmona (fona) režīmā un atlaidiet termināli (noklusējums: izslēgts)
ieslēgts dēmons
# Izmantojiet failu, lai saglabātu žurnālu ziņojumus, ja netiek izmantoti stderr un syslog. (noklusējums: nav definēts)
logfails /var/log/motion/motion.log
# Attēla platums (pikseļi). Derīgs diapazons: atkarīgs no kameras, noklusējums: 352
platums 1920
# Attēla augstums (pikseļi). Derīgs diapazons: atkarīgs no kameras, noklusējums: 288
augstums 1080
# Maksimālais uzņemamo kadru skaits sekundē.
kadru ātrums 30
# Norāda iepriekš uzņemto (buferizēto) attēlu skaitu pirms kustības
5
# Kadru skaits, ko uzņemt pēc kustības, vairs netiek noteikts
post_capture 5
# Izvadiet “normālus” attēlus, kad tiek konstatēta kustība (noklusējums: ieslēgts)
output_pictures izslēgts
# Jpeg saspiešanai izmantojamā kvalitāte (procentos)
kvalitāte 100
# Izmantojiet ffmpeg, lai reāllaikā kodētu filmas
ffmpeg_output_movies izslēgts
# vai diapazons 1 - 100, kur 1 nozīmē sliktāko kvalitāti un 100 ir labākā.
ffmpeg_variable_bitrate 100
# Veidojot videoklipus, kadri ir jādublē secībā
ffmpeg_duplicate_frames nepatiesa
# Bool, lai iespējotu vai atspējotu ekstpipe (noklusējums: izslēgts)
use_extpipe on
extpipe ffmpeg -y -f rawvideo -pix_fmt yuv420p -video_size %wx %h -framerate %fps -i caurule: 0 -vcodec libx264 -preset ultrafast -f mp4 %f.mp4
target_dir/var/lib/motion
# Komanda, kas jāizpilda filmas faila gadījumā
; on_movie_end sudo python3 /var/lib/motion/photos.py %f.mp4 &
Pēdējo atstājiet ar semikolu (komentēts), lai komentētu pēc tam, kad esat nodrošinājis, ka videoieraksts un augšupielāde darbojas.
1.4 Pēc tam mainiet
pi@raspberrypi: ~ $ sudo nano/etc/default/motion
pi@raspberrypi: ~ $ start_motion_daemon = jā
2. darbība. Iestatiet Google fotoattēlu API Python
2.1 Šim nolūkam ieteicams izveidot jaunu kontu, lai kopīgotu albumu ar galveno, lai saņemtu paziņojumus par jaunu failu pievienošanu, kā arī vairāk vietas krātuvē. Iespējojiet Google fotoattēlu API kontam, kuru izmantosit augšupielādei.
Pēc tam jums vajadzētu iegūt failu credentials.json.
2.2 Python vides iestatīšana
Būtībā vides iestatīšana ir nepieciešama tikai avenēm. Bet tam ir nepieciešama autorizācija, kas ir ērtāk izpildāma datorā. Lai to izdarītu avenēs, tam jāpievieno monitors/tastatūra vai jāizveido attālās darbvirsmas lietotāja saskarne. Es tikko instalēju to pašu vidi gan avenēs, gan datorā. Tātad soļi 2.2.1..2.2.3 tika veikti personālajā datorā, 2.2.1, 2.2.2, 2.2.5, 2.2.6 Rpi
2.2.1 instalējiet Python 3
2.2.2 Instalējiet Google API paketes saskaņā ar rokasgrāmatu*(sk. 5.1)
Datorā
pip3 instalēt-jaunināt google-api-python-client google-auth-httplib2 google-auth-oauthlib
Uz aveņu
pi@raspberrypi: ~ $ sudo pip3 install-upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
2.2.3 Pārbaudiet skripta augšupielādi Google fotoattēlos. Tas ir ievietots manā github. Ievietojiet to tajā pašā direktorijā ar credentials.json.
2.2.4 Uzņemiet attēlu un pārbaudiet augšupielādi
python3 photos.py image.jpg
Instalējiet trūkstošās atkarības, ja tādas ir, un mēģiniet vēlreiz. Rezultātā jums vajadzētu iegūt token.pickle skripta direktorijā un arī jaunu koplietojamu albumu, kas izveidots jūsu Google fotoattēlu tīmekļa saskarnē ar attēlu.jpg. Iegūstot token.pickle, jums vairs nav nepieciešami credentials.json vietnei photos.py tajā pašā direktorijā.
2.2.5 Kopīgojiet albumu ar kontu, kurā vēlaties saņemt paziņojumus par jaunu multivides pievienošanu. Pievienojiet šo kontu savam tālrunim.
2.2.6 Ievietojiet photos.py un token.pickle mapē/var/lib/motion on aveņu. “Pi” lietotājs nevar rakstīt “motion” dir, tāpēc vispirms augšupielādējiet to /home /pi
scp photos.py token.pickle pi@IP:/home/pi
Pēc tam piesakieties avenēs un pārvietojiet failus zem sudo
ssh pi@IP
pi@raspberrypi: ~ $ sudo mv photos.py token.pickle/var/lib/motion
2.2.7 Pārbaudiet, kā augšupielāde darbojas avenēs. Uzņemiet kādu attēlu ar fswebcam un mēģiniet to augšupielādēt
pi@raspberrypi: ~ $ sudo fswebcam /var/lib/motion/image.jpg
pi@raspberrypi: ~ $ sudo python3 /var/lib/motion/photos.py /var/lib/motion/image.jpg
Albumā “helloworld” varētu būt image-j.webp
3. darbība: pārbaudiet
3.1 Sāciet Motion pakalpojumu
pi@raspberrypi: ~ $ sudo pakalpojuma kustības sākšana
Jūs varat mainīt komandu uz "stop" vai "restart"
3.2 Iespējot kustību žurnālus
pi@raspberrypi: ~ $ tail -f /var/log/motion/motion.log
3.2 Skatiet kameras izvadi citā ierīcē, kas savienota ar to pašu vietējo tīklu. Ievadiet pārlūkprogrammā:
IP: 8081
3.3 Aplūkojot žurnālus, pagaidiet, līdz tiek konstatēta kustība un fails NAME.mp4 tiek ierakstīts mapē/var/lib/motion. Pēc tam manuāli palaidiet skripta augšupielādi
pi@raspberrypi: ~ $ sudo python3 /var/lib/motion/photos.py /var/lib/motion/NAME.mp4
Pārbaudiet pitona pēdas. Pagaidiet, kamēr event_end tiks parādīts kustībā.log. Pēc tam dodieties uz albumu “helloworld” savos Google fotoattēlos un pārbaudiet, vai ir augšupielādēts videoklips.
3.4 Ja augšupielāde ir veiksmīga, komentējiet /etc/motion.conf rindā:
pi@raspberrypi: ~ $ sudo nano /etc/motion.conf
# Komanda, kas jāizpilda, kad filmas fails ir gatavs
on_movie_end sudo python3 /var/lib/motion/photos.py %f.mp4 &
pi@raspberrypi: ~ $ sync
pi@raspberrypi: ~ $ sudo pakalpojuma kustības restartēšana
3.5 Skatoties kustību žurnālos un albumā, pārbaudiet, vai videoklips tiek augšupielādēts automātiski.
3.6 Pēc izvēles kopīgojiet albumu ar savu galveno kontu, lai saņemtu paziņojumu par jaunā videoklipa vai fotoattēla pievienošanu.
4. darbība: pēc izvēles: konfigurējiet piekļuvi tīmeklim reāllaika straumēšanas kamerai
Šis solis ir balstīts uz Mišela Parreno apmācību. Es vienkārši izvēlējos FreeDNS, nevis NoIP, kā ieteikts šeit.
4.1 Konfigurējiet autorizētu piekļuvi video straumēšanas kustību serverim:
pi@raspberrypi: ~ $ sudo nano /etc/motion/motion.conf
# Iestatiet autentifikācijas metodi (noklusējums: 0)
# 0 = atspējots
# 1 = Pamata autentifikācija
# 2 = MD5 īssavilkums (drošāka autentifikācija)
straume_auth_metode 2
# Straumes autentifikācija. Sintakses lietotājvārds: parole
# Noklusējums: nav definēts (atspējots)
webcontrol_authentication lietotājvārds: parole
# Maksimālais kadru ātrums straumēm (noklusējums: 1)
30. straume
# Ierobežot straumes savienojumus tikai ar localhost (noklusējums: ieslēgts)
stream_localhost izslēgts
Ja jūs neizmantojat tīmekļa vadības saskarni no ārējā tīkla, atstājiet to atspējotu (pēc noklusējuma)
# Ierobežot vadības savienojumus tikai ar localhost (noklusējums: ieslēgts)
webcontrol_localhost ir ieslēgts
Turklāt, tā kā avenes ir tiešsaistē, iesaku mainīt aveņu noklusējuma paroli
pi@raspberrypi: ~ $ passwd
Lai gan ssh 22. ports nav novirzīts uz aveņu, tomēr.
4.2 Dodieties uz FreeDNS vietni
4.3 Reģistrēties
4.4 Pievienot apakšdomēnu (dalībniekiem -> apakšdomēni)
4.5 Izvēlieties DNS klientu, ko instalēt Raspberry (Dalībniekiem -> Dinamiskais DNS -> Dinamiskie DNS resursi -> Dinamiskie DNS klienti)
Es izvēlējos wget_script update.sh no Adam Dean (lapas apakšā)
Ir vietturi _YOURAPIKEYHERE_ un _YOURDOMAINHERE_. Lai tos iegūtu, dodieties uz (Dalībniekiem -> Dinamiskais DNS)
Tālāk esošajā lapā atradīsit skriptu piemērus ar savu APIKEY un DOMAIN (tas, kas pievienots 4.4). Es paņēmu šīs vērtības no Wget Script un nomainīju _YOURAPIKEYHERE_ un _YOURDOMAINHERE_ vietnē update.sh
4.6 Pēc tam palaidiet update.sh uz aveņu. Tas var prasīt dnsutils nslookup. Instalējiet to pēc tam:
pi@raspberrypi: ~ $ sudo apt-get dnsutils
4.7 Pēc tam konfigurējiet savu maršrutētāju, lai pārvirzītu ārējās pasaules pieprasījumus uz 8081 portu uz aveņu ip
4.8 Rezervējiet IP savu aveņu MAC DHCP iestatījumā, lai Rpi vienmēr būtu vienāds ip
4.9. Pēc tam ievadiet pārlūkprogrammā ierīcē, kas nav savienota ar vietējo tīklu:
jūsu domēns: 8081
Ievadiet savus akreditācijas datus, ko definējāt kustībā.conf.
Pārbaudiet, kā darbojas video.
4.10, lai atjauninātu DDNS automātiski iestatīt cron uzdevumu. Skatīt Quick_cron_example on (Dalībniekiem -> Dinamiskais DNS)
5. solis: padomi
5.1 Esiet uzmanīgs, instalējot pitona pakotnes uz avenēm. Es pavadīju dienu, lai to atkļūdotu - problēma bija tāda, ka skripts no konsoles darbojās labi, bet zvanīšana no kustības notikuma atzvanīšanas - ne. Vēl vairāk pasliktināja tas, ka pēdējos gadījumos skripta pēdas nebija pieejamas.
Iemesls bija tāds, ka, ievērojot rokasgrāmatu, es instalēju paketes “pi” lietotājam (kas pēc noklusējuma ir direktorijā /home /pi un ir ierobežots citiem lietotājiem), bet, lai skriptu palaistu kā “kustības” pakalpojuma bērnu, pakotnēm jābūt pieejams arī “kustības” lietotājam. Tāpēc beidzot es to laboju, instalējot paketes kā
sudo pip3…
Tas nav pareizs veids, kas joprojām darbojas. Instalēšana bez sudo kā pip3 -sistēma kaut kādu iemeslu dēļ man radīja kļūdas.
Attiecīgi skriptu sauc arī zem sudo (sk. Motion.conf).
Šīs problēmu novēršanas laikā es veicu daudzas nevajadzīgas izmaiņas un neesmu pārliecināts, kas ir nepieciešams, un tagad esmu slinks, lai tās pakāpeniski atgrieztu un redzētu, kad tas pārstās darboties. Jo īpaši piešķirtas kustības administratora tiesības:
pi@raspberrypi: ~ $ grupas kustība
kustība: kustība adm sudo audio video lietotāji netdev pi
pi@raspberrypi: ~ $ sudo cat /etc/sudoers.d/010_pi-nopasswd
pi ALL = (ALL) NOPASSWD: ALL
kustība ALL = (ALL) NOPASSWD: ALL
Mainījās arī failu īpašnieki un atļaujas, kas līdzīgas augšupielādei Google diskā. Iespējams, tas var jums palīdzēt, ja jums ir līdzīga problēma.
5.2 Google fotoattēlu API ļauj pievienot failus koplietotajiem albumiem, lai ikviens, kam ir saite, varētu tam piekļūt. Nekopīgojiet to ar saiti un dzēsiet vecās filmas vai pārvietojiet tās uz miskasti vai no albuma. Pēdējā gadījumā tie paliek kontā.
5.3 Google fotoattēlu palīgs nosaka sejas, kas ir ļoti noderīgi, ja kameras kvalitāte ir laba. Kā bonuss tas padara izsmalcinātus mediju apkopojumus un-g.webp
5.4 Es mēģināju izmantot 4G LTE USB modemu, lai piekļūtu internetam, un šeit ir mani rezultāti. 5.4.1. Huawei E3372h-153 bez problēmām darbojas kopā ar avenēm un papildu programmatūru. Ir https://howtoraspberrypi.com/create-a-wi-fi-hotspot-in-less-than-10-minutes-with-pi-raspberry/ patiešām vienkāršs ceļvedis, kā to izdarīt, izmantojot RaspAP. 5.4.3 Dinamiskais DNS nedarbojās manas pārneses 4G tīklā. Ir izskaidrojums, kāpēc
5.5 Pēc šīs sistēmas izmantošanas pāris nedēļas izrādījās, lai gan videoklipus ir ērtāk apskatīt un augšupielādēt, Google fotoattēli darbojas labāk ar attēliem. Piemēram, tas ļauj lietu/seju grupēšanai analizēt tikai attēlus un tikai pēc tam meklēt sejas/lietas no videoklipos redzamajiem attēliem, bet ne otrādi. Tāpēc es pārbaudīšu attēlus, augšupielādējot videoklipus.
Ieteicams:
Google fotoattēlu pulkstenis: 7 soļi (ar attēliem)
Google fotoattēlu pulkstenis: šajā pamācībā ir parādīts, kā izmantot ESP32 un LCD, lai katru minūti izveidotu digitālo pulksteni ar nejauši izvēlētu fotoattēlu displeju fonā. Fotoattēli ir iegūti no jūsu kopīgotā Google fotoattēlu albuma, vienkārši ievadiet kopīgošanas saiti ESP32 veiks šo darbu; >
Atklājiet labāko veidu, kā asināt fotoattēlu: 8 soļi
Atklājiet labāko veidu, kā asināt fotoattēlu: izmantojiet Photoshop Elements, lai asinātu mīkstas detaļas, vienlaikus saglabājot artefaktus. Ir vairāki iemesli, kāpēc fotogrāfija var izskatīties nedaudz maiga. Iesācējiem kameras automātiskā fokusa (AF) punkts, iespējams, nav pārklājies galvenajā interešu zonā, jo
Ātra un lieliska fotoattēlu rediģēšana, izmantojot Picasa: 10 soļi (ar attēliem)
Ātra un lieliska fotoattēlu rediģēšana, izmantojot Picasa: Ar lielisku digitālo kameru ir liela atbildība pārvaldīt tūkstošiem fotoattēlu. Tas var radīt sāpes, it īpaši, ja vēlaties tos izmantot, lai dokumentētu Instructables procesu. Es zinu savu Photoshop ceļu, bet biežāk es pievērsos G
Tweetbot - Twitter savienotā fotoattēlu kabīne: 4 soļi (ar attēliem)
Tweetbot - Twitter Connected Photo Booth: Šajā projektā mēs izgatavosim ar Raspberry Pi darbināmu kameru, kuru varēs izmantot ballītēs esošā foto stendā. Pēc fotoattēla uzņemšanas to var ievietot izraudzītajā Twitter kontā, lai visi to varētu skatīt vēlāk. Šī apmācība aptvers t
Kā padarīt fotoattēlu spokainu, izmantojot fotoattēlu redaktoru BeFunky: 3 soļi
Kā padarīt fotoattēlu spokainu ar BeFunky Photo Editor: Jūs varat padarīt jebkuru fotoattēlu (pat vienu no jaukiem kaķēniem) biedējošu, izmantojot befunky fotoattēlu redaktoru, un tas ir tā