Bonjour,
je suis entrain de développer une application de visioconference et j'utilise l'API JMF (Java Media Framework) de sun. j'essaye à envoyer un flux (video et audio) d'un PC (Serveur) à un autre PC (Client) en utilisant le protocole RTP de l'API JMF. j'ai réussis à envoyer le son mais pas la Video, et j'ai trouvé que le probleme et au niveau du transcodage de la piste Video c à d le programme ne trouve pas le format pour le video supportée par le RTP.
voici le code:
public void send(String f){
ml=new MediaLocator(f);
try {
p=Manager.createProcessor(ml);
} catch (NoProcessorException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
while(p.getState() < Processor.Configured)
{
//Configuration du Processor
p.configure();
}
p.setContentDescriptor(new ContentDescriptor(ContentDescriptor.RAW_RTP));
//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);
}
}
while(p.getState() < Processor.Realized)
{
//Réalisation du Processor
p.realize();
}
p.start();
DataSource source=p.getDataOutput();
RTPManager rtpm=RTPManager.newInstance();
try {
SessionAddress locale=new SessionAddress(InetAddress.getLocalHost(),4000);
rtpm.initialize(locale);
SessionAddress dest=new SessionAddress(InetAddress.getLocalHost(),2000);
rtpm.addTarget(dest);
SendStream stream=rtpm.createSendStream(source, 0);
stream.start();
System.out.println("Démarré");
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvalidSessionAddressException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
SVP, si quelqu'un peut m'aider n'hésiter pas. Merci D'avance.
Configuration: Windows Vista
Internet Explorer 7.0