Web-kameran kuva verkkoon
Web-kameran kuvan saaminen www-sivulle on paljon helpompaa kuin voisi luulla. Tässä ohjeessa Linux-kone ottaa kuvan ja lähettää sen FTP:llä jollekin www-palvelimelle. Homma sujuu näin:
- Laita web-kamerasi käyttökuntoon.
- Asenna camE. Löytynee jakelusi paketinhallinnasta tai ohjelman kotisivuilta lähdekoodimuodossa.
- Kopioi alla esitetty .camErc -asetustiedosto kotihakemistoosi ja muokkaa sen asetukset itsellesi sopiviksi kommenttien opastamalla tavalla.
- Luo palvelimelle esimerkiksi cam-niminen hakemisto kuvan julkaisua varten.
- Luo palvelimelle ftp-tunnus camE:a varten.
- Käynnistä camE komennolla camE. CamE menee automaattisesti taustalle ja täytyy lopettaa tappamalla prosessi. Jos et halua sen menevän taustalle, käynnistä ohjelma komennolla camE -f.
- Nyt palvelimelle ilmestyy kuvatiedosto jota päivitetään camErc:ssä määritellyin aikavälein.
- Esimerkki koodista (HTML, CSS ja JavaScript), jolla kuva saadaan näkymään web-sivulla: http://nulldigital.net/articles/how_to_setup_a_webcam_server.htm
.camErc-asetustiedosto
Kopioi seuraava asetustiedosto nimellä .camErc kotihakemistoosi.
#nämä asetukset ottavat kuvan kerran sekunnissa #kuva lähetetään ftp:llä www-palvelimelle kansioon cam #joka 100. kuva tallennetaan paikallisen koneen kansioon /var/www/cam/archive #tarkasta erityisesti yhteysasetukset, tallennuskansiot sekä fonttien kansio! [ftp] #ftp-tilin tiedot host = ftp.domain.fi user = kamera pass = salasana #kansio ftp-palvelimella johon kuvat ladataan. #Jos ftp ottaa yhteyden hakemistoon public_html, tulee cam-hakemiston olla tämän alla. dir = cam # Tiedoston nimi ja tyyppi (jpg tai png) # tiedostonnimi.jpg tai tiedostonnimi.png file = webcam.jpg # tilapäistiedosto, joka luodaan ja vasta sitten siirretään verkkoon. # näin käyttäjät näkevät vain ehjiä kuvia tmp = uploading.jpg # pidetänkö yhteys avoinna (1) vai avataanko uusi joka kerta (0) keepalive = 0 # passiivinen ftp (1/0) passive = 0 # aktiivista ftp-yhteyttä käytettäessä käytettävä käyttöliittymä # oletusarvo "-" on hyvä (libcurl tekee päätöksen) interface = - # ftp-viestien tulostaminen (paljon tavaraa!) (1/0) debug = 0 # Lähetä kuvat? Jos do=0, ottaa ja arkistoi, muttei lähetä verkkoon. do = 1 # Jotkin serverit vaativat vanhan tiedoston poiston ennen uuden lisäämistä. # 1 = poista ennen lisäystä, 0=lisää päälle delete_first = 0 # Kuinka monta kuvaa otetaan ennen lähetystä? # (1 == jokainen kuva lähetetään, 10 lähettäisi joka 10. kuvan) # (jos ei asetettu, lähettää jokaisen kuvan) upload_every = 1 [scp] # Määrittämällä do=0 ja aktivoimalla allaolevan targetin, kuvat lähetetään [[scp]]:n yli. # scp käyttää yllä määriteltyjä asetuksia dir, file, tmp, upload_every setting, joiden tulee olla määritellyt #target = user@ssh.domain.fi [grab] #videolaitteen tunnus device = /dev/video0 # tilapäistiedoston nimi paikalliskoneella temp_file = /tmp/webcam.jpg # Viiveen vähennys. Ota 5 kuvaa, hylkää 4 ekaa siivoten näin mmap puskureita lag_reduce = 5 # Kuvan vasempaan alreunaan tuleva viesti jonka perään 'infofile'ssä määritelyt viesti liitetään # Päivämäärä määritellään strftimen avulla, esimerkiksi %d/%m/%Y %H:%M:%S %Z text = %d/%m/%Y %H:%M:%S %Z #Kuvan koko width = 352 height = 288 #viive kuvien ottamisen välillä delay = 2 # Korjataanko viivettä hitailla yhteyksillä #(pitää peräkkäiset päivitykset järjestyksessä) correct = 1 # Skaalataanko kuvaa kaistan leveyden mukaan? # Kuvan lähettämiseen kuluvan viiveen osuus # 100 pois päältä, hyviä arvoja ovat alle 40 percent = 100 # Mihin logi kirjoitetaan? Jos rivi kommentoitu, logia ei tehdä. logfile = /home/user/Temp/.camlog # Viestiteksti noudetan täältä. Vain yksi rivi sallittu! # Näinollen onnistuu esimerkiksi komento echo "surffaan verkossa" > ~/.caminfo #infofile = /home/user/.caminfo # Mihin arkistokuvat tallennetaan? Arkistokuviin isketään päivämääräleima. archive = /var/www/cam/archive # Arkistoidaanko kuvat päivämäärän mukaisiin alihakemistoihin? # (1 == alihakemistoihin, 0 == yhteen hakemistoon) archive_subdirs = 0 # Arkistoitujen kuvien tyyppi (jpg/png) archive_ext = jpg # determines how many shots are taken before a pic is archived # (1 == every pic, 0 == don't archive) archive_shot_every = 100 # Pienennettyjen kuvien tallennushakemisto, tehdäänkö pikkukuvat (1/0) # ja pikkukuvien koko (leveys ja korkeus) archive_thumbnails_dir = /opt/images/webcam/thumbnails archive_thumbnails_create = 0 archive_thumbnails_width = 120 archive_thumbnails_height = 90 # jpeg-kuvien laatu quality = 85 input = 0 # 0=PAL, 1=NTSC norm = 0 # Kuvan oikeaan yläkulmaan tuleva otsikkoteksti title_text = Weppikamera # Otsikkotekstin väri ja läpinäkyvyys title_r = 255 title_g = 255 title_b = 0 title_a = 255 # Kirjasinlaji ja koko title_font = arial/8 # Erillinen kirjasintyyppi # title_style = /path/to/title.style # Tekstin väri text_r = 255 text_g = 255 text_b = 0 text_a = 255 # Tekstin kirjasinlaji ja koko text_font = arial/8 # fancy font styles # text_style = /path/to/text.style # color/transparency of rectangle behind text # make it 0,0,0,0 to disable. bg_a = 0 bg_b = 0 bg_g = 0 bg_a = 100 # Hakemisto, josta etsitään ttf-kirjasimia ttf_dir = /usr/share/fonts/truetype/msttcorefonts # Jos tämä tiedosto on olemassa, kuvaa ei oteta blockfile = /home/user/BLOCKCAM # Jos em. tiedosto löytyy, tallennetaan kuva tiedostoon # offline_image = /home/gilbertt/.block.jpg # Jos tämä tiedosto löytyy, otetaan kuva mutta ei lähetetä sitä verkkoon uploadblockfile = /home/user/BLOCKUPLOAD # Otetaan kuvia vain, jos seuraava verkkolaite on käytettävissä #watch_interface = ppp0 # image to overlay overlay_image = /home/user/.lb.png overlay_x = 5 overlay_y = 5 # do things. like play sounds or whatever. Each is a shell command. #action_pre_shot #action_post_shot #action_post_upload # image processing # crop = 1 # crop_width = 320 # crop_height = 240 # crop_x = 20 # crop_y = 20 # # scaling is applied after cropping, so you can # remove borders then stretch up the result # scale = 1 # scale_width = 640 # scale_height = 480 # # Flip the image horizontally or vertically. # Horizontal flipping is useful for some Philips cams # which give a mirrored image when used with the pwc module. # flip_horizontal = 1 # flip_vertical = 1 # # Change the orientation of the image. # Useful if your camera is on its side (for whatever reason). # 1 rotates clockwise by 90 degrees, 2, rotates clockwise by 180 degrees, # 3 rotates clockwise by 270 degrees. # orientation = 1; ######################################################## # Philipsin kameroiden knassa toimivia asetuksia # Taajuus (kuvaa sekunnissa) framerate = 5 # Kuvan asetukset (0-100) colour = 50 brightness = 50 contrast = 50 hue = 50 whiteness = 50 # Valkotasapaino, vaihtoehtoja # "auto" (automaattinen), "indoor" (sisätila), "outdoor" (ulkona), "fluorescent" ja "manual" (käsiasetukset) pwc_wb_mode = auto # Asetukset käsiasetuksia käytettäessä # (0-100) pwc_wb_red = 50 pwc_wb_blue = 50 ########################################################