Partage
  • Partager sur Facebook
  • Partager sur Twitter

QuicktimeJava help !!!!

Pb pour récupérer un flux video

Sujet résolu
    20 février 2009 à 15:09:49

    Bonjour a tous !

    je suis actuellement en train de développer une application java permettant de récupérer un flux video depuis internet.
    J'utiliser la bibliothèque de Quicktime qui se prénomme QuickTimejava.
    J'arrive a afficher une video stockée sur mon pc pour le moment mais je ne sais pas vraiment comment faire pour récupérer un flux rtsp depuis internet du type rtsp://adressIP/video.sdp
    si quelqu'un connait les méthodes ainsi que les classes a utiliser je serai très heureux qu'il puisse m'aider

    merci a tous

    Polux
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      20 février 2009 à 15:30:28

      Documentation de JMF tu y trouveras tout ce qu'il te faut ;-)
      • Partager sur Facebook
      • Partager sur Twitter
        20 février 2009 à 18:03:53

        moi je serais tenter de faire une lecture de fichier bufferisée =/ (enfin je sais pas comment dire d'autre :p)

        donc groosomodo tu fais une méthode qui lit byte par byte ce qui arrive d'internet et le met en mémoire.

        et au fur et a mesure que tu le charge en mémoire (byte par byte) tu le lit :o (enfin avec un buffer évidemment :) )
        tu peux aussi supprimer de la mémoire vive quand tu n'as plus besoins :o des info et enregistrer au fur et a mesure dans un fichier pour pouvoir te déplacer dans la vidéo sans surcharger la mémoire ram


        si il y'a des solutions plus simple ça m'intéresse :)
        • Partager sur Facebook
        • Partager sur Twitter
          21 février 2009 à 12:41:17

          slt snooopy j'a trouver la solution pour ouvrir un flux rtsp avec la lib QTjava !

          import quicktime.*;
          import quicktime.std.*;
          import quicktime.io.QTFile;
          import quicktime.app.view.*;
          import quicktime.std.movies.*;
          import quicktime.std.movies.media.*;

          private QTComponent myQTCanvas;

          private void jbInit() throws Exception {

          if (QTSession.isInitialized() == false) {
          QTSession.open(); //pour lancer la session QT a mettre dans le Jinit ou init
          }


          void jButton1_actionPerformed(ActionEvent e) {

          String selURL ="rtsp://192.168.1.23/play.sdp";
          // String url = "http://perso.ftp.free.fr/video.avi";

          try {
          DataRef dRef = new DataRef(selURL);
          Movie mov = Movie.fromDataRef(dRef, StdQTConstants.newMovieActive);
          MovieController mc = new MovieController(mov);

          if (myQTCanvas == null) {

          myQTCanvas = QTFactory.makeQTComponent(mc);
          // add( (Component) myQTCanvas, "Center");

          jPanel1.add( (Component) myQTCanvas);
          }
          else {
          myQTCanvas.setMovieController(mc);
          }
          jPanel1.validate();
          }
          catch (QTException ef) {
          System.out.println("pb avec le flux video");
          }

          }


          Donc si tu comprend bien mes morceau de code, j'affiche le flux video RTSP dans un JPANEL vue ke j'utilise jbuilder !

          voila si tu a un soucis fait moi signe !
          • Partager sur Facebook
          • Partager sur Twitter
            21 février 2009 à 15:44:49

            heuu juste un ^_°
            saurais tu éditer ton message et mettre le code entres balises "code java" stp :) ?
            comme ça il y aura une mise en page automatique de ce dernier et il deviendra lisible :)

            sinon un grand merci pour l'info :p


            edit =/ bon je le fais moi même pour pouvoir lire :p
            import quicktime.*;
            import quicktime.std.*;
            import quicktime.io.QTFile;
            import quicktime.app.view.*;
            import quicktime.std.movies.*;
            import quicktime.std.movies.media.*;
            
            private QTComponent myQTCanvas;
            
            private void jbInit() throws Exception {
            
                 if (QTSession.isInitialized() == false) {
                      QTSession.open(); //pour lancer la session QT a mettre dans le Jinit ou init
                 }
            
            
            void jButton1_actionPerformed(ActionEvent e) {
            
                 String selURL ="rtsp://192.168.1.23/play.sdp";
                 // String url = "http://perso.ftp.free.fr/video.avi";
            
                   try {
                      DataRef dRef = new DataRef(selURL);
                      Movie mov = Movie.fromDataRef(dRef, StdQTConstants.newMovieActive);
                      MovieController mc = new MovieController(mov);
            
                      if (myQTCanvas == null) {
            
                           myQTCanvas = QTFactory.makeQTComponent(mc);
                           // add( (Component) myQTCanvas, "Center");
            
                           jPanel1.add( (Component) myQTCanvas);
                      }else {
                           myQTCanvas.setMovieController(mc);
                           }
                      jPanel1.validate();
                      
                  }catch (QTException ef) {
                 System.out.println("pb avec le flux video");
              }
            
            }
            
            • Partager sur Facebook
            • Partager sur Twitter
              22 février 2009 à 11:57:06

              Dsl snooopy je n'ai pas penser a mettre mon code avec les balises !
              je vais donc te mettre tout mon code pour ouvrir un flux, ce code a été réalisé avec JbuilderX
              et c'est un projet applet

              package sans_titre10;
              
              import java.awt.*;
              import java.awt.event.*;
              import java.applet.*;
              import javax.swing.*;
              
              import quicktime.*;
              import quicktime.std.*;
              import quicktime.io.QTFile;
              import quicktime.app.view.*;
              import quicktime.std.movies.*;
              import quicktime.std.movies.media.*;
              
              /**
               * <p>Titre : afficher flux video avec QTjava</p>
               * <p>Description : ouverture d'un flux RTSP</p>
               * <p>Copyright : Copyright (c) 2009</p>
               * <p>Société : Ledoux Benjamin</p>
               * @author Ledoux.benjamin@free.fr
               * @version 1.0
               */
              
              public class Applet1
                  extends Applet {
                private boolean isStandalone = false;
                JButton jButton1 = new JButton();
                JPanel jPanel1 = new JPanel();
              
                private QTComponent myQTCanvas;
                BorderLayout borderLayout1 = new BorderLayout();
              
                //Obtenir une valeur de paramètre
                public String getParameter(String key, String def) {
                  return isStandalone ? System.getProperty(key, def) :
                      (getParameter(key) != null ? getParameter(key) : def);
                }
              
                //Construire l'applet
                public Applet1() {
                }
              
                //Initialiser l'applet
                public void init() {
                  try {
                    jbInit();
                  }
                  catch (Exception e) {
                    e.printStackTrace();
                  }
                }
              
                //Initialiser le composant
                private void jbInit() throws Exception {
              
                  if (QTSession.isInitialized() == false) {
                    QTSession.open();
                  }
                  jButton1.setBounds(new Rectangle(13, 11, 503, 35));
                  jButton1.setText("afficher video");
                  jButton1.addActionListener(new Applet1_jButton1_actionAdapter(this));
                  this.setLayout(null);
                  jPanel1.setBackground(Color.white);
                  jPanel1.setBounds(new Rectangle(11, 54, 503, 366));
                  jPanel1.setLayout(borderLayout1);
                  this.add(jButton1, null);
                  this.add(jPanel1, null);
                }
              
                //Obtenir les informations d'applet
                public String getAppletInfo() {
                  return "Information applet";
                }
              
                //Obtenir les informations de paramètre
                public String[][] getParameterInfo() {
                  return null;
                }
              
                void jButton1_actionPerformed(ActionEvent e) {
              
                  String selURL ="rtsp://192.168.1.23/play.sdp";
                 // String url = "http://perso.ftp.free.fr/video.avi";
              
                  try {
                    DataRef dRef = new DataRef(selURL);
                    Movie mov = Movie.fromDataRef(dRef, StdQTConstants.newMovieActive);
                    MovieController mc = new MovieController(mov);
              
                    if (myQTCanvas == null) {
              
                      myQTCanvas = QTFactory.makeQTComponent(mc);
                      // add( (Component) myQTCanvas, "Center");
              
                      jPanel1.add( (Component) myQTCanvas);
                    }
                    else {
                      myQTCanvas.setMovieController(mc);
                    }
                    jPanel1.validate();
                  }
                  catch (QTException ef) {
                    System.out.println("pb avec le flux video");
                  }
              
                }
              }
              
              class Applet1_jButton1_actionAdapter
                  implements java.awt.event.ActionListener {
                Applet1 adaptee;
              
                Applet1_jButton1_actionAdapter(Applet1 adaptee) {
                  this.adaptee = adaptee;
                }
              
                public void actionPerformed(ActionEvent e) {
                  adaptee.jButton1_actionPerformed(e);
                }
              }
              
              • Partager sur Facebook
              • Partager sur Twitter

              QuicktimeJava help !!!!

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown