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.
Zamčeno
Uživatelský avatar
xsouku04
Administrátor
Příspěvky: 8146
Registrován: pát 15. říj 2010 11:11:44
Bydliště: Brno
Kontaktovat uživatele:

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

Příspěvek od xsouku04 »

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
Largon
Příspěvky: 448
Registrován: pon 07. lis 2011 10:14:09

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

Příspěvek od Largon »

Nedávno vyšel zajímavý blogový zápisek na toto téma na Abclinuxu: Kamerové systémy
Zamčeno