Connexion avec une camera IP

bonjour,
je veux communiquer avec une camera IP en utilisant son adresse IP..c'est a dire,récupérer le flux video et l'afficher dans un jLabel..
pouvez vous me guider??en me donnant des liens ou des idées..
merci

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. salut,

    vs pouvez accéder à son logiciel de configuration ??
    sinon, il faut dans un premier temps la connecter au routeur via un câble réseau
    1. j'ai trouver ça,normalement ça marche,mais je c pas ou est le probleme..
      pouvez vous me dire ou est la faute??
      merci d'avance

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

      /**
      *
      * @author David E. Mireles, Ph.D.
      */
      public class AxisCamera extends JPanel implements Runnable {
      public boolean useMJPGStream = true;
      public String jpgURL="http://your-ip-here/axis-cgi/jpg/image.cgi?resolution=352x240";
      public String mjpgURL="http://your-ip-here/axis-cgi/mjpg/video.cgi?resolution=352x240";
      DataInputStream dis;
      private Image image=null;
      public Dimension imageSize = null;
      public boolean connected = false;
      private boolean initCompleted = false;
      HttpURLConnection huc=null;
      Component parent;

      /** Creates a new instance of AxisCamera */
      public AxisCamera (Component parent_) {
      parent = parent_;
      }

      public void connect(){
      try{
      URL u = new URL(useMJPGStream?mjpgURL:jpgURL);
      huc = (HttpURLConnection) u.openConnection();

      //System.out.println(huc.getContentType());
      InputStream is = huc.getInputStream();
      connected = true;
      BufferedInputStream bis = new BufferedInputStream(is);
      dis= new DataInputStream(bis);
      if (!initCompleted) initDisplay();
      }catch(IOException e){ //incase no connection exists wait and try again, instead of printing the error
      try{
      huc.disconnect();
      Thread.sleep(60);
      }catch(InterruptedException ie){huc.disconnect();connect();}
      connect();
      }catch(Exception e){;}
      }

      public void initDisplay(){ //setup the display
      if (useMJPGStream)readMJPGStream();
      else {readJPG();disconnect();}
      imageSize = new Dimension(image.getWidth(this), image.getHeight(this));
      setPreferredSize(imageSize);
      parent.setSize(imageSize);
      parent.validate();
      initCompleted = true;
      }

      public void disconnect(){
      try{
      if(connected){
      dis.close();
      connected = false;
      }
      }catch(Exception e){;}
      }

      public void paint(Graphics g) { //used to set the image on the panel
      if (image != null)
      g.drawImage(image, 0, 0, this);
      }

      public void readStream(){ //the basic method to continuously read the stream
      try{
      if (useMJPGStream){
      while(true){
      readMJPGStream();
      parent.repaint();
      }
      }
      else{
      while(true){
      connect();
      readJPG();
      parent.repaint();
      disconnect();

      }
      }

      }catch(Exception e){;}
      }

      public void readMJPGStream(){ //preprocess the mjpg stream to remove the mjpg encapsulation
      readLine(3,dis); //discard the first 3 lines
      readJPG();
      readLine(2,dis); //discard the last two lines
      }

      public void readJPG(){ //read the embedded jpeg image
      try{
      JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(dis);
      image = decoder.decodeAsBufferedImage();
      }catch(Exception e){e.printStackTrace();disconnect();}
      }

      public void readLine(int n, DataInputStream dis){ //used to strip out the header lines
      for (int i=0; i<n;i++){
      readLine(dis);
      }
      }
      public void readLine(DataInputStream dis){
      try{
      boolean end = false;
      String lineEnd = "\n"; //assumes that the end of the line is marked with this
      byte[] lineEndBytes = lineEnd.getBytes();
      byte[] byteBuf = new byte[lineEndBytes.length];

      while(!end){
      dis.read(byteBuf,0,lineEndBytes.length);
      String t = new String(byteBuf);
      //System.out.print(t); //uncomment if you want to see what the lines actually look like
      if(t.equals(lineEnd)) end=true;
      }
      }catch(Exception e){e.printStackTrace();}

      }
      public void run() {
      connect();
      readStream();
      }

      public static void main(String[] args) {
      JFrame jframe = new JFrame();
      jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      AxisCamera axPanel = new AxisCamera(jframe);
      new Thread(axPanel).start();
      jframe.getContentPane().add(axPanel);
      jframe.pack();
      jframe.show();
      }

      }
      1. y'a pas d'erreurs lors de l'exécution mais rien ne s'affiche dans mon jFrame