IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Affichage caméra IP Java


Sujet :

Java

  1. #21
    Membre à l'essai
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Points : 12
    Points
    12
    Par défaut
    ça marche bien ton code pauline , seulement ma cam est chinoise et je sé pas que dois je ajouter a l'url (IP) au lieu de video/mjpeg..... , sinon y'a til un solution parallele JMF / DSJ/jipcam .????merci

  2. #22
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2011
    Messages : 37
    Points : 29
    Points
    29
    Par défaut
    Oui ça marche bien , je pense que tu peux trouver l'url si tu connnais au moins la marque de la caméra. Voici des exemple pour les types de camera que j'utilise:

    Axis = "/axis-cgi/mjpg/video.cgi";
    Dlink = "/video/mjpg.cgi";
    Heden = "/videostream.cgi";
    Trendnet = "/cgi/mjpg.cgi";
    Trendnet2 = "/cgi/mjpg/mjpg.cgi";

    ça a l'air de changer en fonction du type de camera

  3. #23
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut
    Comme je l'ai dit dans ce fil, l'adresse n'est pas toujours la meme en fonction de la camera. Souvent, cette info se trouve dans la doc.
    A défaut, le plus simple est de taper l'ip de la camera dans un browser. Souvent, ces cameras embarquent un serveur web et un site qui permet d'acceder au flux video. Il faut donc naviguer sur le site embarqué et regarder l'url utilisée pour le flux.

    a+

  4. #24
    Membre à l'essai
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Points : 12
    Points
    12
    Par défaut
    merci pauline , hwoarang offete ma camera est une foscam ...... g utilisé snapshot.cgi pour lurl jpg et videostream.cgi pour mjpg , tt marche bien ..... sauf que j'ai pas compris a 100% le source je sais pas si vous pouvez le commenter un peu surtt sur la partie de readline et sa relation avec readmjpg ................ je sais que j'ai trop demandé , allé pleaaase

  5. #25
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut
    Citation Envoyé par nadjibmaka Voir le message
    je sais pas si vous pouvez le commenter un peu surtt sur la partie de readline et sa relation avec readmjpg
    En fait, un flux mjpeg est constitué de plusieurs images jpeg. Pour chacune d'elles, il y a des informations sur l'image (par exemple sa taille) puis l'image elle meme. Dans notre cas, on cherche à afficher les images dans un JPanel. Autrement dit, à extraire les jpeg. Il faut donc faire des readline pour recupérer les informations puis, on peut lire la jpeg en elle meme.

  6. #26
    Membre à l'essai
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Points : 12
    Points
    12
    Par défaut
    Merci encore hrng mais je rencontre encore des difficultés avec readline , je crois que je suis pas tres habitué a la syntaxe , c pour ça que je vous pris autre fois quelqu'un me commente la partie de code de la fonction readline(); ........ et pourkoi on lapplique dans readmjpg avec des paramatres 2 4 et pour quoi avant et apres readjpg(); peace a vs

  7. #27
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2011
    Messages : 37
    Points : 29
    Points
    29
    Par défaut
    La fonction readline() permet de lire continuellement le flux mjpeg

    En fait, un flux mjpeg est constitué de plusieurs images jpeg. Pour chacune d'elles, il y a des informations sur l'image (par exemple sa taille) puis l'image elle meme. Dans notre cas, on cherche à afficher les images dans un JPanel. Autrement dit, à extraire les jpeg. Il faut donc faire des readline pour recupérer les informations puis, on peut lire la jpeg en elle meme.
    On l'applique avec les paramètres 2 4 pour ignorer tout ce qui n'est pas image(les en tetes du flux). Pour un flux axis par exemple

    readLine(4, dis); //on ignore es 4 premières lignes
    readJPG();//on lit l'image jpeg
    readLine(1, dis);// on ignore la dernière ligne.

    Parce que le flux reçu est de la forme
    4 lignes en tete - image _ une ligne queue ,4 lignes en tete - image _ une ligne queue,4 lignes en tete - image _ une ligne queue,.......

  8. #28
    Membre à l'essai
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Points : 12
    Points
    12
    Par défaut
    Bonjour tout le monde , je reviens avec un nouveau petit probleme , j'ai beaucoup avancé sur ce sujet , j'ai fait la visualisation , enregistrement , detection de mouvements ... MAIS je n'arrive pas encore a visualiser deux camera (ou plus).... en meme temps , il me semble que comme la classe Axiscamera implemente runnable donc c peut etre un pbm de thread .... please je suis coincéé

  9. #29
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2011
    Messages : 37
    Points : 29
    Points
    29
    Par défaut
    La classe axisCamera étend également JPanel, si tu veux afficher 2 caméras , il suffit de créer 2 instances d'axis caméras et de lancer 2 threads différents.

  10. #30
    Membre à l'essai
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par pauline 75 Voir le message
    La classe axisCamera étend également JPanel, si tu veux afficher 2 caméras , il suffit de créer 2 instances d'axis caméras et de lancer 2 threads différents.
    Biensure , c deja essayé mais sa marche pas ! j'arrive pas a identifier la source du probleme mais apparament c au niveau de la connection car la 1ere erreur affichée est de ja "Socket closed"......

  11. #31
    Membre à l'essai
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Points : 12
    Points
    12
    Par défaut
    C bon pauline75 merci pour la reponse , sa marche la visualisation de deux camera mais pas en creant instance de axiscamera et jframe ....... mais en dupliquant la classe elle meme (dans le workspace) donc c pas une solution standard genre : visualiser 2 3 4 n cameras ... quelqu'un have an idea

  12. #32
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2011
    Messages : 37
    Points : 29
    Points
    29
    Par défaut
    Moi j'instancie juste la classe Axiscamera à chaque fois que je veux ajouter une caméra et lui associe un thread, j'ai aucun problème je peux aller jusqu'à 9 caméras

  13. #33
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut PTZ
    Bonjour

    Voila mon problème c'est que je dois lancer des requêtes de commande ptz à une caméra ip (foscam) via une application java. Pour me connecter pas de problème, j'arrive d'ailleurs à recevoir un flux vidéo de la cam.
    Mais dès que je souhaite commander un déplacement via la cgi ptz, ca bug. Sur le site web de manipulation, je dois spécifier des id/mdp. Je les ai en ma possession mais je ne vois pas trop comment les associer à URLConnection.

    Merci d'avance

  14. #34
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par nadjibmaka Voir le message
    C bon pauline75 merci pour la reponse , sa marche la visualisation de deux camera mais pas en creant instance de axiscamera et jframe ....... mais en dupliquant la classe elle meme (dans le workspace) donc c pas une solution standard genre : visualiser 2 3 4 n cameras ... quelqu'un have an idea
    comment pouvez- vous dupliquer la classe SVP, j'ai la même problème d'affichage de de deux caméras au mm temps

  15. #35
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2011
    Messages : 37
    Points : 29
    Points
    29
    Par défaut
    il faut instancier 2 fois la classe axisCamera et associer un thread d'affichage à chaque instance, dupliquer la classe n'est pas une bonne solution. Imagine toi si tu as 100 caméras...

  16. #36
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par pauline 75 Voir le message
    il faut instancier 2 fois la classe axisCamera et associer un thread d'affichage à chaque instance, dupliquer la classe n'est pas une bonne solution. Imagine toi si tu as 100 caméras...
    j'ai pas réussi à l'afficher est ce que quelqu'un peut m'aider c très urgent

  17. #37
    Nouveau Candidat au Club
    Homme Profil pro
    java
    Inscrit en
    Mai 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : java
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut camera ip planet ICA-100C
    j'ai un camerea ip Planet ICA-100C (v2),je veux afficher le video de ma camera . j'essaie avec ce code il m'affiche qu'une image.y'a t_il quelq'un qui peut 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.*;



    public class Camera_Axis extends JPanel implements Runnable {
    public boolean useMJPGStream = true;
    public String jpgURL="http://192.168.1.130/IMAGE.JPG";
    public String mjpgURL="http://192.168.1.130/video.cgi";
    private Image image=null;
    public Dimension imageSize = null;
    public boolean connected = false;
    private boolean initCompleted = false;
    HttpURLConnection huc=null;
    Component parent;
    DataInputStream dis;
    /** Creates a new instance of AxisCamera */
    public Camera_Axis() {
    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, 10, 10, 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() {



    readLine(3,dis); //discard the first 3 line
    readJPG();

    readLine(2,dis);

    }





    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() {
    while(true){

    connect();
    readStream();


    }
    }









    public static void main(String[] args) {
    JFrame jframe = new JFrame();
    jframe.setSize(900, 900);
    jframe.setVisible(true);

    jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Camera_Axis axPanel = new Camera_Axis();
    new Thread(axPanel).start();
    jframe.getContentPane().add(axPanel);
    jframe.pack();
    jframe.show();
    }


    }

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Affichage caméra WiFi par IP dans une fiche
    Par cincap dans le forum Web & réseau
    Réponses: 2
    Dernier message: 27/09/2013, 14h47
  2. Réponses: 2
    Dernier message: 11/06/2009, 23h48
  3. Affichage Notification En java
    Par Syklops dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 23/03/2009, 15h24
  4. [D2005] Affichage Caméra IP
    Par rdoudou dans le forum Delphi
    Réponses: 10
    Dernier message: 10/03/2007, 16h19
  5. Bug parfois dans l'affichage des applis JAVA
    Par Lambrosx dans le forum Interfaces Graphiques en Java
    Réponses: 6
    Dernier message: 20/10/2006, 09h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo