Kamera wrzucająca zdjęcia do serwera ftp

0

Kamera www wrzuca mi co ok 5 sek obrazek output.jpeg na zewnętrzny serwer ftp. Zdjęcia oglądam "live" na stronie ze skryptem (odświeżanie co 3 sek):

   1.
      <script language=javascript>
   2.
      var image="output.jpeg";
   3.
      var refreshrate=3;
   4.
      var imgwidth=320;
   5.
      var imgheight=240;
   6.
      function refresh(){
   7.
      document.images["pic"].src=image+"?"+new Date();
   8.
      setTimeout('refresh()', refreshrate*1000);}
   9.
      document.write('<img src="'+image+'"height="'+imgheight+'"width="'+imgwidth+'" name="pic">');if(docu
  10.
      ment.images)window.onload=refresh;
  11.
      </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:

#!/bin/bash

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:

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?[/code]

0

A gdyby każdemu zapisowi zdjęcia towarzyszyło kopiowanie jego kopii do jakiegoś pliku, typu "newest.jpg" ? Wtedy ten plik zawsze przechowywałby najmłodsze zdjęcie bez względu na ilość dodanych zdjęć. Archiwizowane zdjęcia warto trzymać też w jakimś podkatalogu, powinno to przy ogromnej liczbie plików przyspieszyć znajdywanie tego konkretnego (bo istniałoby tylko ono).

0

przeczytaj dokładnie post

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.