Web-kameran kuva verkkoon

Linux.fista
Versio hetkellä 31. lokakuuta 2007 kello 00.02 – tehnyt Pb (keskustelu | muokkaukset)
Siirry navigaatioon Siirry hakuun

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
########################################################