Kamerový systém pod linuxem za pár stovek a pět minut práce

Odkazy na zajímavé články ze světa Linuxu.

Kamerový systém pod linuxem za pár stovek a pět minut práce

Příspěvekod xsouku04 » úte 14. říj 2014 12:26:04

Máte-li neustále běžící linuxový počítač, můžete mít i kamerový monitorovací systém za cenu USB webkamery - tedy za pár stovek.
Filmečky s desetiminutovými záznamy jsou v adresáři ~/usbkamera pojmenovávány Tue_09_00.avi Tue_09_10.avi Tue_09_20.avi atd.
Tedy každých 10 minut záznamu má svůj soubor. Po týdnu se soubory automaticky přemazávají.
Pokud tedy chci vidět, co se dělá v danou dobu. (je zde spor např. jakou bankovkou bylo zaplaceno) jednoduše najdu příslušný filmeček a posunu se v čase na příslušnou minutu. Tedy ovládání zvládne každý, kdo zvládne procházet složku souborů.

V našem případě tento skript funguje bezchybně a bezúdržbově od roku 2011. Úplně jsem na něj tedy zapomněl, nicméně občas byla nahraná videa použita pro případ sporu u objasnění, kdo kolik platil a dostal zpět.

/home/user/usbkamera/nahrej.rb
Kód: Vybrat vše
#!/usr/bin/ruby
# encoding: utf-8
 
nazev_souboru=Time.now.strftime("%a_%H_%M") # den hodina minuta

#p co_spustit="ffmpeg -loglevel error  -t 40  -f video4linux2 -s 320x240 -r 5 -i /dev/video0 -y -r 5  #{nazev_souboru}.webm"
p co_spustit="ffmpeg  -t 597  -f video4linux2 -s 320x240  -r 5 -i /dev/video0 -y -r 5  #{nazev_souboru}.avi"
# -y  overwrites output files

`#{co_spustit}`
puts "hotovo"


crontab - chci ukládat jen během pracovní doby.
Kód: Vybrat vše
0,10,20,30,40,50 9,10,11,12,13,14,15,16,17,18,19,20 * * * user   cd /home/user/usbkamera&&/usr/bin/ruby /home/user/usbkamera/nahrej.rb 2>>/home/user/usbkamera/err.log


Pokud se na Vašem hardware občas nepodaří ffmpeg úspěšně pustit použijte verzi:
Kód: Vybrat vše
#!/usr/bin/ruby
# encoding: utf-8
#cron jen v pracovni dobe
#0,10,20,30,40,50 9,10,11,12,13,14,15,16,17,18,19,20 * * * user   cd /home/user/usbkamera&&/usr/bin/ruby /home/user/usbkamera/nahrej.rb >>/home/user/usbkamera/err.log
 
nazev_souboru=Time.now.strftime("%a_%H_%M") # den hodina minuta
 
co_spustit="ffmpeg -v 0 -t 600 -f video4linux2 -s 320x240 -r 5 -i /dev/video0 -y -r 5 #{nazev_souboru}.avi"
 
 puts "#{nazev_souboru}--------------poustim: #{co_spustit}-----------------------"
`#{co_spustit}`
while $?.exitstatus != 0
   puts "#{nazev_souboru}--------------------jeste bezi: #{$?.exitstatus}---------------"
  `#{co_spustit}`
  sleep 1
end
puts "#{nazev_souboru}---------------hotovo #{$?.exitstatus}----------------------"



závislosti: balíček ruby a ffmpeg

Formát webm by měl mít tu vlastnost, že soubor je možné sledovat (třeba z jiné lokality) ještě v době, kdy do souboru je zapisováno. Tuhle vlastnost ale nakonec nevyužíváme, proto jsem zůstal u avi.

Ukázka výstupu:
Obrázek
Uživatelský avatar
xsouku04
Administrátor
 
Příspěvky: 6915
Registrován: pát 15. říj 2010 11:11:44
Bydliště: Brno

Re: Kamerový systém pod linuxem za pár stovek

Příspěvekod Largon » úte 14. říj 2014 12:30:31

Nedávno vyšel zajímavý blogový zápisek na toto téma na Abclinuxu: Kamerové systémy
Uživatelský avatar
Largon
 
Příspěvky: 434
Registrován: pon 07. lis 2011 11:14:09


Zpět na Zajímavosti ze světa Linuxu

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník