Communiquer avec une camera ip a partire de l'internet

manoubiali Messages postés 17 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 24 janvier 2013 - 2 juin 2012 à 12:47
manoubiali Messages postés 17 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 24 janvier 2013 - 5 juin 2012 à 23:00
Bonjour tout le monde,
je veux communiquer avec une camera ip a partire de l'internet , et faire visualiser le flux video .
url de camera : [216.62.222.100 216.62.222.100]
pouvez vous m'aider avec un code java(netbeans)?
et merci d'avance

2 réponses

shaiulud Messages postés 404 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 15 juillet 2014 22
5 juin 2012 à 17:29
un petit coup de firebug
pour voir qu'il y a un playeur flash qui lit un LJpeg.

http://216.62.222.100/mjpg/video.mjpg

le début du flux est ÿØÿþ qui correspond bien au format.

Te reste donc à lire du MJpeg sur flux streamer
0
manoubiali Messages postés 17 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 24 janvier 2013
5 juin 2012 à 23:00
Bonjour,
j'ai trouvé ce code dans l'internet mais je ne sais pas pourquoi il affiche une image fixe et n'affiche pas de vedio...
voilà le code et merci de m'aider
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.*;
import com.sun.image.codec.jpeg.JPEGImageDecoder;

public class AxisCamera13 extends JPanel implements Runnable {
public boolean useMJPGStream = true;
public String jpgURL="http://216.62.222.100/axis-cgi/jpg/image.cgi";
public String mjpgURL="http://216.62.222.100/axis-cgi/mjpg/video.cgi";
DataInputStream dis;
private Image image=null;
private Image Im=null;
public Dimension imageSize = null;
public boolean connected = false;
private boolean initCompleted = false;
HttpURLConnection huc=null;
Component parent;
int i =0;
String pict;

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

AxisCamera13() {
throw new UnsupportedOperationException("Not yet implemented");
}

public void connect(){
try{
URL u = new URL(useMJPGStream?mjpgURL:jpgURL);
huc = (HttpURLConnection) u.openConnection();
huc.connect();
//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
i=i+1;
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){
connect();
readMJPGStream();
parent.repaint();
disconnect();
}
}
else{
while(true){
connect();
readJPG();
parent.repaint();
disconnect();

}
}

}catch(Exception e){;}
}


public void readMJPGStream(){ //preprocess the mjpg stream to remove the mjpg encapsulation
readLine(4,dis); //discard the first 3 lines
readJPG();
readLine(1,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 Image getImage() {
return image;
}
public void run() {
connect();
//readStream();


}


public static void main(String[] args) {
JFrame jframe = new JFrame();
//jframe.setLayout(null);
jframe.setBounds(300,300,320,225);
jframe.setSize(500, 500);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLO SE);
AxisCamera13 axPanel = new AxisCamera13(jframe);
new Thread(axPanel).start();
jframe.getContentPane().add(axPanel);
jframe.pack();
jframe.show();
jframe.setSize(510, 450);
}


}
0
Rejoignez-nous