<script language=javascript> var image="output.jpeg"; var refreshrate=3; var imgwidth=320; var imgheight=240; function refresh(){ document.images["pic"].src=image+"?"+new Date(); setTimeout('refresh()', refreshrate*1000);} document.write('<img src="'+image+'"height="'+imgheight+'"width="'+imgwidth+'" name="pic">');if(docu ment.images)window.onload=refresh; </script>
Wszystko jest ok, ale chciałbym tez archiwizować stare zdjęcia. Do tej pory robię to tak, iż skrypt bash odpalany co 1 min w cron kopiuje mi zdjęcia do folderu, dodając im nazwy wg dat:
Kod
#!/bin/bash
KATALOG=$HOME/www/
cp $KATALOG"output.jpeg" $KATALOG"fotki/"$(date '+%Y-%m-%d_%H:%M')\.jpeg
KATALOG=$HOME/www/
cp $KATALOG"output.jpeg" $KATALOG"fotki/"$(date '+%Y-%m-%d_%H:%M')\.jpeg
Dzięki temu mam archiwizowane zdjęcia co 1 min (jest to maxymalna rozdzielczość czasowa crona = 1 min).
Zdjęcia uzyskują nazwy w postaci:
2010-12-26_10:25.jpeg
Martwi mnie jedna rzecz. Chciałbym archiwizacji nie co 1 min ale co 5 sek.Mianowicie kamera wysyła zdjęcia co 5 sek (czasami co 10). Mógłbym oczywiście wysyłać z kamery na ftp zdjęcia z nazwami w postaci (zamiast output.jpeg):
2010-12-26_10:25:05.jpeg
2010-12-26_10:25:10.jpeg
2010-12-26_10:25:15.jpeg
itd.
Tylko teraz:
1.Jak te zdjęcia odświeżać na stronie w miarę wydajnie i szybko ( a więc bez skryptu szukającego "najmłodszego" zdjęcia w katalogu, wydaje mi się ze to długotrwały proces)?
Do tej pory skrypt po prostu odświeżał na stronie zawsze output.jpeg (archiwizacja przez cron co 1 min, a wiec kopiowanie zdjecia z nadaniem mu nazwy wg daty do katalogu /fotki) a teraz archiwizacja miałaby miejsce per se bo kamera wysyłała by zdjęcia w postaci:
2010-12-26_10:25:05.jpeg
Problem z odświeżaniem bieżącego zdjęcia na stronie www, no bo jak wyświetlić z katalogu , w którym jest kilkaset zdjęć w powyższym formacie to aktualne, najnowsze, właśnie wrzucone przez kamerę na ftp?
Pytanie to zadaję w tym dziale bo problem wg mnie jest złożony i z zakresu wielu języków programowania.
BTW. Zdjęcia wrzucam programem ncftpd:
Kod
ncftpput -V -f /root/login.cfg -S .tmp /strony/www /tmp/output.jpeg
gdzie: /root/login.cfg to parametry logowania do serwera ftp, /tmp/output.jpeg to miejsce utworzenia zdjęcia przez kamerę.
Skrypt odpalany co 5 sek przez demona fswebcam robiącego zdjęcie.
Ewentualnie proszę o inne pomysły jak archiwizować zdjęcia co 5 sek, z możliwością interaktywnego wyświetlania zdjęcia ostatniego co 5 sek na stronie.
Mozna oczywiście wysyłać 2 te same plki ale o inych nazwach:
refresh/output.jpeg i archiwum/2010-12-26_10:25:05.jpeg
tylko , że to generuje 2 razy większy ruch...
teraz sobie pomyślałem, że gdyby ncftpput wysyłał 1 zdjęcie source.jpeg ale kopiował je tak jak wyżej w 2 miejsca to ruch byłby ten sam, tylko jak to zrobic przy pomocy ncftpput?