Connexion avec une camera IP

nesrine18 Messages postés 31 Statut Membre -  
nesrine18 Messages postés 31 Statut Membre -
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

  1. nesrine18 Messages postés 31 Statut Membre
     
    je m'excuse,je veux dire dans un jFrame
    0
  2. Harounzaoua Messages postés 16 Statut Membre 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
    0
  3. nesrine18 Messages postés 31 Statut Membre
     
    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();
    }

    }
    0
    1. nesrine18 Messages postés 31 Statut Membre
       
      y'a pas d'erreurs lors de l'exécution mais rien ne s'affiche dans mon jFrame
      0