Ero sivun ”Web-kameran kuva verkkoon” versioiden välillä
Siirry navigaatioon
Siirry hakuun
p (luokitus) |
(Käännöstä suomeen..) |
||
Rivi 20: | Rivi 20: | ||
[ftp] | [ftp] | ||
#ftp-tilin tiedot | |||
host = ftp.domain.fi | host = ftp.domain.fi | ||
user = kamera | user = kamera | ||
pass = salasana | 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 | dir = cam | ||
# | # Tiedoston nimi ja tyyppi (jpg tai png) | ||
# | # tiedostonnimi.jpg tai tiedostonnimi.png | ||
file = webcam.jpg | 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 | tmp = uploading.jpg | ||
# | # Pidetänkö yhteys avoinna (1) vai avataanko uusi joka kerta (0) | ||
keepalive = 0 | keepalive = 0 | ||
# | # passiivinen ftp (1/0) | ||
passive = 0 | passive = 0 | ||
Rivi 43: | Rivi 47: | ||
interface = - | interface = - | ||
# ftp | # ftp-viestien tulostaminen (paljon tavaraa!) (1/0) | ||
debug = 1 | debug = 1 | ||
# | # Lähetä kuvat? Jos do=0, ottaa ja arkistoi, muttei lähetä verkkoon. | ||
do = 1 | do = 1 | ||
# | # Jotkin serverit vaativat vanhan tiedoston poiston ennen uuden lisäämistä. | ||
# | # 1 = poista ennen lisäystä, 0=lisää päälle | ||
delete_first = 0 | delete_first = 0 | ||
# | # Kuinka monta kuvaa otetaan ennen lähetystä? | ||
# (1 == | # (1 == jokainen kuva lähetetään, 10 lähettäisi joka 10. kuvan) | ||
# ( | # (jos ei asetettu, lähettää jokaisen kuvan) | ||
upload_every = 1 | upload_every = 1 | ||
[scp] | [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 | #target = user@ssh.domain.fi | ||
[grab] | [grab] | ||
#videolaitteen tunnus | |||
device = /dev/video0 | device = /dev/video0 | ||
# | # tilapäistiedoston nimi paikalliskoneella | ||
temp_file = /tmp/webcam.jpg | temp_file = /tmp/webcam.jpg | ||
# | # Viiveen vähennys. Ota 5 kuvaa, hylkää 4 ekaa siivoten näin mmap puskureita | ||
lag_reduce = 5 | 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 | text = %d/%m/%Y %H:%M:%S %Z | ||
#Kuvan koko | |||
width = 352 | width = 352 | ||
height = 288 | height = 288 | ||
# | #viive kuvien ottamisen välillä | ||
delay = 2 | delay = 2 | ||
# | # Korjataanko viivettä hitailla yhteyksillä | ||
# ( | #(pitää peräkkäiset päivitykset järjestyksessä) | ||
correct = 1 | correct = 1 | ||
# | # Skaalataanko kuvaa kaistan leveyden mukaan? | ||
# | # Kuvan lähettämiseen kuluvan viiveen osuus | ||
# 100 | # 100 pois päältä, hyviä arvoja ovat alle 40 | ||
percent = 100 | percent = 100 | ||
# | # Mihin logi kirjoitetaan? Jos rivi kommentoitu, logia ei tehdä. | ||
logfile = /home/user/Temp/.camlog | 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 | #infofile = /home/user/.caminfo | ||
# | # Mihin arkistokuvat tallennetaan? Arkistokuviin isketään päivämääräleima. | ||
archive = /var/www/cam/archive | archive = /var/www/cam/archive | ||
# | # Arkistoidaanko kuvat päivämäärän mukaisiin alihakemistoihin? | ||
# (1 == | # (1 == alihakemistoihin, 0 == yhteen hakemistoon) | ||
archive_subdirs = 0 | archive_subdirs = 0 | ||
# | # Arkistoitujen kuvien tyyppi (jpg/png) | ||
archive_ext = jpg | archive_ext = jpg | ||
Versio 30. lokakuuta 2007 kello 00.55
Web-kameran kuvan saaminen esim. kotisivulleen näkyviin on paljon helpompaa kuin voisi luulla. Tässä ohjeessa Linux-kone ottaa kuvan ja lähettää sen FTP:llä jollekin www-palvelimelle. Mukana on myös html, css ja js-tiedostot palvelimelle kuvan näyttämistä ja automaattista päivittämistä varten. Homma sujuu näin:
Ohjeet
- laita web-kamerasi käyttökuntoon
- asenna camE. Löytynee jakeluversiosi pakettivarastoista tms tai kotisivuilta lähdekoodimuodossa.
- kopioi alla esitetty .camErc -asetustiedosto kotikansioosi ja muokkaa sen asetukset sopiviksi itsellesi kommenttien opastamalla tavalla
- luo palvelimelle kansio johon kuva tullaan julkaisemaan, esimerkiksi nimellä cam
- luo palvelimelle ftp-tunnus camEa varten
- kopioi index.html, cam.js sekä style.css palvelimen cam-kansioon
- käynnistä camE komennolla camE. Se menee taustalle ja täytyy lopettaa tappamalla prosessi. Jos et halua sen menevän taustalle, käynnistä komennolla camE -f
.camErc -asetustiedosto
Kopioi tämä tiedostoksi .camErc kotikansioosi
#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 #an interface to use for non-passive ftp. use "-" to let libcurl choose, or #use a real interface name. (libcurl often chooses incorrectly) interface = - # ftp-viestien tulostaminen (paljon tavaraa!) (1/0) debug = 1 # 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 # create archive thumbnails enable/disable flag and give width/height archive_thumbnails_dir = /opt/images/webcam/thumbnails archive_thumbnails_create = 0 archive_thumbnails_width = 120 archive_thumbnails_height = 90 # jpeg quality (you can save as png etc too, but then quality does squat) quality = 85 input = 0 # 0 for PAL, 1 for NTSC norm = 0 # Goes in the top right. strftime() is run on this too, so put date stuff in # if you like title_text = Weppikamera # color/transparency of title text title_r = 255 title_g = 255 title_b = 0 title_a = 255 # font for title text. fontname/size title_font = arial/8 # fancy font styles # title_style = /path/to/title.style # color/transparency of message text text_r = 255 text_g = 255 text_b = 0 text_a = 255 # font for message text. fontname/size 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 # directory to look for ttf fonts in ttf_dir = /usr/share/fonts/truetype/msttcorefonts # file to check for before shooting. while this file exists, no shots will be taken. blockfile = /home/user/BLOCKCAM # image to upload when blockfile is first put in place # offline_image = /home/gilbertt/.block.jpg # File to check before shotting, while this file exists, shots will be taken. # but not uploaded. blockimage will not be uploaded if you set this. uploadblockfile = /home/user/BLOCKUPLOAD # Shots will only be taken/uploaded if the specified interface is active. #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; ######################################################## # PWC specific features (only for philps cams right now) # framerate of cam capture, lower fps -> less grainy image, more chance or # blurred motion framerate = 5 # image settings (0-100) colour = 50 brightness = 50 contrast = 50 hue = 50 whiteness = 50 # White balance mode # can be "auto", "indoor", "outdoor", "fluorescent" or "manual" pwc_wb_mode = auto # if _mode is set to manual, these two controls affect the balance # (0-100) pwc_wb_red = 50 pwc_wb_blue = 50 ########################################################
index.html
Kopioi tämä tiedostoksi index.html palvelimelle ylläluotuun cam-kansioon
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <?xml version="1.0" encoding="utf-8"?> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>OmaKamera</title> <link rel="stylesheet" href="style.css"> </head> <body onload='refreshcam();'> <div id="page"> <div id="upper"> <img id="feed" src="webcam.jpg" alt="live feed" style="width:640px; height: 480;"> <p>Minun Oma Weppikamera. </p> </div> </div> </body> <script type="text/javascript" src="cam.js"></script> </html>
cam.js
Kopioi tämä tiedostoksi cam.js palvelimelle ylläluotuun cam-kansioon
var refreshrate = 2000; var ns4 = (document.layers); var ie4 = (document.all && !document.getElementById); var ie5 = (document.all && document.getElementById); var ns6 = (!document.all && document.getElementById); var loadingimage = new Image(); var e = kGetElement('feed'); function kGetElement(id) { if (ns4) return document.layers[id]; else if (ie4) return document.all[id]; else if (ie5 || ns6) return document.getElementById(id); else return false; } function loaded() { if (!e) e = kGetElement('feed'); if (e) e.src = this.src; } function refreshcam() { if (loadingimage.complete || ie4 || ie5) { var now = new Date(); loadingimage = new Image(); loadingimage.onload = loaded; loadingimage.src = 'webcam.jpg?' + now.getTime(); } setTimeout('refreshcam()', refreshrate); }
style.css
Kopioi tämä tiedostoksi style.css palvelimelle ylläluotuun cam-kansioon
body { background-color: #1e1e1e; color: #E0E0E0; text-align: center; font-family: verdana; font-size: 11px; padding: 0px; margin: 12px; } h1 { font-size: 30px; } a { color: #3551FB; text-decoration: none; background-color: transparent; } a:hover { color: #5671FC; text-decoration: underline; background-color: transparent; } #page { margin: auto; background-color: black; width: 660px; height: 570px; border: 1px solid #353535; text-align: center; } #upper { width: 800px; margin: auto; margin-top:10px; margin-left:10px; margin-right:10px; text-align: left; padding-top: 0px; }