Streaming RTP [Résolu]

- - Dernière réponse : BunoCS
Messages postés
14395
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
19 février 2019
- 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
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
14395
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
19 février 2019
125
3
Merci
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...

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 118 internautes nous ont dit merci ce mois-ci

Commenter la réponse de BunoCS
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
272
0
Merci
Salut,

Qu'est ce qui ne marche pas, tu as une erreur ? Peux tu nous donner la trace ?
Commenter la réponse de cs_Julien39
0
Merci
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
Commenter la réponse de boris11y382
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
272
0
Merci
Et quelle est la trace ?
Commenter la réponse de cs_Julien39
0
Merci
Il faut que je précise que la compilation ne génère en réalité aucunes erreur mais le code ne fait rien
Commenter la réponse de boris11y382
Messages postés
14395
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
19 février 2019
125
0
Merci
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...
Commenter la réponse de BunoCS

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.