Enregistrer un stream audio RTP [JAVA]

oud7at Messages postés 3 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 8 octobre 2007 - 8 oct. 2007 à 02:50
oud7at Messages postés 3 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 8 octobre 2007 - 8 oct. 2007 à 16:13
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!

4 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
8 oct. 2007 à 09:21
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
0
oud7at Messages postés 3 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 8 octobre 2007
8 oct. 2007 à 11:01
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!
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
8 oct. 2007 à 12:58
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
0
oud7at Messages postés 3 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 8 octobre 2007
8 oct. 2007 à 16:13
MERCI je vai voir ce que je peu en fair

Coder la vie en java!
0
Rejoignez-nous