Streaming RTP

Résolu
boris11y382 - 15 mars 2013 à 21:22
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 - 18 mars 2013 à 21:04
je m'appelle boris et je veux développer une application client serveur pour le stream vidéo en java avec la jmf mais je butte sur rien en fait mais ca ne marche pas au fait voici mon code



pour la classe serveur :

package newserveur;

import java.io.IOException;

import javax.media.DataSink;
import javax.media.Format;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.NoDataSinkException;
import javax.media.NoProcessorException;
import javax.media.Processor;
import javax.media.control.TrackControl;
import javax.media.protocol.ContentDescriptor;
import javax.media.protocol.DataSource;

public class Main {

public static Processor configure(Processor p)
{
// Attendre tant que le Processor n'est pas configuré.
while(p.getState() < Processor.Configured)
{
//Configuration du Processor
p.configure();
}

return p;
}

public static void setSupportedFormat(Processor p)
{
// On met la description du contenu de sortie à RAW_RTP
// pour limiter les formats supportés

ContentDescriptor cd = new ContentDescriptor(ContentDescriptor.RAW_RTP);

p.setContentDescriptor(cd);

//On obtient les différentes pistes du processor
TrackControl track[] = p.getTrackControls();

for(int i = 0 ; i < track.length ; i++)
{
//on obtient les formats supportés pour cette piste
Format suppFormats[] = track[i].getSupportedFormats();

//Si il y a au moins un format supporté alors on met le premier
if (suppFormats.length > 0)
{
track[i].setFormat(suppFormats[0]);
}
else
{
track[i].setEnabled(false);
}
}
}

public static Processor realize(Processor p)
{
// Attendre tant que le Processor n'est pas réalisé.
while(p.getState() < Processor.Realized)
{
//Réalisation du Processor
p.realize();
}

return p;
}

public static void demarre(Processor p)
{
//Demarrage du Processor
p.start();
}

/**
* @param args the command line arguments
*/
public static void main(String[] args) {

// TODO code application logic here
//Entrée de l'adresse du fichier
String fichierAdresse = "file://D:/camera.mpg";

//Création du MédiaLocator à partir de ce fichier
MediaLocator fichierLocator = new MediaLocator(fichierAdresse);

//Declaration du Processor
Processor fichierCessor = null;

try
{
//Creation du Processor à partir du Medialocator
fichierCessor = Manager.createProcessor(fichierLocator);

fichierCessor = configure(fichierCessor);

setSupportedFormat(fichierCessor);

fichierCessor = realize(fichierCessor);

demarre(fichierCessor);

System.out.println("Creation du processor a partir du Medialocator réussie");
}
catch(IOException e)
{
System.out.println("Erreur : " + e.getMessage());
}
catch(NoProcessorException e)
{
System.out.println("Erreur : " + e.getMessage());
}

//Creation du DataSource correspondant au Processor
DataSource fichierSource = fichierCessor.getDataOutput();

//Adresse de Destination
String outputAddress = "rtp://192.168.11.55:99/video/1";

//Creation du MediaLocator pour l'Adresse de destination
MediaLocator outputLocator = new MediaLocator(outputAddress);

try
{
//Creation du DataSink
DataSink outputSink = Manager.createDataSink(fichierSource, outputLocator);
//Ouverture du DataSink
outputSink.open();
//Demarrage du DataSink
outputSink.start();

System.out.println("Started");

}
catch(IOException e)
{
System.out.println("Erreur" + e.getMessage());
}
catch(NoDataSinkException e)
{
System.out.println("Erreur" + e.getMessage());
}
}
}


et pour le client


package newclient;

import java.io.IOException;

import javax.media.CannotRealizeException;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.NoPlayerException;
import javax.media.Player;
import javax.swing.JFrame;

public class Main
{
public static void main(String[] args)
{
//Adresse de la Source
String sourceAddress = "rtp://192.168.11.55:99/video/1";

//Creation du MediaLocator avec l'adresse de la Source
MediaLocator sourceLocator = new MediaLocator(sourceAddress);

// Verification que la source existe dans le cas contraire, arret du programme
if(sourceLocator == null)
{
System.out.println("no Source");
System.exit(-1);
}
else
{
System.out.println("Connected");
}

// Declaration du Player
Player player;
try
{ System.out.println("création du player");
// Creation du player réalisé à partir du MediaLocator de la source
player = Manager.createRealizedPlayer(sourceLocator);
System.out.println("Création du player à réaliser");

// Demarrage du Player
player.start();
System.out.println("Demarrage du player réussie");

// Creation d'une JFrame
JFrame fenetre = new JFrame("Player");
fenetre.setSize(160,140);

// Ajout du Composant visuel du Player dans la fenetre (pour un flux vidéo)
fenetre.getContentPane().add(player.getVisualComponent());
fenetre.setVisible(true);
}
catch (NoPlayerException e)
{
System.out.println("Erreur " + e.getMessage());
}
catch (IOException e)
{
System.out.println("Erreur " + e.getMessage());
}
catch (CannotRealizeException e)
{
System.out.println("Erreur " + e.getMessage());
}
}
}


lorsque je compile le serveur se lance bien et le client aussi mais une fois qu'il est connecté sur la rtp de mon serveur il ne se passe plus rien . S'il vous plait aidez moi je n'y comprend plus rien

6 réponses

BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
16 mars 2013 à 13:07
Hello Boris,
J'ai déplacé ta demande dans la section Java, qui est plus appropriée que le Bar.


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
3
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
18 mars 2013 à 09:55
Salut,

Qu'est ce qui ne marche pas, tu as une erreur ? Peux tu nous donner la trace ?
0
boris11y382
18 mars 2013 à 13:35
l'erreur revient au niveau de //Creation du Processor à partir du Medialocator
fichierCessor = Manager.createProcessor(fichierLocator);
dans la classe serveur
et parfois ca ne renvoie rien
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
18 mars 2013 à 14:48
Et quelle est la trace ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
boris11y382
18 mars 2013 à 18:21
Il faut que je précise que la compilation ne génère en réalité aucunes erreur mais le code ne fait rien
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
18 mars 2013 à 21:04
Hum...bien, on avance... Mais concrètement, que se passe t il? Tu as une erreur ? Que disent les traces ?


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
Rejoignez-nous