[RED 5] Prob qualité audio du microphone
- kosmos17
- Born


- Inscription: Oct 25, 2009
- Messages: 1
- Status: Offline
Bonjour,
Jutilise RED5 à diffuser ma webcam en direct, mais Laudio est tout pourri
Elle est intermittente et de mauvaise qualité sonore.
Je mets mes 2 scripts utilisant l'envoi de ma cam en temps réel.
Ma config est bonne parce qu'elle a tenté jai daméliorer la qualité vidéo et Laudio?
Le 1er est de le publier.
La 2e à la lire.
Je vous remercie de votre aide
Jutilise RED5 à diffuser ma webcam en direct, mais Laudio est tout pourri
Elle est intermittente et de mauvaise qualité sonore.
Je mets mes 2 scripts utilisant l'envoi de ma cam en temps réel.
Ma config est bonne parce qu'elle a tenté jai daméliorer la qualité vidéo et Laudio?
Le 1er est de le publier.
Code: [ Select ]
public class CameraBroadcast{
private var cam : Camera;
private var nc : NetConnection;
private var ns : NetStream;
private var mic:Microphone;
private var monUrl : URLRequest;
public var expediteur :String;
public var code :String;
public function CameraBroadcast(){
//Constructeur
}
public function initNC() : void {
// Pour indiquer au serveur qui doit être le client (peut être tout objet ActionScript)
nc = new NetConnection();
nc.client = this;
// Red5 ne supporte que AMF0
nc.objectEncoding = ObjectEncoding.AMF0;
// Connection au serveur Red5 sur le port RTMP 1935
nc.connect("rtmp://xxxxxxxxxxxxxxxxxxxx");
// On écoute les évènements de la couche transport
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
}
private function netStatusHandler (event : NetStatusEvent) : void{
switch (event******.code){
case "NetConnection.Connect.Success": {
this.cam = Camera.getCamera();
this.ns = new NetStream (nc);
//-------- PARAMETRES MICROPHONE --------------
this.mic = Microphone.getMicrophone();
//Supprime le probleme ECHO
this.mic.setUseEchoSuppression(true);
//Améliore la diffusion du son entre chaque utilisation temps en millisecondes
this.mic.setSilenceLevel(10,1000);
//--------- PARAMETRES CAMERA -----------------
//Améliore la qualité de l'image
this.cam.setQuality(40000,80);
//Améliore la capture de l'image
this.cam.setMotionLevel(30,500);
//Definir les dimensions de la cam diffusée
this.cam.setMode(407,307,25,true);
this.ns.attachCamera(this.cam);
this.ns.attachAudio(this.mic);
try{
this.ns.client = this;
this.ns.publish(this.expediteur,"live");
}
catch (e:Error) {
trace (e.message);
}
break;
}
default:
alert.show("Attention...Assurez-vous que votre webcam soit branchée !");
break;
}
}
public function onBWDone():void {
// Appelé par RED5 au moment de la connexion
}
public function onMetaData (data : Object) : void{
// Appelé par RED5 au moment de la connexion
}
public function onPlayStatus (data : Object) : void {
// Appelé par RED5 au moment de la connexion
}
public function asyncErrorHandler(event:AsyncErrorEvent):void {
// Appelé par RED5 au moment de la connexion
}
public function stopperCamera():void{
this.ns.close();
this.monUrl = new URLRequest("http://xxxxxxxxxxxxxx/index.php?do=maj&cs="+this.code);
navigateToURL(this.monUrl,"_self");
}
}
private var cam : Camera;
private var nc : NetConnection;
private var ns : NetStream;
private var mic:Microphone;
private var monUrl : URLRequest;
public var expediteur :String;
public var code :String;
public function CameraBroadcast(){
//Constructeur
}
public function initNC() : void {
// Pour indiquer au serveur qui doit être le client (peut être tout objet ActionScript)
nc = new NetConnection();
nc.client = this;
// Red5 ne supporte que AMF0
nc.objectEncoding = ObjectEncoding.AMF0;
// Connection au serveur Red5 sur le port RTMP 1935
nc.connect("rtmp://xxxxxxxxxxxxxxxxxxxx");
// On écoute les évènements de la couche transport
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
}
private function netStatusHandler (event : NetStatusEvent) : void{
switch (event******.code){
case "NetConnection.Connect.Success": {
this.cam = Camera.getCamera();
this.ns = new NetStream (nc);
//-------- PARAMETRES MICROPHONE --------------
this.mic = Microphone.getMicrophone();
//Supprime le probleme ECHO
this.mic.setUseEchoSuppression(true);
//Améliore la diffusion du son entre chaque utilisation temps en millisecondes
this.mic.setSilenceLevel(10,1000);
//--------- PARAMETRES CAMERA -----------------
//Améliore la qualité de l'image
this.cam.setQuality(40000,80);
//Améliore la capture de l'image
this.cam.setMotionLevel(30,500);
//Definir les dimensions de la cam diffusée
this.cam.setMode(407,307,25,true);
this.ns.attachCamera(this.cam);
this.ns.attachAudio(this.mic);
try{
this.ns.client = this;
this.ns.publish(this.expediteur,"live");
}
catch (e:Error) {
trace (e.message);
}
break;
}
default:
alert.show("Attention...Assurez-vous que votre webcam soit branchée !");
break;
}
}
public function onBWDone():void {
// Appelé par RED5 au moment de la connexion
}
public function onMetaData (data : Object) : void{
// Appelé par RED5 au moment de la connexion
}
public function onPlayStatus (data : Object) : void {
// Appelé par RED5 au moment de la connexion
}
public function asyncErrorHandler(event:AsyncErrorEvent):void {
// Appelé par RED5 au moment de la connexion
}
public function stopperCamera():void{
this.ns.close();
this.monUrl = new URLRequest("http://xxxxxxxxxxxxxx/index.php?do=maj&cs="+this.code);
navigateToURL(this.monUrl,"_self");
}
}
- public class CameraBroadcast{
- private var cam : Camera;
- private var nc : NetConnection;
- private var ns : NetStream;
- private var mic:Microphone;
- private var monUrl : URLRequest;
- public var expediteur :String;
- public var code :String;
- public function CameraBroadcast(){
- //Constructeur
- }
- public function initNC() : void {
- // Pour indiquer au serveur qui doit être le client (peut être tout objet ActionScript)
- nc = new NetConnection();
- nc.client = this;
- // Red5 ne supporte que AMF0
- nc.objectEncoding = ObjectEncoding.AMF0;
- // Connection au serveur Red5 sur le port RTMP 1935
- nc.connect("rtmp://xxxxxxxxxxxxxxxxxxxx");
- // On écoute les évènements de la couche transport
- nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
- nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
- }
- private function netStatusHandler (event : NetStatusEvent) : void{
- switch (event******.code){
- case "NetConnection.Connect.Success": {
- this.cam = Camera.getCamera();
- this.ns = new NetStream (nc);
- //-------- PARAMETRES MICROPHONE --------------
- this.mic = Microphone.getMicrophone();
- //Supprime le probleme ECHO
- this.mic.setUseEchoSuppression(true);
- //Améliore la diffusion du son entre chaque utilisation temps en millisecondes
- this.mic.setSilenceLevel(10,1000);
- //--------- PARAMETRES CAMERA -----------------
- //Améliore la qualité de l'image
- this.cam.setQuality(40000,80);
- //Améliore la capture de l'image
- this.cam.setMotionLevel(30,500);
- //Definir les dimensions de la cam diffusée
- this.cam.setMode(407,307,25,true);
- this.ns.attachCamera(this.cam);
- this.ns.attachAudio(this.mic);
- try{
- this.ns.client = this;
- this.ns.publish(this.expediteur,"live");
- }
- catch (e:Error) {
- trace (e.message);
- }
- break;
- }
- default:
- alert.show("Attention...Assurez-vous que votre webcam soit branchée !");
- break;
- }
- }
- public function onBWDone():void {
- // Appelé par RED5 au moment de la connexion
- }
- public function onMetaData (data : Object) : void{
- // Appelé par RED5 au moment de la connexion
- }
- public function onPlayStatus (data : Object) : void {
- // Appelé par RED5 au moment de la connexion
- }
- public function asyncErrorHandler(event:AsyncErrorEvent):void {
- // Appelé par RED5 au moment de la connexion
- }
- public function stopperCamera():void{
- this.ns.close();
- this.monUrl = new URLRequest("http://xxxxxxxxxxxxxx/index.php?do=maj&cs="+this.code);
- navigateToURL(this.monUrl,"_self");
- }
- }
La 2e à la lire.
Code: [ Select ]
public function initNC () : void{
// Pour indiquer au serveur qui doit être le client (peut être tout objet ActionScript)
nc = new NetConnection();
nc.client = this;
// Red5 ne supporte que AMF0
nc.objectEncoding = ObjectEncoding.AMF0;
// Connection au serveur Red5 sur le port RTMP 1935
nc.connect("rtmp://xxxxxxxxxxxxxxxxxxxxxxxxxxx");
// On écoute les évènements de la couche transport
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
}
private function netStatusHandler (event : NetStatusEvent) : void{
switch (event******.code){
case "NetConnection.Connect.Success": {
this.ns = new NetStream(nc);
this.video = new Video();
this.video.attachNetStream(this.ns);
this.video.width = 407;
this.video.height = 307;
slr.addChild(this.video);
try{
this.ns.client = this;
this.ns.play(this.destinataire);
}
catch (e:Error) {
trace (e.message);
}
break;
}
default:
break;
}
}
public function onBWDone():void {
// Appelé par RED5 au moment de la connexion
}
public function onMetaData (data : Object) : void{
// Appelé par RED5 au moment de la connexion
}
public function onPlayStatus (data : Object) : void {
// Appelé par RED5 au moment de la connexion
}
public function asyncErrorHandler(event:AsyncErrorEvent):void {
// Appelé par RED5 au moment de la connexion
}
// Pour indiquer au serveur qui doit être le client (peut être tout objet ActionScript)
nc = new NetConnection();
nc.client = this;
// Red5 ne supporte que AMF0
nc.objectEncoding = ObjectEncoding.AMF0;
// Connection au serveur Red5 sur le port RTMP 1935
nc.connect("rtmp://xxxxxxxxxxxxxxxxxxxxxxxxxxx");
// On écoute les évènements de la couche transport
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
}
private function netStatusHandler (event : NetStatusEvent) : void{
switch (event******.code){
case "NetConnection.Connect.Success": {
this.ns = new NetStream(nc);
this.video = new Video();
this.video.attachNetStream(this.ns);
this.video.width = 407;
this.video.height = 307;
slr.addChild(this.video);
try{
this.ns.client = this;
this.ns.play(this.destinataire);
}
catch (e:Error) {
trace (e.message);
}
break;
}
default:
break;
}
}
public function onBWDone():void {
// Appelé par RED5 au moment de la connexion
}
public function onMetaData (data : Object) : void{
// Appelé par RED5 au moment de la connexion
}
public function onPlayStatus (data : Object) : void {
// Appelé par RED5 au moment de la connexion
}
public function asyncErrorHandler(event:AsyncErrorEvent):void {
// Appelé par RED5 au moment de la connexion
}
- public function initNC () : void{
- // Pour indiquer au serveur qui doit être le client (peut être tout objet ActionScript)
- nc = new NetConnection();
- nc.client = this;
- // Red5 ne supporte que AMF0
- nc.objectEncoding = ObjectEncoding.AMF0;
- // Connection au serveur Red5 sur le port RTMP 1935
- nc.connect("rtmp://xxxxxxxxxxxxxxxxxxxxxxxxxxx");
- // On écoute les évènements de la couche transport
- nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
- nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
- }
- private function netStatusHandler (event : NetStatusEvent) : void{
- switch (event******.code){
- case "NetConnection.Connect.Success": {
- this.ns = new NetStream(nc);
- this.video = new Video();
- this.video.attachNetStream(this.ns);
- this.video.width = 407;
- this.video.height = 307;
- slr.addChild(this.video);
- try{
- this.ns.client = this;
- this.ns.play(this.destinataire);
- }
- catch (e:Error) {
- trace (e.message);
- }
- break;
- }
- default:
- break;
- }
- }
- public function onBWDone():void {
- // Appelé par RED5 au moment de la connexion
- }
- public function onMetaData (data : Object) : void{
- // Appelé par RED5 au moment de la connexion
- }
- public function onPlayStatus (data : Object) : void {
- // Appelé par RED5 au moment de la connexion
- }
- public function asyncErrorHandler(event:AsyncErrorEvent):void {
- // Appelé par RED5 au moment de la connexion
- }
Je vous remercie de votre aide
- Anonymous
- Bot


- Inscription: 25 Feb 2008
- Messages: ?
- Loc: Ozzuland
- Status: Online
Octobre 25th, 2009, 1:07 am
Page 1 sur 1
Pour répondre à ce sujet, vous devez vous connecter ou vous enregistrer. Il est gratuit.
Afficher de l'information
- Total des messages de ce sujet: 1 message
- Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 83 invités
- Vous ne pouvez pas poster de nouveaux sujets
- Vous ne pouvez pas répondre aux sujets
- Vous ne pouvez pas éditer vos messages
- Vous ne pouvez pas supprimer vos messages
- Vous ne pouvez pas joindre des fichiers
