# Axis 205 Netzerk Cam



## deathhero (21. Jan 2005)

Hallo

Ich habe folgendes Problem:

Ich soll ein einfach GUI schreiben, welches Bilder der *Netcam Axis 205  *http://www.axis.com/products/cam_205/ darstellt.

Ich hab aber leider noch nie mit Netzwerkprogrammierung in Java gearbeite, und so fehlt mir auch der komplette Denkansatz: " Wie bekomme ich Bilder von dieser Netzwerkamera auf meinen PC in mein Programm?"

Hat jemand schon einmal mit dieser Kamera gearbeitet ? Oder hätte Tipps wie ich das anstellen könnte ?

mfg deathhero


----------



## foobar (21. Jan 2005)

Wenn die Kamera über ein Webinterface verfügt kannst du mit der Klasse URL darauf zugreifen und dann den Content parsen:


```
url = new URL("http", "localhost", 80, "/cam");
                        connection = (HttpURLConnection) url.openConnection();
                        connection.setRequestMethod("GET");

                        // ################################

                        BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                        String buffer = null;
                        while ((buffer = br.readLine()) != null)
                        {
                                System.out.println( ">>>" + buffer );
                        }
                        br.close();
```


----------



## deathhero (23. Jan 2005)

hmm danke für die schnelle Antwort...

allerdings hat diese Netcam kein Webinterface...

ich hab jetzt einige beschreibungen gefunden und darin war die rede von

JMF PushBufferStream Objekten
und Media Locator Objekten

sprich ich muss mit dem Java Media Framework arbeiten, sofern ich das richtig verstanden habe....

das wird was..  :shock:  :autsch:   

danke trotzdem.....

mfg deathhero

PS: bin natürlich noch immer für div. Vorschläge offen


----------



## foobar (24. Jan 2005)

> allerdings hat diese Netcam kein Webinterface...



Und was ist hiermit?


> The AXIS 205 enables you to remotely view live video and manage the camera from anywhere in the world using any standard Web browser.


Quelle: http://www.axis.com/products/cam_205/


----------



## deathhero (27. Feb 2005)

so wieder mal ich... :roll: 

ich habe jetzt ein prog irgendwie mit hilfe zusammenbekommen....das problem hier liegt allerding darin, dass ich bei dieser version nur genau 1 bild bekomme....

wie soll ich das machen, wenn ich zB jede Sekunde eines haben will ? also quasi ein Live Stream ?


```
import java.awt.*;
import java.awt.image.BufferedImage;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import java.util.*;
import com.sun.image.codec.jpeg.*;


public class Viewer extends Frame {
	
    private Image image;

        public Viewer(String fileName) {

                System.setProperty("http.proxySet", "true");
                System.setProperty("http.proxyHost", "10.1.1.50");
                System.setProperty("http.proxyPort", "8080");
                System.setProperty("http.proxyType", "4");
                String proxyUser = "",
                proxyPassword = "";
             
                
                try{
                          URL u1 = new URL("http://10.1.1.82/jpg/image.jpg");
                     try{
                    
                            URLConnection con = u1.openConnection();
                            
                            con.setRequestProperty("Proxy-Authorization",
                            "Basic " + new sun.misc.BASE64Encoder().encode(
                            (proxyUser + ":" + proxyPassword).getBytes()));
                            
                            con.connect();
                            u1.openConnection();
                            
                                                     
                            Toolkit toolkit = Toolkit.getDefaultToolkit();
                            image = toolkit.getImage(u1);
                           
                            MediaTracker mediaTracker = new MediaTracker(this);
                            mediaTracker.addImage(image, 0);
                                                        
                            try
                            {
                                mediaTracker.waitForID(0);
                            }
                            catch (InterruptedException ie)
                            {
                                System.err.println(ie);
                                System.exit(1);
                            }
                            addWindowListener(new WindowAdapter() {
                            public void windowClosing(WindowEvent e) {
                                System.exit(0); }});
                                
                            setSize(image.getWidth(null), image.getHeight(null));
                            setTitle(fileName);
                            show();
                            saveJPG(image,"k:\\cam\\webcam.jpg");
                                                                             
                      }
                      catch(IOException e){}
                
                }
                catch(MalformedURLException e){}
                }

    

            public void paint(Graphics graphics) {
		
                graphics.drawImage(image, 0, 0, null);
            }
        
        
        public static void saveJPG(Image img, String s)
        {
            BufferedImage bi = new BufferedImage(640, 480, BufferedImage.TYPE_INT_RGB);
            Graphics2D g2 = bi.createGraphics();
            g2.drawImage(img, null, null);

            FileOutputStream out = null;
            try
            {
              out = new FileOutputStream(s);
            }
            catch (java.io.FileNotFoundException io)
            {
              System.out.println("File Not Found");
            }

            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
            JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
            param.setQuality(0.9f,false);
            encoder.setJPEGEncodeParam(param);

            try
            {
              encoder.encode(bi);
              out.close();
            }
            catch (java.io.IOException io)
            {
              System.out.println("IOException");
            }
          }

	public static void main(String[] args) {
		
            for(int i=0; i<100; i++)
             new Viewer("Webcam");
	
        
        }
}
```


----------



## Campino (27. Feb 2005)

deathhero hat gesagt.:
			
		

> wie soll ich das machen, wenn ich zB jede Sekunde eines haben will ? also quasi ein Live Stream ?



http://java.sun.com/j2se/1.5.0/docs/api/java/util/Timer.html


----------



## rapthor (27. Feb 2005)

Benutz' doch einen Thread! Die Stelle, an der du das Bild holst, lässt du so oft wie du willst wiederholen in der run()-Methode. Wenn du abbrechen möchtest, müssteste halt ne boolean Variable mit einbauen, die ständig überprüft wird.


----------



## Guest (28. Feb 2005)

hmm, ja das mit dem thread habe ich schon gemacht...aber komischerweise kommt trotzdem immer nur das gleiche bild herein....

es wird dann zwar zB 100 mal auf der HDD abgespeichert, aber eben immer das gleiche Ding.... :?:  :autsch: 

sprich ich hab da irgendwo einen generellen fehler drinnen, denke ich....

sg


----------

