Enregistrer un stream audio RTP [JAVA]

Messages postés
3
Date d'inscription
mercredi 9 mai 2007
Statut
Membre
Dernière intervention
8 octobre 2007
-
Messages postés
3
Date d'inscription
mercredi 9 mai 2007
Statut
Membre
Dernière intervention
8 octobre 2007
-
S il vous plai est il possible d enregistrer un stream audio qui m est parvenue par RTP, dans un fichier .wav ??

esque c possible de le fair en JMF?

merci bocoup

Coder la vie en java!
A voir également:

4 réponses

Messages postés
5367
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
27 janvier 2022
111
Salut,

oui c'est possible et tu n'as absolument pas besoin de la JMF pour le faire (a condition que ton flux d'entré soit en G711 alaw ou µlaw (sinon la JMF n'est utile seulement pour décoder le RTP vers PCM.

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
Messages postés
3
Date d'inscription
mercredi 9 mai 2007
Statut
Membre
Dernière intervention
8 octobre 2007

je vous en remercie, mon flix d entree est en g729,

s il vous plai pouvez vous me donner un hint de comment le fair

merci

Coder la vie en java!
Messages postés
5367
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
27 janvier 2022
111
Salut,

je ne te donnerai pas la solution complete mais 2 bout de code et c'est à toi de voir ce que tu peux en faire...

Cette partie montre comment recup un packet RTP pour le cracher sur la carte son :

ByteArrayInputStream byteArrayInputStream = null;
AudioInputStream codecStream = null;
AudioFormat linearFormat = ....//format PCM
AudioFormat codecFormat = ...//format g729

SourceDataLine sourceDataLine = (SourceDataLine) AudioSystem.getSourceDataLine(linearFormat);
                 
sourceDataLine.open();
sourceDataLine.start();
while (!end) {
    try {
        socket.receive(packet); //ton socket udp
        //récup de la payload
        byteArrayInputStream = new ByteArrayInputStream(packet.getData(), 12, buffer.length-1);
        codecStream = new AudioInputStream(byteArrayInputStream, codecFormat, datalenth);
        linearStream = AudioSystem.getAudioInputStream(linearFormat, codecStream);
        linearStream.read(linearBuffer, 0, linearBuffer.length);
       //ecriture du flux sur la carte son
        sourceDataLine.write(linearBuffer, 0, linearBuffer.length);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
sourceDataLine.stop();
sourceDataLine.close();

Cette partie montre comment ecrire un flux micro dans un fichier WAV :
http://www-igm.univ-mlv.fr/~dr/XPOSE2005/JavaSound_arinie/exemples/recorder.html

voilou avec ça et de la réflexion tu devrais trouver tes petits ^^

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
Messages postés
3
Date d'inscription
mercredi 9 mai 2007
Statut
Membre
Dernière intervention
8 octobre 2007

MERCI je vai voir ce que je peu en fair

Coder la vie en java!