You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@openmeetings.apache.org by "YUUNI, OSAY OSMAN" <O....@AFDB.ORG> on 2012/08/23 12:31:40 UTC

Asterisk Integration

Hi,

I'm trying to set up Asterisk integration and have hit a roadblock.  In compiling red5sip I get errors regarding the G.729 codec.  I've combed through the code and have not seen anything wrong.  I checked out the latest build (68) from the trunk.  Below is the list of errors I get when I do 

ant all 

to build red5sip.  BTW I'm running this on CentOS.  Has anyone successfully built this version and can they share their method?  Does anyone see any obvious errors?

[javac] [completed  /home/yos2653/red5sip/src/java/org/red5/codecs/SIPCodecFactory.java - #5/234]
    [javac] [analyzing  /home/yos2653/red5sip/src/java/org/red5/codecs/SIPCodecG729.java - #6/234]
    [javac] [analyzing  /home/yos2653/red5sip/src/java/org/red5/codecs/SIPCodecPCMA.java - #7/234]
    [javac] [reading    java/util/Arrays.class]
    [javac] [5 .class files generated]
    [javac] ----------
    [javac] 1. WARNING in /home/yos2653/red5sip/src/java/org/openmeetings/utils/PropertiesUtils.java (at line 10)
    [javac]     import java.util.Set;
    [javac]            ^^^^^^^^^^^^^
    [javac] The import java.util.Set is never used
    [javac] ----------
    [javac] 2. WARNING in /home/yos2653/red5sip/src/java/org/openmeetings/utils/PropertiesUtils.java (at line 11)
    [javac]     import java.util.regex.Pattern;
    [javac]            ^^^^^^^^^^^^^^^^^^^^^^^
    [javac] The import java.util.regex.Pattern is never used
    [javac] ----------
    [javac] ----------
    [javac] 3. WARNING in /home/yos2653/red5sip/src/java/org/red5/codecs/SIPCodecAttributes.java (at line 103)
    [javac]     for ( Enumeration keysEnum = codecEncodeAttributes.keys(); keysEnum.hasMoreElements(); ) {
    [javac]           ^^^^^^^^^^^
    [javac] Enumeration is a raw type. References to generic type Enumeration<E> should be parameterized
    [javac] ----------
    [javac] 4. WARNING in /home/yos2653/red5sip/src/java/org/red5/codecs/SIPCodecAttributes.java (at line 119)
    [javac]     for ( Enumeration keysEnum = codecDecodeAttributes.keys(); keysEnum.hasMoreElements(); ) {
    [javac]           ^^^^^^^^^^^
    [javac] Enumeration is a raw type. References to generic type Enumeration<E> should be parameterized
    [javac] ----------
    [javac] ----------
    [javac] 5. ERROR in /home/yos2653/red5sip/src/java/org/red5/codecs/SIPCodecG729.java (at line 38)
    [javac]     public void encodeInit( int defaultEncodePacketization ) {
    [javac]                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    [javac] The method encodeInit(int) of type SIPCodecG729 must override a superclass method
    [javac] ----------
    [javac] 6. ERROR in /home/yos2653/red5sip/src/java/org/red5/codecs/SIPCodecG729.java (at line 48)
    [javac]     public void decodeInit( int defaultDecodePacketization ) {
    [javac]                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    [javac] The method decodeInit(int) of type SIPCodecG729 must override a superclass method
    [javac] ----------
    [javac] 7. ERROR in /home/yos2653/red5sip/src/java/org/red5/codecs/SIPCodecG729.java (at line 58)
    [javac]     public String codecNegotiateAttribute( String attributeName, String localAttributeValue, String remoteAttributeValue ) {
    [javac]                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    [javac] The method codecNegotiateAttribute(String, String, String) of type SIPCodecG729 must override a superclass method
    [javac] ----------
    [javac] 8. ERROR in /home/yos2653/red5sip/src/java/org/red5/codecs/SIPCodecG729.java (at line 66)
    [javac]     public int getCodecBlankPacket( byte[] buffer, int offset ) {
    [javac]                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    [javac] The method getCodecBlankPacket(byte[], int) of type SIPCodecG729 must override a superclass method
    [javac] ----------
    [javac] 9. ERROR in /home/yos2653/red5sip/src/java/org/red5/codecs/SIPCodecG729.java (at line 74)
    [javac]     public int codecToPcm( byte[] bufferIn, float[] bufferOut ) {
    [javac]                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    [javac] The method codecToPcm(byte[], float[]) of type SIPCodecG729 must override a superclass method
    [javac] ----------
    [javac] 10. ERROR in /home/yos2653/red5sip/src/java/org/red5/codecs/SIPCodecG729.java (at line 83)
    [javac]     public int pcmToCodec( float[] bufferIn, byte[] bufferOut ) {
    [javac]                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    [javac] The method pcmToCodec(float[], byte[]) of type SIPCodecG729 must override a superclass method
    [javac] ----------
    [javac] 11. ERROR in /home/yos2653/red5sip/src/java/org/red5/codecs/SIPCodecG729.java (at line 92)
    [javac]     public int getIncomingEncodedFrameSize() {
    [javac]                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    [javac] The method getIncomingEncodedFrameSize() of type SIPCodecG729 must override a superclass method
    [javac] ----------
    [javac] 12. ERROR in /home/yos2653/red5sip/src/java/org/red5/codecs/SIPCodecG729.java (at line 99)
    [javac]     public int getIncomingDecodedFrameSize() {
    [javac]                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    [javac] The method getIncomingDecodedFrameSize() of type SIPCodecG729 must override a superclass method
    [javac] ----------
    [javac] 13. ERROR in /home/yos2653/red5sip/src/java/org/red5/codecs/SIPCodecG729.java (at line 106)
    [javac]     public int getOutgoingEncodedFrameSize() {
    [javac]                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    [javac] The method getOutgoingEncodedFrameSize() of type SIPCodecG729 must override a superclass method
    [javac] ----------
    [javac] 14. ERROR in /home/yos2653/red5sip/src/java/org/red5/codecs/SIPCodecG729.java (at line 113)
    [javac]     public int getOutgoingDecodedFrameSize() {
    [javac]                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    [javac] The method getOutgoingDecodedFrameSize() of type SIPCodecG729 must override a superclass method
    [javac] ----------
    [javac] 15. ERROR in /home/yos2653/red5sip/src/java/org/red5/codecs/SIPCodecG729.java (at line 120)
    [javac]     public int getIncomingPacketization() {
    [javac]                ^^^^^^^^^^^^^^^^^^^^^^^^^^
    [javac] The method getIncomingPacketization() of type SIPCodecG729 must override a superclass method
    [javac] ----------
    [javac] 16. ERROR in /home/yos2653/red5sip/src/java/org/red5/codecs/SIPCodecG729.java (at line 127)
    [javac]     public int getOutgoingPacketization() {
    [javac]                ^^^^^^^^^^^^^^^^^^^^^^^^^^
    [javac] The method getOutgoingPacketization() of type SIPCodecG729 must override a superclass method
    [javac] ----------
    [javac] 17. ERROR in /home/yos2653/red5sip/src/java/org/red5/codecs/SIPCodecG729.java (at line 134)
    [javac]     public void setLocalPtime( int localPtime ) {
    [javac]                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    [javac] The method setLocalPtime(int) of type SIPCodecG729 must override a superclass method
    [javac] ----------
    [javac] 18. ERROR in /home/yos2653/red5sip/src/java/org/red5/codecs/SIPCodecG729.java (at line 145)
    [javac]     public void setRemotePtime( int remotePtime ) {
    [javac]                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    [javac] The method setRemotePtime(int) of type SIPCodecG729 must override a superclass method
    [javac] ----------
    [javac] 19. ERROR in /home/yos2653/red5sip/src/java/org/red5/codecs/SIPCodecG729.java (at line 156)
    [javac]     public int getSampleRate() {
    [javac]                ^^^^^^^^^^^^^^^
    [javac] The method getSampleRate() of type SIPCodecG729 must override a superclass method
    [javac] ----------
    [javac] 20. ERROR in /home/yos2653/red5sip/src/java/org/red5/codecs/SIPCodecG729.java (at line 163)
    [javac]     public String getCodecName() {
    [javac]                   ^^^^^^^^^^^^^^
    [javac] The method getCodecName() of type SIPCodecG729 must override a superclass method
    [javac] ----------
    [javac] 21. ERROR in /home/yos2653/red5sip/src/java/org/red5/codecs/SIPCodecG729.java (at line 170)
    [javac]     public int getCodecId() {
    [javac]                ^^^^^^^^^^^^
    [javac] The method getCodecId() of type SIPCodecG729 must override a superclass method
    [javac] ----------
    [javac] 22. ERROR in /home/yos2653/red5sip/src/java/org/red5/codecs/SIPCodecG729.java (at line 177)
    [javac]     public String[] getCodecMediaAttributes() {
    [javac]                     ^^^^^^^^^^^^^^^^^^^^^^^^^
    [javac] The method getCodecMediaAttributes() of type SIPCodecG729 must override a superclass method
    [javac] ----------
    [javac] 22 problems (18 errors, 4 warnings)

RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

Posted by Joseph Karwat <jk...@jellnet.com>.
Sebastian:

 

If the "price" of a better product is a bigger download I would opt for the
bigger download. 

 

Also, sounds like the root problem is updating the code that will not
compile using OpenLaszlo 5.0/Flex SDK 4.6.  

 

Joseph Karwat | CEO | 415-462-0263 |  <http://www.jellvideo.com/> JellVideo
|  <http://www.jellnet.com/> www.jellnet.com | 3psquare93x77 

Jell Networks, Inc. 

Enterprise Video Collaboration Solutions

 

Click Here to Register for your JellVideo Collaboration Account
<http://www.jellvideo.com/> 

 

 

From: seba.wagner@gmail.com [mailto:seba.wagner@gmail.com] 
Sent: Wednesday, September 05, 2012 1:05 AM
To: openmeetings-user@incubator.apache.org
Subject: Re: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

the method "getEnhancedMicrophone()" is not available in Flex SDK < 4.6
OpenLaszlo 4.9 what we use internally uses Flex SDK 4.5
OpenLaszlo 5.0 uses Flex SDK 4.6 but does not compile all the code of
OpenMeetings.
It is technically possible to use both, OpenLaszlo 5 and 4.9 to compile the
source code to SWF11 and the rest of OpenMeetings to SWF8. However it would
blow up the compilation by 80 MB additional to download.

I could try to modify the build scripts to do that.

Sebastian



2012/9/5 George Kirkham <gk...@co2crc.com.au>

Sebastian, 

 

I had not realised that Flash Player 10's MicrophoneEnhancedMode was limited
to SWF11 ?

 

Any further degree of echo cancellation would be useful, even if not a
complete solution.

 

Thanks,

 

George Kirkham

 

 

From: seba.wagner@gmail.com [mailto:seba.wagner@gmail.com] 
Sent: Wednesday, 5 September 2012 5:12 PM
To: openmeetings-user@incubator.apache.org
Subject: Re: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

We are not using AEC since we do not compile to SWF11.
I would not expect world wonders from AEC, it will not make "Magically"
hardware work that did not work before.

Sebastian

2012/9/5 George Kirkham <gk...@co2crc.com.au>

Joseph,

 

I don't believe that the OpenMeetings code is activating Adobe's Flash
Player's Acoustic Echo Cancellation, though I do believe that BigBlueButton
is doing so, thus it should also be possible for Openmeetings.

 

Maxim, or anyone else, can you confirm whether OpenMeetings is enabling
Adobe's Flash Player's Acoustic Echo Cancellation by calling
getEnhancedMicrophone, and enabling it with
MicrophoneEnhancedMode.FULL_DUPLEX ?  And is using the SPEEX codec?

 

I reached the above understanding from the following information;

 

RTMP (except RTMFP) is a TCP-based protocol which maintains persistent
connections and allows low-latency communication. To deliver streams
smoothly and transmit as much information as possible, it splits streams
into fragments and their size is negotiated dynamically between the client
and server while sometimes it is kept unchanged: the default fragment sizes
are 64-bytes for audio data, and 128 bytes for video data and most other
data types.

 

The Secure Real-Time Media Flow Protocol (RTMFP) is a proprietary protocol
suite developed by Adobe Systems for encrypted, efficient multimedia
delivery through both client-server and peer-to-peer models over the
Internet.

 

http://www.adobe.com/devnet/flashplayer/articles/acoustic-echo-cancellation.
html

 

Flash Player 10 also introduced the Speex codec. Speex is an open-source,
royalty-free codec that enjoys wide industry support. Flash supports Speex
encoding at 16 kHz.

 

... Acoustic echo occurs when the sound from the computer's speaker is fed
back to the microphone. ... Using headsets may be acceptable in corporate
environments, but it's clearly undesirable in the consumer space, where
users commonly use webcams or built-in laptop microphones. To achieve
widespread adaption, acoustic echo cancellation (AEC) is absolutely required
for voice-over-IP (VoIP) applications.  ... 

 

 

Enhanced audio API 

 

We have added a new API to the Flash platform for enabling enhanced audio.
This feature is available on all supported desktop platforms of Flash Player
and AIR. The new API is only available in ActionScript 3. You must target
Flash Player 10.3 or AIR 2.7 (or later) and SWF version 12 in your authoring
environment, and you must update your playerglobal.swc. The following
classes are affected:

.Microphone: A new static method was added to this class to create enhanced
microphone and read/write properties for configuring enhanced microphone
options.

.MicrophoneEnhancedOptions: This new class lets you configure enhanced
microphone settings.

.MicrophoneEnhancedMode: This new class enumerates enhanced microphone
operation modes.

The constructor of MicrophoneEnhancedOptions will set the following default
properties:

 

var options:MicrophoneEnhancedOptions = new MicrophoneEnhancedOptions();

options.mode = MicrophoneEnhancedMode.FULL_DUPLEX;

options.echoPath = 128;

options.nonLinearProcessing = true;

 

To query the enhanced microphone options actually in use, please use the
following:

 

var microphone:Microphone = Microphone.getEnhancedMicrophone();

var options:MicrophoneEnhancedOptions = microphone.enhancedOptions;

 

When you only want to modify certain enhanced audio parameters, make sure
that you do not create a MicrophoneEnhancedOptions object using the
constructor because you may inadvertently override other parameters as well.

 

Sending audio to another Flash endpoint or Flash Media Server can be
implemented with only a few lines of code:

var netConnection:NetConnection = new NetConnection();

netConnection.connect("rtmfp://example.com/rtc");

var netStream:NetStream = new NetStream(netConnection);

var microphone:Microphone = Microphone.getMicrophone();

netStream.attachAudio(microphone);

 

Using enhanced audio is equally simple: You can obtain an enhanced
microphone using the Microphone.getEnhancedMicrophone() static method:

var microphone:Microphone = Microphone.getEnhancedMicrophone();

netStream.attachAudio(microphone);

 

In addition to acoustic echo cancellation, enhanced audio also provides
noise suppression. Previously, Flash Player only provided noise suppression
for Speex audio. The new noise-suppression scheme is applied to all captured
audio samples. Noise suppression is controlled by the already-existing
noiseSuppressionLevel property of the Microphone class and is enabled by
default. Setting noiseSuppressionLevel to 0 will disable noise suppression.

 

Enhanced audio has a couple of limitations:

.You cannot use enhanced and non-enhanced audio at the same time.

.You can only use a single enhanced audio capture at any given time.

 

Operation of enhanced audio is controlled by the enhancedOptions property on
your Microphone object and the MicrophoneEnhancedOptions class. The class
has the following properties:

.MicrophoneEnhancedOptions.mode selects the operation mode for enhanced
audio. For possible values, please see the MicrophoneEnhancedMode class. The
default value is MicrophoneEnhancedMode.HALF_DUPLEX for USB capture devices
and MicrophoneEnhancedMode.FULL_DUPLEX otherwise.

 

.MicrophoneEnhancedOptions.echoPath specifies the echo path length (in
milliseconds). A longer echo path means better echo cancellation but also
introduces longer delays and requires more processing power. The default
value is 128; the only other possible value is 256.

 

.MicrophoneEnhancedOptions.nonLinearProcessing specifies whether to use
non-linear processing to suppresses residual echo. A time-domain technique
is used; the default value is enabled.

 

 

https://github.com/bigbluebutton/bigbluebutton/blob/master/bigbluebutton-cli
ent/src/org/bigbluebutton/modules/phone/managers/StreamManager.as

 

               private function setupMicrophone():void {

                       var vxml:XML = BBB.getConfigForModule("PhoneModule");

                       var phoneOptions:PhoneOptions = new PhoneOptions();

                       if (vxml != null) {

                               phoneOptions.enabledEchoCancel =
(vxml.@enabledEchoCancel.toString().toUpperCase() == "TRUE") ? true : false;

                       }

 

                       if ((BBB.getFlashPlayerVersion() >= 10.3) &&
(phoneOptions.enabledEchoCancel)) {

                               LogUtil.debug("Using acoustic echo
cancellation.");

                               mic =
Microphone(Microphone["getEnhancedMicrophone"]());

                               var options:MicrophoneEnhancedOptions = new
MicrophoneEnhancedOptions();

                               options.mode =
MicrophoneEnhancedMode.FULL_DUPLEX;

                               options.autoGain = false;

                               options.echoPath = 128;

                               options.nonLinearProcessing = true;

                               mic['enhancedOptions'] = options;

                       } else {

 

                       }

 

                       mic.setUseEchoSuppression(true);

                       mic.setLoopBack(false);

                       mic.setSilenceLevel(0,20000);

                       if (audioCodec == "SPEEX") {

                               mic.encodeQuality = 6;

                               mic.codec = SoundCodec.SPEEX;

                               mic.framesPerPacket = 1;

                               mic.rate = 16; 

                               LogUtil.debug("Using SPEEX whideband
codec.");

                       } else {

                               mic.codec = SoundCodec.NELLYMOSER;

                               mic.rate = 8;

                               LogUtil.debug("Using Nellymoser codec.");

                       }                      

                       mic.gain = 60;                 

               }

 

 

http://stackoverflow.com/questions/8272155/removing-noise-wheh-mic-attached-
to-stream-on-red5

 

 

Thanks,

George Kirkham

 

 

From: Joseph Karwat [mailto:jkarwat@jellnet.com] 
Sent: Friday, 31 August 2012 4:58 AM


To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

George:

 

Above is the article.  It might be easier to view it directly on Adobe's web
site.  Just google it.  A careful read of the article discusses the whole
RTMP and RTMFP protocols and their use in video conferencing and Flash.

 

I have a limited tech background, and would be interested in your thoughts.

 

Best,

 

Joseph

 

Joseph Karwat | CEO | 415-462-0263 |  <http://www.jellvideo.com/> JellVideo
|  <http://www.jellnet.com/> www.jellnet.com | 3psquare93x77 

Jell Networks, Inc. 

Enterprise Video Collaboration Solutions

 

Click Here to Register for your JellVideo Collaboration Account
<http://www.jellvideo.com/> 

 

 

From: George Kirkham [mailto:gkirkham@co2crc.com.au] 
Sent: Wednesday, August 29, 2012 12:59 PM
To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

Joseph,

 

Could you please post links and references to the documentation that leads
you to believe "My understanding is that Adobe Flash AEC only works with the
RTMFP protocol" ?

 

Thanks,

 

George Kirkham

 

 

 

From: Joseph Karwat [mailto:jkarwat@jellnet.com] 
Sent: Thursday, 30 August 2012 5:14 AM
To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

My understanding is that Adobe Flash AEC only works with the RTMFP protocol
which is not currently supported by Red5.  

 

That's why trying to get the audio stream working with SIP/Asterisk might be
a good interim or permanent solution to improving the Audio quality and
finally putting an end to all the AEC issues.

 

Joseph Karwat | CEO | 415-462-0263 |  <http://www.jellvideo.com/> JellVideo
|  <http://www.jellnet.com/> www.jellnet.com | 3psquare93x77 

Jell Networks, Inc. 

Enterprise Video Collaboration Solutions

 

Click Here to Register for your JellVideo Collaboration Account
<http://www.jellvideo.com/> 

 

 

From: George Kirkham [mailto:gkirkham@co2crc.com.au] 
Sent: Tuesday, August 28, 2012 7:08 PM
To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

Luke,

 

I believe the only echo cancelling that OpenMeetings has is the Adobe
flashplayer's "reduce Echo" setting. Right click the OpenMeetings window and
select "Settings.".



 

I have found that Audio conferencing can only be used if everyone attending
the conference has echo cancelling hardware like the ClearOne Chat-60
speakerphone or headphones with microphone.

 

This is why OpenMeetings has a "Exclusive audio" feature which allows the
meeting participants to easily mute all microphones but one (i.e. the person
currently speaking).

 

Thanks,

 

George Kirkham

 

 

-----Original Message-----
From: Luke Ledgerd [mailto:luke@hiled.biz] 
Sent: Wednesday, 29 August 2012 12:02 PM
To: openmeetings-user@incubator.apache.org
Subject: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

I've tried the bleeding edge version (2.1) of Openmeetings.

 

Is the acoustic echo cancellation//**//feature working? I had to mute// <
<http://www.adaptivedigital.com/product/echo_cancel/adt_aec.htm>
http://www.adaptivedigital.com/product/echo_cancel/adt_aec.htm> half the
people in the conference (located in the same meeting room abroad) in order
to kill the audio feedback.

 

Could the problem have been caused by an old flash version.

 

Thought AEC was meant to deal with that, or are you still supporting the
purchase of hardware based speakers / mics with AEC built in?

 

Also are most users updated to adobe 11 by now? Does there need to be a
warning to users so that you can use a better codec than uLaw (ver. 10)?

 

Finally is there a guide for tweaking the red5/openmeetings logging options
for production use?

 

cheers,

 

Luke

 




-- 
Sebastian Wagner
 <https://twitter.com/#%21/dead_lock> https://twitter.com/#!/dead_lock
 <http://www.webbase-design.de> http://www.webbase-design.de
 <http://www.wagner-sebastian.com> http://www.wagner-sebastian.com
 <ma...@gmail.com> seba.wagner@gmail.com




-- 
Sebastian Wagner
 <https://twitter.com/#%21/dead_lock> https://twitter.com/#!/dead_lock
 <http://www.webbase-design.de> http://www.webbase-design.de
 <http://www.wagner-sebastian.com> http://www.wagner-sebastian.com
 <ma...@gmail.com> seba.wagner@gmail.com


RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

Posted by George Kirkham <gk...@co2crc.com.au>.
Sebastian,

 

Thanks, I am always reluctant to suggest more work when I am not in the
place to help with the work load, but even if no one has the time, I can
make [good] suggestions so the OpenMeetings community can review and
prioritise as the community decides.

 

Thanks,

 

George Kirkham

 

 

 

From: seba.wagner@gmail.com [mailto:seba.wagner@gmail.com] 
Sent: Thursday, 6 September 2012 5:25 PM
To: openmeetings-user@incubator.apache.org
Subject: Re: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

Hi George,

compiling the SWF10 to SWF11 should not require so much of a code
change, it is more a build environment configuration task.
I don't think we will transform the SWF8 code to AS3, we rather will
concentrate on DHTML.

For the rest of your tasks I will have to check in detail each of it.

Sebastian

2012/9/6 George Kirkham <gk...@co2crc.com.au>

Sebastian,

 

If I understand your comments correctly, and then to suggest the better
solution, "Would the better challenge would be for someone to rewrite
OpenMeetings to use Flex SDK 4.6, as it seems that OpenMeetings
currently only works with Flex SDK 4.5 where as the current version of
Adobe Flex is 4.6?"

 

I assume the difficulty is finding a person who has the skills and time
to make the necessary code changes for OpenMeetings to move from Flex
SDK 4.5 to 4.6 ?   What skills are required for this task?  An
understanding of Flex SDK would be one.

 

I know how limited my time is, and soon I will be away for two weeks as
well. One day I hope to have time to build a development environment for
OpenMeetings.  Thus I understand how difficult it is for others. By the
way, any chance someone has time to process any of the Jira change
requests that I have submitted?  376 & 377 would be a nice fixes to
have, 358, 359, 360 would be great for everyone, and 368 I would like to
see, and 378 would be a benefit to everyone.  I can but ask, or I can
learn how to make the changes myself (given time).

 

Adobe(r) Flex(r) Software Development Kit (SDK) includes the Flex
framework (component class library) and Flex compiler, enabling you to
freely develop and deploy Flex applications using an IDE of your choice

http://www.adobe.com/devnet/flex/flex-sdk-download.html 

 

 

Thanks,

 

George Kirkham

 

 

From: seba.wagner@gmail.com [mailto:seba.wagner@gmail.com] 
Sent: Wednesday, 5 September 2012 6:05 PM


To: openmeetings-user@incubator.apache.org
Subject: Re: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

the method "getEnhancedMicrophone()" is not available in Flex SDK < 4.6
OpenLaszlo 4.9 what we use internally uses Flex SDK 4.5
OpenLaszlo 5.0 uses Flex SDK 4.6 but does not compile all the code of
OpenMeetings.
It is technically possible to use both, OpenLaszlo 5 and 4.9 to compile
the source code to SWF11 and the rest of OpenMeetings to SWF8. However
it would blow up the compilation by 80 MB additional to download.

I could try to modify the build scripts to do that.

Sebastian

2012/9/5 George Kirkham <gk...@co2crc.com.au>

Sebastian, 

 

I had not realised that Flash Player 10's MicrophoneEnhancedMode was
limited to SWF11 ?

 

Any further degree of echo cancellation would be useful, even if not a
complete solution.

 

Thanks,

 

George Kirkham

 

 

From: seba.wagner@gmail.com [mailto:seba.wagner@gmail.com] 
Sent: Wednesday, 5 September 2012 5:12 PM
To: openmeetings-user@incubator.apache.org
Subject: Re: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

We are not using AEC since we do not compile to SWF11.
I would not expect world wonders from AEC, it will not make "Magically"
hardware work that did not work before.

Sebastian

2012/9/5 George Kirkham <gk...@co2crc.com.au>

Joseph,

 

I don't believe that the OpenMeetings code is activating Adobe's Flash
Player's Acoustic Echo Cancellation, though I do believe that
BigBlueButton is doing so, thus it should also be possible for
Openmeetings.

 

Maxim, or anyone else, can you confirm whether OpenMeetings is enabling
Adobe's Flash Player's Acoustic Echo Cancellation by calling
getEnhancedMicrophone, and enabling it with
MicrophoneEnhancedMode.FULL_DUPLEX ?  And is using the SPEEX codec?

 

I reached the above understanding from the following information;

 

RTMP (except RTMFP) is a TCP-based protocol which maintains persistent
connections and allows low-latency communication. To deliver streams
smoothly and transmit as much information as possible, it splits streams
into fragments and their size is negotiated dynamically between the
client and server while sometimes it is kept unchanged: the default
fragment sizes are 64-bytes for audio data, and 128 bytes for video data
and most other data types.

 

The Secure Real-Time Media Flow Protocol (RTMFP) is a proprietary
protocol suite developed by Adobe Systems for encrypted, efficient
multimedia delivery through both client-server and peer-to-peer models
over the Internet.

 

http://www.adobe.com/devnet/flashplayer/articles/acoustic-echo-cancellat
ion.html

 

Flash Player 10 also introduced the Speex codec. Speex is an
open-source, royalty-free codec that enjoys wide industry support. Flash
supports Speex encoding at 16 kHz.

 

... Acoustic echo occurs when the sound from the computer's speaker is
fed back to the microphone. ... Using headsets may be acceptable in
corporate environments, but it's clearly undesirable in the consumer
space, where users commonly use webcams or built-in laptop microphones.
To achieve widespread adaption, acoustic echo cancellation (AEC) is
absolutely required for voice-over-IP (VoIP) applications.  ... 

 

 

Enhanced audio API 

 

We have added a new API to the Flash platform for enabling enhanced
audio. This feature is available on all supported desktop platforms of
Flash Player and AIR. The new API is only available in ActionScript 3.
You must target Flash Player 10.3 or AIR 2.7 (or later) and SWF version
12 in your authoring environment, and you must update your
playerglobal.swc. The following classes are affected:

*Microphone: A new static method was added to this class to create
enhanced microphone and read/write properties for configuring enhanced
microphone options.

*MicrophoneEnhancedOptions: This new class lets you configure enhanced
microphone settings.

*MicrophoneEnhancedMode: This new class enumerates enhanced microphone
operation modes.

The constructor of MicrophoneEnhancedOptions will set the following
default properties:

 

var options:MicrophoneEnhancedOptions = new MicrophoneEnhancedOptions();

options.mode = MicrophoneEnhancedMode.FULL_DUPLEX;

options.echoPath = 128;

options.nonLinearProcessing = true;

 

To query the enhanced microphone options actually in use, please use the
following:

 

var microphone:Microphone = Microphone.getEnhancedMicrophone();

var options:MicrophoneEnhancedOptions = microphone.enhancedOptions;

 

When you only want to modify certain enhanced audio parameters, make
sure that you do not create a MicrophoneEnhancedOptions object using the
constructor because you may inadvertently override other parameters as
well.

 

Sending audio to another Flash endpoint or Flash Media Server can be
implemented with only a few lines of code:

var netConnection:NetConnection = new NetConnection();

netConnection.connect("rtmfp://example.com/rtc");

var netStream:NetStream = new NetStream(netConnection);

var microphone:Microphone = Microphone.getMicrophone();

netStream.attachAudio(microphone);

 

Using enhanced audio is equally simple: You can obtain an enhanced
microphone using the Microphone.getEnhancedMicrophone() static method:

var microphone:Microphone = Microphone.getEnhancedMicrophone();

netStream.attachAudio(microphone);

 

In addition to acoustic echo cancellation, enhanced audio also provides
noise suppression. Previously, Flash Player only provided noise
suppression for Speex audio. The new noise-suppression scheme is applied
to all captured audio samples. Noise suppression is controlled by the
already-existing noiseSuppressionLevel property of the Microphone class
and is enabled by default. Setting noiseSuppressionLevel to 0 will
disable noise suppression.

 

Enhanced audio has a couple of limitations:

*You cannot use enhanced and non-enhanced audio at the same time.

*You can only use a single enhanced audio capture at any given time.

 

Operation of enhanced audio is controlled by the enhancedOptions
property on your Microphone object and the MicrophoneEnhancedOptions
class. The class has the following properties:

*MicrophoneEnhancedOptions.mode selects the operation mode for enhanced
audio. For possible values, please see the MicrophoneEnhancedMode class.
The default value is MicrophoneEnhancedMode.HALF_DUPLEX for USB capture
devices and MicrophoneEnhancedMode.FULL_DUPLEX otherwise.

 

*MicrophoneEnhancedOptions.echoPath specifies the echo path length (in
milliseconds). A longer echo path means better echo cancellation but
also introduces longer delays and requires more processing power. The
default value is 128; the only other possible value is 256.

 

*MicrophoneEnhancedOptions.nonLinearProcessing specifies whether to use
non-linear processing to suppresses residual echo. A time-domain
technique is used; the default value is enabled.

 

 

https://github.com/bigbluebutton/bigbluebutton/blob/master/bigbluebutton
-client/src/org/bigbluebutton/modules/phone/managers/StreamManager.as

 

               private function setupMicrophone():void {

                       var vxml:XML =
BBB.getConfigForModule("PhoneModule");

                       var phoneOptions:PhoneOptions = new
PhoneOptions();

                       if (vxml != null) {

                               phoneOptions.enabledEchoCancel = (
vxml.@enabledEchoCancel.toString().toUpperCase() == "TRUE") ? true :
false;

                       }

 

                       if ((BBB.getFlashPlayerVersion() >= 10.3) &&
(phoneOptions.enabledEchoCancel)) {

                               LogUtil.debug("Using acoustic echo
cancellation.");

                               mic =
Microphone(Microphone["getEnhancedMicrophone"]());

                               var options:MicrophoneEnhancedOptions =
new MicrophoneEnhancedOptions();

                               options.mode =
MicrophoneEnhancedMode.FULL_DUPLEX;

                               options.autoGain = false;

                               options.echoPath = 128;

                               options.nonLinearProcessing = true;

                               mic['enhancedOptions'] = options;

                       } else {

 

                       }

 

                       mic.setUseEchoSuppression(true);

                       mic.setLoopBack(false);

                       mic.setSilenceLevel(0,20000);

                       if (audioCodec == "SPEEX") {

                               mic.encodeQuality = 6;

                               mic.codec = SoundCodec.SPEEX;

                               mic.framesPerPacket = 1;

                               mic.rate = 16; 

                               LogUtil.debug("Using SPEEX whideband
codec.");

                       } else {

                               mic.codec = SoundCodec.NELLYMOSER;

                               mic.rate = 8;

                               LogUtil.debug("Using Nellymoser codec.");

                       }                      

                       mic.gain = 60;                 

               }

 

 

http://stackoverflow.com/questions/8272155/removing-noise-wheh-mic-attac
hed-to-stream-on-red5

 

 

Thanks,

George Kirkham

 

 

From: Joseph Karwat [mailto:jkarwat@jellnet.com] 
Sent: Friday, 31 August 2012 4:58 AM


To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

George:

 

Above is the article.  It might be easier to view it directly on Adobe's
web site.  Just google it.  A careful read of the article discusses the
whole RTMP and RTMFP protocols and their use in video conferencing and
Flash.

 

I have a limited tech background, and would be interested in your
thoughts.

 

Best,

 

Joseph

 

Joseph Karwat | CEO | 415-462-0263 | JellVideo
<http://www.jellvideo.com/>  | www.jellnet.com <http://www.jellnet.com/>
|   

Jell Networks, Inc. 

Enterprise Video Collaboration Solutions

 

Click Here to Register for your JellVideo Collaboration Account
<http://www.jellvideo.com/> 

 

 

From: George Kirkham [mailto:gkirkham@co2crc.com.au] 
Sent: Wednesday, August 29, 2012 12:59 PM
To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

Joseph,

 

Could you please post links and references to the documentation that
leads you to believe "My understanding is that Adobe Flash AEC only
works with the RTMFP protocol" ?

 

Thanks,

 

George Kirkham

 

 

 

From: Joseph Karwat [mailto:jkarwat@jellnet.com] 
Sent: Thursday, 30 August 2012 5:14 AM
To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

My understanding is that Adobe Flash AEC only works with the RTMFP
protocol which is not currently supported by Red5.  

 

That's why trying to get the audio stream working with SIP/Asterisk
might be a good interim or permanent solution to improving the Audio
quality and finally putting an end to all the AEC issues.

 

Joseph Karwat | CEO | 415-462-0263 | JellVideo
<http://www.jellvideo.com/>  | www.jellnet.com <http://www.jellnet.com/>
|  

Jell Networks, Inc. 

Enterprise Video Collaboration Solutions

 

Click Here to Register for your JellVideo Collaboration Account
<http://www.jellvideo.com/> 

 

 

From: George Kirkham [mailto:gkirkham@co2crc.com.au] 
Sent: Tuesday, August 28, 2012 7:08 PM
To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

Luke,

 

I believe the only echo cancelling that OpenMeetings has is the Adobe
flashplayer's "reduce Echo" setting. Right click the OpenMeetings window
and select "Settings...".

 

 

I have found that Audio conferencing can only be used if everyone
attending the conference has echo cancelling hardware like the ClearOne
Chat-60 speakerphone or headphones with microphone.

 

This is why OpenMeetings has a "Exclusive audio" feature which allows
the meeting participants to easily mute all microphones but one (i.e.
the person currently speaking).

 

Thanks,

 

George Kirkham

 

 

-----Original Message-----
From: Luke Ledgerd [mailto:luke@hiled.biz] 
Sent: Wednesday, 29 August 2012 12:02 PM
To: openmeetings-user@incubator.apache.org
Subject: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

I've tried the bleeding edge version (2.1) of Openmeetings.

 

Is the acoustic echo cancellation//**//feature working? I had to mute//
<http://www.adaptivedigital.com/product/echo_cancel/adt_aec.htm
<http://www.adaptivedigital.com/product/echo_cancel/adt_aec.htm> > half
the people in the conference (located in the same meeting room abroad)
in order to kill the audio feedback.

 

Could the problem have been caused by an old flash version.

 

Thought AEC was meant to deal with that, or are you still supporting the
purchase of hardware based speakers / mics with AEC built in?

 

Also are most users updated to adobe 11 by now? Does there need to be a
warning to users so that you can use a better codec than uLaw (ver. 10)?

 

Finally is there a guide for tweaking the red5/openmeetings logging
options for production use?

 

cheers,

 

Luke

 




-- 
Sebastian Wagner
https://twitter.com/#!/dead_lock <https://twitter.com/#%21/dead_lock> 
http://www.webbase-design.de <http://www.webbase-design.de> 
http://www.wagner-sebastian.com <http://www.wagner-sebastian.com> 
seba.wagner@gmail.com <ma...@gmail.com> 




-- 
Sebastian Wagner
https://twitter.com/#!/dead_lock <https://twitter.com/#%21/dead_lock> 
http://www.webbase-design.de <http://www.webbase-design.de> 
http://www.wagner-sebastian.com <http://www.wagner-sebastian.com> 
seba.wagner@gmail.com <ma...@gmail.com> 




-- 
Sebastian Wagner
https://twitter.com/#!/dead_lock <https://twitter.com/#%21/dead_lock> 
http://www.webbase-design.de <http://www.webbase-design.de> 
http://www.wagner-sebastian.com <http://www.wagner-sebastian.com> 
seba.wagner@gmail.com <ma...@gmail.com> 


Re: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

Posted by "seba.wagner@gmail.com" <se...@gmail.com>.
Hi George,

compiling the SWF10 to SWF11 should not require so much of a code change,
it is more a build environment configuration task.
I don't think we will transform the SWF8 code to AS3, we rather will
concentrate on DHTML.

For the rest of your tasks I will have to check in detail each of it.

Sebastian

2012/9/6 George Kirkham <gk...@co2crc.com.au>

> Sebastian,****
>
> ** **
>
> If I understand your comments correctly, and then to suggest the better
> solution, “Would the better challenge would be for someone to rewrite
> OpenMeetings to use Flex SDK 4.6, as it seems that OpenMeetings currently
> only works with Flex SDK 4.5 where as the current version of Adobe Flex is
> 4.6?”****
>
> ** **
>
> I assume the difficulty is finding a person who has the skills and time to
> make the necessary code changes for OpenMeetings to move from Flex SDK 4.5
> to 4.6 ?   What skills are required for this task?  An understanding of
> Flex SDK would be one.****
>
> ** **
>
> I know how limited my time is, and soon I will be away for two weeks as
> well. One day I hope to have time to build a development environment for
> OpenMeetings.  Thus I understand how difficult it is for others. By the
> way, any chance someone has time to process any of the Jira change requests
> that I have submitted?  376 & 377 would be a nice fixes to have, 358, 359,
> 360 would be great for everyone, and 368 I would like to see, and 378 would
> be a benefit to everyone.  I can but ask, or I can learn how to make the
> changes myself (given time).****
>
> ** **
>
> Adobe® Flex® Software Development Kit (SDK) includes the Flex framework
> (component class library) and Flex compiler, enabling you to freely develop
> and deploy Flex applications using an IDE of your choice****
>
> http://www.adobe.com/devnet/flex/flex-sdk-download.html ****
>
> ** **
>
> ** **
>
> Thanks,****
>
> ** **
>
> George Kirkham****
>
> ** **
>
> ** **
>
> *From:* seba.wagner@gmail.com [mailto:seba.wagner@gmail.com]
> *Sent:* Wednesday, 5 September 2012 6:05 PM
>
> *To:* openmeetings-user@incubator.apache.org
> *Subject:* Re: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11****
>
> ** **
>
> the method "getEnhancedMicrophone()" is not available in Flex SDK < 4.6
> OpenLaszlo 4.9 what we use internally uses Flex SDK 4.5
> OpenLaszlo 5.0 uses Flex SDK 4.6 but does not compile all the code of
> OpenMeetings.
> It is technically possible to use both, OpenLaszlo 5 and 4.9 to compile
> the source code to SWF11 and the rest of OpenMeetings to SWF8. However it
> would blow up the compilation by 80 MB additional to download.
>
> I could try to modify the build scripts to do that.
>
> Sebastian
>
> ****
>
> 2012/9/5 George Kirkham <gk...@co2crc.com.au>****
>
> Sebastian, ****
>
>  ****
>
> I had not realised that Flash Player 10’s MicrophoneEnhancedMode was
> limited to SWF11 ?****
>
>  ****
>
> Any further degree of echo cancellation would be useful, even if not a
> complete solution.****
>
>  ****
>
> Thanks,****
>
>  ****
>
> George Kirkham****
>
>  ****
>
>  ****
>
> *From:* seba.wagner@gmail.com [mailto:seba.wagner@gmail.com]
> *Sent:* Wednesday, 5 September 2012 5:12 PM
> *To:* openmeetings-user@incubator.apache.org
> *Subject:* Re: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11****
>
>  ****
>
> We are not using AEC since we do not compile to SWF11.
> I would not expect world wonders from AEC, it will not make "Magically"
> hardware work that did not work before.
>
> Sebastian****
>
> 2012/9/5 George Kirkham <gk...@co2crc.com.au>****
>
> Joseph,****
>
>  ****
>
> I don’t believe that the OpenMeetings code is activating Adobe’s Flash
> Player’s Acoustic Echo Cancellation, though I do believe that BigBlueButton
> is doing so, thus it should also be possible for Openmeetings.****
>
>  ****
>
> Maxim, or anyone else, can you confirm whether OpenMeetings is enabling
> Adobe’s Flash Player’s Acoustic Echo Cancellation by calling
> getEnhancedMicrophone, and enabling it with
> MicrophoneEnhancedMode.FULL_DUPLEX ?  And is using the SPEEX codec?****
>
>  ****
>
> I reached the above understanding from the following information;****
>
>  ****
>
> RTMP (except RTMFP) is a TCP-based protocol which maintains persistent
> connections and allows low-latency communication. To deliver streams
> smoothly and transmit as much information as possible, it splits streams
> into fragments and their size is negotiated dynamically between the client
> and server while sometimes it is kept unchanged: the default fragment sizes
> are 64-bytes for audio data, and 128 bytes for video data and most other
> data types.****
>
>  ****
>
> The Secure Real-Time Media Flow Protocol (RTMFP) is a proprietary protocol
> suite developed by Adobe Systems for encrypted, efficient multimedia
> delivery through both client-server and peer-to-peer models over the
> Internet.****
>
>  ****
>
>
> http://www.adobe.com/devnet/flashplayer/articles/acoustic-echo-cancellation.html
> ****
>
>  ****
>
> Flash Player 10 also introduced the Speex codec. Speex is an open-source,
> royalty-free codec that enjoys wide industry support. Flash supports Speex
> encoding at 16 kHz.****
>
>  ****
>
> ... Acoustic echo occurs when the sound from the computer's speaker is fed
> back to the microphone. ... Using headsets may be acceptable in corporate
> environments, but it's clearly undesirable in the consumer space, where
> users commonly use webcams or built-in laptop microphones. To achieve
> widespread adaption, acoustic echo cancellation (AEC) is absolutely
> required for voice-over-IP (VoIP) applications.  ... ****
>
>  ****
>
>  ****
>
> Enhanced audio API ****
>
>  ****
>
> We have added a new API to the Flash platform for enabling enhanced audio.
> This feature is available on all supported desktop platforms of Flash
> Player and AIR. The new API is only available in ActionScript 3. You must
> target Flash Player 10.3 or AIR 2.7 (or later) and SWF version 12 in your
> authoring environment, and you must update your playerglobal.swc. The
> following classes are affected:****
>
> •Microphone: A new static method was added to this class to create
> enhanced microphone and read/write properties for configuring enhanced
> microphone options.****
>
> •MicrophoneEnhancedOptions: This new class lets you configure enhanced
> microphone settings.****
>
> •MicrophoneEnhancedMode: This new class enumerates enhanced microphone
> operation modes.****
>
> The constructor of MicrophoneEnhancedOptions will set the following
> default properties:****
>
>  ****
>
> var options:MicrophoneEnhancedOptions = new MicrophoneEnhancedOptions();**
> **
>
> options.mode = MicrophoneEnhancedMode.FULL_DUPLEX;****
>
> options.echoPath = 128;****
>
> options.nonLinearProcessing = true;****
>
>  ****
>
> To query the enhanced microphone options actually in use, please use the
> following:****
>
>  ****
>
> var microphone:Microphone = Microphone.getEnhancedMicrophone();****
>
> var options:MicrophoneEnhancedOptions = microphone.enhancedOptions;****
>
>  ****
>
> When you only want to modify certain enhanced audio parameters, make sure
> that you do not create a MicrophoneEnhancedOptions object using the
> constructor because you may inadvertently override other parameters as well.
> ****
>
>  ****
>
> Sending audio to another Flash endpoint or Flash Media Server can be
> implemented with only a few lines of code:****
>
> var netConnection:NetConnection = new NetConnection();****
>
> netConnection.connect("rtmfp://example.com/rtc");****
>
> var netStream:NetStream = new NetStream(netConnection);****
>
> var microphone:Microphone = Microphone.getMicrophone();****
>
> netStream.attachAudio(microphone);****
>
>  ****
>
> Using enhanced audio is equally simple: You can obtain an enhanced
> microphone using the Microphone.getEnhancedMicrophone() static method:****
>
> var microphone:Microphone = Microphone.getEnhancedMicrophone();****
>
> netStream.attachAudio(microphone);****
>
>  ****
>
> In addition to acoustic echo cancellation, enhanced audio also provides
> noise suppression. Previously, Flash Player only provided noise suppression
> for Speex audio. The new noise-suppression scheme is applied to all
> captured audio samples. Noise suppression is controlled by the
> already-existing noiseSuppressionLevel property of the Microphone class and
> is enabled by default. Setting noiseSuppressionLevel to 0 will disable
> noise suppression.****
>
>  ****
>
> Enhanced audio has a couple of limitations:****
>
> •You cannot use enhanced and non-enhanced audio at the same time.****
>
> •You can only use a single enhanced audio capture at any given time.****
>
>  ****
>
> Operation of enhanced audio is controlled by the enhancedOptions property
> on your Microphone object and the MicrophoneEnhancedOptions class. The
> class has the following properties:****
>
> •MicrophoneEnhancedOptions.mode selects the operation mode for enhanced
> audio. For possible values, please see the MicrophoneEnhancedMode class.
> The default value is MicrophoneEnhancedMode.HALF_DUPLEX for USB capture
> devices and MicrophoneEnhancedMode.FULL_DUPLEX otherwise.****
>
>  ****
>
> •MicrophoneEnhancedOptions.echoPath specifies the echo path length (in
> milliseconds). A longer echo path means better echo cancellation but also
> introduces longer delays and requires more processing power. The default
> value is 128; the only other possible value is 256.****
>
>  ****
>
> •MicrophoneEnhancedOptions.nonLinearProcessing specifies whether to use
> non-linear processing to suppresses residual echo. A time-domain technique
> is used; the default value is enabled.****
>
>  ****
>
>  ****
>
>
> https://github.com/bigbluebutton/bigbluebutton/blob/master/bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/StreamManager.as
> ****
>
>  ****
>
>                private function setupMicrophone():void {****
>
>                        var vxml:XML =
> BBB.getConfigForModule("PhoneModule");****
>
>                        var phoneOptions:PhoneOptions = new PhoneOptions();
> ****
>
>                        if (vxml != null) {****
>
>                                phoneOptions.enabledEchoCancel = (
> vxml.@enabledEchoCancel.toString().toUpperCase() == "TRUE") ? true :
> false;****
>
>                        }****
>
>  ****
>
>                        if ((BBB.getFlashPlayerVersion() >= 10.3) &&
> (phoneOptions.enabledEchoCancel)) {****
>
>                                LogUtil.debug("Using acoustic echo
> cancellation.");****
>
>                                mic =
> Microphone(Microphone["getEnhancedMicrophone"]());****
>
>                                var options:MicrophoneEnhancedOptions = new
> MicrophoneEnhancedOptions();****
>
>                                options.mode =
> MicrophoneEnhancedMode.FULL_DUPLEX;****
>
>                                options.autoGain = false;****
>
>                                options.echoPath = 128;****
>
>                                options.nonLinearProcessing = true;****
>
>                                mic['enhancedOptions'] = options;****
>
>                        } else {****
>
>  ****
>
>                        }****
>
>  ****
>
>                        mic.setUseEchoSuppression(true);****
>
>                        mic.setLoopBack(false);****
>
>                        mic.setSilenceLevel(0,20000);****
>
>                        if (audioCodec == "SPEEX") {****
>
>                                mic.encodeQuality = 6;****
>
>                                mic.codec = SoundCodec.SPEEX;****
>
>                                mic.framesPerPacket = 1;****
>
>                                mic.rate = 16; ****
>
>                                LogUtil.debug("Using SPEEX whideband
> codec.");****
>
>                        } else {****
>
>                                mic.codec = SoundCodec.NELLYMOSER;****
>
>                                mic.rate = 8;****
>
>                                LogUtil.debug("Using Nellymoser codec.");**
> **
>
>                        }                      ****
>
>                        mic.gain = 60;                 ****
>
>                }****
>
>  ****
>
>  ****
>
>
> http://stackoverflow.com/questions/8272155/removing-noise-wheh-mic-attached-to-stream-on-red5
> ****
>
>  ****
>
>  ****
>
> Thanks,****
>
> George Kirkham****
>
>  ****
>
>  ****
>
> *From:* Joseph Karwat [mailto:jkarwat@jellnet.com]
> *Sent:* Friday, 31 August 2012 4:58 AM****
>
>
> *To:* openmeetings-user@incubator.apache.org
> *Subject:* RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11****
>
>  ****
>
> George:****
>
>  ****
>
> Above is the article.  It might be easier to view it directly on Adobe’s
> web site.  Just google it.  A careful read of the article discusses the
> whole RTMP and RTMFP protocols and their use in video conferencing and
> Flash.****
>
>  ****
>
> I have a limited tech background, and would be interested in your thoughts.
> ****
>
>  ****
>
> Best,****
>
>  ****
>
> Joseph****
>
>  ****
>
> Joseph Karwat | CEO | 415-462-0263 | JellVideo <http://www.jellvideo.com/>|
> www.jellnet.com | [image: 3psquare93x77] ****
>
> *Jell Networks, Inc**. *****
>
> Enterprise Video Collaboration Solutions****
>
>  ****
>
> Click Here to Register for your JellVideo Collaboration Account<http://www.jellvideo.com/>
> ****
>
>  ****
>
>  ****
>
> *From:* George Kirkham [mailto:gkirkham@co2crc.com.au<gk...@co2crc.com.au>]
>
> *Sent:* Wednesday, August 29, 2012 12:59 PM
> *To:* openmeetings-user@incubator.apache.org
> *Subject:* RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11****
>
>  ****
>
> Joseph,****
>
>  ****
>
> Could you please post links and references to the documentation that leads
> you to believe “My understanding is that Adobe Flash AEC only works with
> the RTMFP protocol” ?****
>
>  ****
>
> Thanks,****
>
>  ****
>
> George Kirkham****
>
>  ****
>
>  ****
>
>  ****
>
> *From:* Joseph Karwat [mailto:jkarwat@jellnet.com <jk...@jellnet.com>]
> *Sent:* Thursday, 30 August 2012 5:14 AM
> *To:* openmeetings-user@incubator.apache.org
> *Subject:* RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11****
>
>  ****
>
> My understanding is that Adobe Flash AEC only works with the RTMFP
> protocol which is not currently supported by Red5.  ****
>
>  ****
>
> That’s why trying to get the audio stream working with SIP/Asterisk might
> be a good interim or permanent solution to improving the Audio quality and
> finally putting an end to all the AEC issues.****
>
>  ****
>
> Joseph Karwat | CEO | 415-462-0263 | JellVideo <http://www.jellvideo.com/>|
> www.jellnet.com | [image: 3psquare93x77] ****
>
> *Jell Networks, Inc**. *****
>
> Enterprise Video Collaboration Solutions****
>
>  ****
>
> Click Here to Register for your JellVideo Collaboration Account<http://www.jellvideo.com/>
> ****
>
>  ****
>
>  ****
>
> *From:* George Kirkham [mailto:gkirkham@co2crc.com.au<gk...@co2crc.com.au>]
>
> *Sent:* Tuesday, August 28, 2012 7:08 PM
> *To:* openmeetings-user@incubator.apache.org
> *Subject:* RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11****
>
>  ****
>
> Luke,****
>
>  ****
>
> I believe the only echo cancelling that OpenMeetings has is the Adobe
> flashplayer’s “reduce Echo” setting. Right click the OpenMeetings window
> and select “Settings…”.****
>
> ****
>
>  ****
>
> I have found that Audio conferencing can only be used if everyone
> attending the conference has echo cancelling hardware like the ClearOne
> Chat-60 speakerphone or headphones with microphone.****
>
>  ****
>
> This is why OpenMeetings has a “Exclusive audio” feature which allows the
> meeting participants to easily mute all microphones but one (i.e. the
> person currently speaking).****
>
>  ****
>
> Thanks,****
>
>  ****
>
> George Kirkham****
>
>  ****
>
>  ****
>
> -----Original Message-----
> From: Luke Ledgerd [mailto:luke@hiled.biz <lu...@hiled.biz>]
> Sent: Wednesday, 29 August 2012 12:02 PM
> To: openmeetings-user@incubator.apache.org
> Subject: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11****
>
>  ****
>
> I've tried the bleeding edge version (2.1) of Openmeetings.****
>
>  ****
>
> Is the acoustic echo cancellation//**//feature working? I had to mute// <
> http://www.adaptivedigital.com/product/echo_cancel/adt_aec.htm> half the
> people in the conference (located in the same meeting room abroad) in order
> to kill the audio feedback.****
>
>  ****
>
> Could the problem have been caused by an old flash version.****
>
>  ****
>
> Thought AEC was meant to deal with that, or are you still supporting the
> purchase of hardware based speakers / mics with AEC built in?****
>
>  ****
>
> Also are most users updated to adobe 11 by now? Does there need to be a
> warning to users so that you can use a better codec than uLaw (ver. 10)?**
> **
>
>  ****
>
> Finally is there a guide for tweaking the red5/openmeetings logging
> options for production use?****
>
>  ****
>
> cheers,****
>
>  ****
>
> Luke****
>
>  ****
>
>
>
>
> --
> Sebastian Wagner
> https://twitter.com/#!/dead_lock
> http://www.webbase-design.de
> http://www.wagner-sebastian.com
> seba.wagner@gmail.com****
>
>
>
>
> --
> Sebastian Wagner
> https://twitter.com/#!/dead_lock
> http://www.webbase-design.de
> http://www.wagner-sebastian.com
> seba.wagner@gmail.com****
>



-- 
Sebastian Wagner
https://twitter.com/#!/dead_lock
http://www.webbase-design.de
http://www.wagner-sebastian.com
seba.wagner@gmail.com

RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

Posted by George Kirkham <gk...@co2crc.com.au>.
Sebastian,

 

If I understand your comments correctly, and then to suggest the better
solution, "Would the better challenge would be for someone to rewrite
OpenMeetings to use Flex SDK 4.6, as it seems that OpenMeetings
currently only works with Flex SDK 4.5 where as the current version of
Adobe Flex is 4.6?"

 

I assume the difficulty is finding a person who has the skills and time
to make the necessary code changes for OpenMeetings to move from Flex
SDK 4.5 to 4.6 ?   What skills are required for this task?  An
understanding of Flex SDK would be one.

 

I know how limited my time is, and soon I will be away for two weeks as
well. One day I hope to have time to build a development environment for
OpenMeetings.  Thus I understand how difficult it is for others. By the
way, any chance someone has time to process any of the Jira change
requests that I have submitted?  376 & 377 would be a nice fixes to
have, 358, 359, 360 would be great for everyone, and 368 I would like to
see, and 378 would be a benefit to everyone.  I can but ask, or I can
learn how to make the changes myself (given time).

 

Adobe(r) Flex(r) Software Development Kit (SDK) includes the Flex
framework (component class library) and Flex compiler, enabling you to
freely develop and deploy Flex applications using an IDE of your choice

http://www.adobe.com/devnet/flex/flex-sdk-download.html 

 

 

Thanks,

 

George Kirkham

 

 

From: seba.wagner@gmail.com [mailto:seba.wagner@gmail.com] 
Sent: Wednesday, 5 September 2012 6:05 PM
To: openmeetings-user@incubator.apache.org
Subject: Re: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

the method "getEnhancedMicrophone()" is not available in Flex SDK < 4.6
OpenLaszlo 4.9 what we use internally uses Flex SDK 4.5
OpenLaszlo 5.0 uses Flex SDK 4.6 but does not compile all the code of
OpenMeetings.
It is technically possible to use both, OpenLaszlo 5 and 4.9 to compile
the source code to SWF11 and the rest of OpenMeetings to SWF8. However
it would blow up the compilation by 80 MB additional to download.

I could try to modify the build scripts to do that.

Sebastian



2012/9/5 George Kirkham <gk...@co2crc.com.au>

Sebastian, 

 

I had not realised that Flash Player 10's MicrophoneEnhancedMode was
limited to SWF11 ?

 

Any further degree of echo cancellation would be useful, even if not a
complete solution.

 

Thanks,

 

George Kirkham

 

 

From: seba.wagner@gmail.com [mailto:seba.wagner@gmail.com] 
Sent: Wednesday, 5 September 2012 5:12 PM
To: openmeetings-user@incubator.apache.org
Subject: Re: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

We are not using AEC since we do not compile to SWF11.
I would not expect world wonders from AEC, it will not make "Magically"
hardware work that did not work before.

Sebastian

2012/9/5 George Kirkham <gk...@co2crc.com.au>

Joseph,

 

I don't believe that the OpenMeetings code is activating Adobe's Flash
Player's Acoustic Echo Cancellation, though I do believe that
BigBlueButton is doing so, thus it should also be possible for
Openmeetings.

 

Maxim, or anyone else, can you confirm whether OpenMeetings is enabling
Adobe's Flash Player's Acoustic Echo Cancellation by calling
getEnhancedMicrophone, and enabling it with
MicrophoneEnhancedMode.FULL_DUPLEX ?  And is using the SPEEX codec?

 

I reached the above understanding from the following information;

 

RTMP (except RTMFP) is a TCP-based protocol which maintains persistent
connections and allows low-latency communication. To deliver streams
smoothly and transmit as much information as possible, it splits streams
into fragments and their size is negotiated dynamically between the
client and server while sometimes it is kept unchanged: the default
fragment sizes are 64-bytes for audio data, and 128 bytes for video data
and most other data types.

 

The Secure Real-Time Media Flow Protocol (RTMFP) is a proprietary
protocol suite developed by Adobe Systems for encrypted, efficient
multimedia delivery through both client-server and peer-to-peer models
over the Internet.

 

http://www.adobe.com/devnet/flashplayer/articles/acoustic-echo-cancellat
ion.html

 

Flash Player 10 also introduced the Speex codec. Speex is an
open-source, royalty-free codec that enjoys wide industry support. Flash
supports Speex encoding at 16 kHz.

 

... Acoustic echo occurs when the sound from the computer's speaker is
fed back to the microphone. ... Using headsets may be acceptable in
corporate environments, but it's clearly undesirable in the consumer
space, where users commonly use webcams or built-in laptop microphones.
To achieve widespread adaption, acoustic echo cancellation (AEC) is
absolutely required for voice-over-IP (VoIP) applications.  ... 

 

 

Enhanced audio API 

 

We have added a new API to the Flash platform for enabling enhanced
audio. This feature is available on all supported desktop platforms of
Flash Player and AIR. The new API is only available in ActionScript 3.
You must target Flash Player 10.3 or AIR 2.7 (or later) and SWF version
12 in your authoring environment, and you must update your
playerglobal.swc. The following classes are affected:

*Microphone: A new static method was added to this class to create
enhanced microphone and read/write properties for configuring enhanced
microphone options.

*MicrophoneEnhancedOptions: This new class lets you configure enhanced
microphone settings.

*MicrophoneEnhancedMode: This new class enumerates enhanced microphone
operation modes.

The constructor of MicrophoneEnhancedOptions will set the following
default properties:

 

var options:MicrophoneEnhancedOptions = new MicrophoneEnhancedOptions();

options.mode = MicrophoneEnhancedMode.FULL_DUPLEX;

options.echoPath = 128;

options.nonLinearProcessing = true;

 

To query the enhanced microphone options actually in use, please use the
following:

 

var microphone:Microphone = Microphone.getEnhancedMicrophone();

var options:MicrophoneEnhancedOptions = microphone.enhancedOptions;

 

When you only want to modify certain enhanced audio parameters, make
sure that you do not create a MicrophoneEnhancedOptions object using the
constructor because you may inadvertently override other parameters as
well.

 

Sending audio to another Flash endpoint or Flash Media Server can be
implemented with only a few lines of code:

var netConnection:NetConnection = new NetConnection();

netConnection.connect("rtmfp://example.com/rtc");

var netStream:NetStream = new NetStream(netConnection);

var microphone:Microphone = Microphone.getMicrophone();

netStream.attachAudio(microphone);

 

Using enhanced audio is equally simple: You can obtain an enhanced
microphone using the Microphone.getEnhancedMicrophone() static method:

var microphone:Microphone = Microphone.getEnhancedMicrophone();

netStream.attachAudio(microphone);

 

In addition to acoustic echo cancellation, enhanced audio also provides
noise suppression. Previously, Flash Player only provided noise
suppression for Speex audio. The new noise-suppression scheme is applied
to all captured audio samples. Noise suppression is controlled by the
already-existing noiseSuppressionLevel property of the Microphone class
and is enabled by default. Setting noiseSuppressionLevel to 0 will
disable noise suppression.

 

Enhanced audio has a couple of limitations:

*You cannot use enhanced and non-enhanced audio at the same time.

*You can only use a single enhanced audio capture at any given time.

 

Operation of enhanced audio is controlled by the enhancedOptions
property on your Microphone object and the MicrophoneEnhancedOptions
class. The class has the following properties:

*MicrophoneEnhancedOptions.mode selects the operation mode for enhanced
audio. For possible values, please see the MicrophoneEnhancedMode class.
The default value is MicrophoneEnhancedMode.HALF_DUPLEX for USB capture
devices and MicrophoneEnhancedMode.FULL_DUPLEX otherwise.

 

*MicrophoneEnhancedOptions.echoPath specifies the echo path length (in
milliseconds). A longer echo path means better echo cancellation but
also introduces longer delays and requires more processing power. The
default value is 128; the only other possible value is 256.

 

*MicrophoneEnhancedOptions.nonLinearProcessing specifies whether to use
non-linear processing to suppresses residual echo. A time-domain
technique is used; the default value is enabled.

 

 

https://github.com/bigbluebutton/bigbluebutton/blob/master/bigbluebutton
-client/src/org/bigbluebutton/modules/phone/managers/StreamManager.as

 

               private function setupMicrophone():void {

                       var vxml:XML =
BBB.getConfigForModule("PhoneModule");

                       var phoneOptions:PhoneOptions = new
PhoneOptions();

                       if (vxml != null) {

                               phoneOptions.enabledEchoCancel = (
vxml.@enabledEchoCancel.toString().toUpperCase() == "TRUE") ? true :
false;

                       }

 

                       if ((BBB.getFlashPlayerVersion() >= 10.3) &&
(phoneOptions.enabledEchoCancel)) {

                               LogUtil.debug("Using acoustic echo
cancellation.");

                               mic =
Microphone(Microphone["getEnhancedMicrophone"]());

                               var options:MicrophoneEnhancedOptions =
new MicrophoneEnhancedOptions();

                               options.mode =
MicrophoneEnhancedMode.FULL_DUPLEX;

                               options.autoGain = false;

                               options.echoPath = 128;

                               options.nonLinearProcessing = true;

                               mic['enhancedOptions'] = options;

                       } else {

 

                       }

 

                       mic.setUseEchoSuppression(true);

                       mic.setLoopBack(false);

                       mic.setSilenceLevel(0,20000);

                       if (audioCodec == "SPEEX") {

                               mic.encodeQuality = 6;

                               mic.codec = SoundCodec.SPEEX;

                               mic.framesPerPacket = 1;

                               mic.rate = 16; 

                               LogUtil.debug("Using SPEEX whideband
codec.");

                       } else {

                               mic.codec = SoundCodec.NELLYMOSER;

                               mic.rate = 8;

                               LogUtil.debug("Using Nellymoser codec.");

                       }                      

                       mic.gain = 60;                 

               }

 

 

http://stackoverflow.com/questions/8272155/removing-noise-wheh-mic-attac
hed-to-stream-on-red5

 

 

Thanks,

George Kirkham

 

 

From: Joseph Karwat [mailto:jkarwat@jellnet.com] 
Sent: Friday, 31 August 2012 4:58 AM


To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

George:

 

Above is the article.  It might be easier to view it directly on Adobe's
web site.  Just google it.  A careful read of the article discusses the
whole RTMP and RTMFP protocols and their use in video conferencing and
Flash.

 

I have a limited tech background, and would be interested in your
thoughts.

 

Best,

 

Joseph

 

Joseph Karwat | CEO | 415-462-0263 | JellVideo
<http://www.jellvideo.com/>  | www.jellnet.com <http://www.jellnet.com/>
|   

Jell Networks, Inc. 

Enterprise Video Collaboration Solutions

 

Click Here to Register for your JellVideo Collaboration Account
<http://www.jellvideo.com/> 

 

 

From: George Kirkham [mailto:gkirkham@co2crc.com.au] 
Sent: Wednesday, August 29, 2012 12:59 PM
To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

Joseph,

 

Could you please post links and references to the documentation that
leads you to believe "My understanding is that Adobe Flash AEC only
works with the RTMFP protocol" ?

 

Thanks,

 

George Kirkham

 

 

 

From: Joseph Karwat [mailto:jkarwat@jellnet.com] 
Sent: Thursday, 30 August 2012 5:14 AM
To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

My understanding is that Adobe Flash AEC only works with the RTMFP
protocol which is not currently supported by Red5.  

 

That's why trying to get the audio stream working with SIP/Asterisk
might be a good interim or permanent solution to improving the Audio
quality and finally putting an end to all the AEC issues.

 

Joseph Karwat | CEO | 415-462-0263 | JellVideo
<http://www.jellvideo.com/>  | www.jellnet.com <http://www.jellnet.com/>
|  

Jell Networks, Inc. 

Enterprise Video Collaboration Solutions

 

Click Here to Register for your JellVideo Collaboration Account
<http://www.jellvideo.com/> 

 

 

From: George Kirkham [mailto:gkirkham@co2crc.com.au] 
Sent: Tuesday, August 28, 2012 7:08 PM
To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

Luke,

 

I believe the only echo cancelling that OpenMeetings has is the Adobe
flashplayer's "reduce Echo" setting. Right click the OpenMeetings window
and select "Settings...".

 

 

I have found that Audio conferencing can only be used if everyone
attending the conference has echo cancelling hardware like the ClearOne
Chat-60 speakerphone or headphones with microphone.

 

This is why OpenMeetings has a "Exclusive audio" feature which allows
the meeting participants to easily mute all microphones but one (i.e.
the person currently speaking).

 

Thanks,

 

George Kirkham

 

 

-----Original Message-----
From: Luke Ledgerd [mailto:luke@hiled.biz] 
Sent: Wednesday, 29 August 2012 12:02 PM
To: openmeetings-user@incubator.apache.org
Subject: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

I've tried the bleeding edge version (2.1) of Openmeetings.

 

Is the acoustic echo cancellation//**//feature working? I had to mute//
<http://www.adaptivedigital.com/product/echo_cancel/adt_aec.htm
<http://www.adaptivedigital.com/product/echo_cancel/adt_aec.htm> > half
the people in the conference (located in the same meeting room abroad)
in order to kill the audio feedback.

 

Could the problem have been caused by an old flash version.

 

Thought AEC was meant to deal with that, or are you still supporting the
purchase of hardware based speakers / mics with AEC built in?

 

Also are most users updated to adobe 11 by now? Does there need to be a
warning to users so that you can use a better codec than uLaw (ver. 10)?

 

Finally is there a guide for tweaking the red5/openmeetings logging
options for production use?

 

cheers,

 

Luke

 




-- 
Sebastian Wagner
https://twitter.com/#!/dead_lock <https://twitter.com/#%21/dead_lock> 
http://www.webbase-design.de <http://www.webbase-design.de> 
http://www.wagner-sebastian.com <http://www.wagner-sebastian.com> 
seba.wagner@gmail.com <ma...@gmail.com> 




-- 
Sebastian Wagner
https://twitter.com/#!/dead_lock <https://twitter.com/#%21/dead_lock> 
http://www.webbase-design.de <http://www.webbase-design.de> 
http://www.wagner-sebastian.com <http://www.wagner-sebastian.com> 
seba.wagner@gmail.com <ma...@gmail.com> 


Re: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

Posted by "seba.wagner@gmail.com" <se...@gmail.com>.
the method "getEnhancedMicrophone()" is not available in Flex SDK < 4.6
OpenLaszlo 4.9 what we use internally uses Flex SDK 4.5
OpenLaszlo 5.0 uses Flex SDK 4.6 but does not compile all the code of
OpenMeetings.
It is technically possible to use both, OpenLaszlo 5 and 4.9 to compile the
source code to SWF11 and the rest of OpenMeetings to SWF8. However it would
blow up the compilation by 80 MB additional to download.

I could try to modify the build scripts to do that.

Sebastian


2012/9/5 George Kirkham <gk...@co2crc.com.au>

> Sebastian, ****
>
> ** **
>
> I had not realised that Flash Player 10’s MicrophoneEnhancedMode was
> limited to SWF11 ?****
>
> ** **
>
> Any further degree of echo cancellation would be useful, even if not a
> complete solution.****
>
> ** **
>
> Thanks,****
>
> ** **
>
> George Kirkham****
>
> ** **
>
> ** **
>
> *From:* seba.wagner@gmail.com [mailto:seba.wagner@gmail.com]
> *Sent:* Wednesday, 5 September 2012 5:12 PM
> *To:* openmeetings-user@incubator.apache.org
> *Subject:* Re: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11****
>
> ** **
>
> We are not using AEC since we do not compile to SWF11.
> I would not expect world wonders from AEC, it will not make "Magically"
> hardware work that did not work before.
>
> Sebastian****
>
> 2012/9/5 George Kirkham <gk...@co2crc.com.au>****
>
> Joseph,****
>
>  ****
>
> I don’t believe that the OpenMeetings code is activating Adobe’s Flash
> Player’s Acoustic Echo Cancellation, though I do believe that BigBlueButton
> is doing so, thus it should also be possible for Openmeetings.****
>
>  ****
>
> Maxim, or anyone else, can you confirm whether OpenMeetings is enabling
> Adobe’s Flash Player’s Acoustic Echo Cancellation by calling
> getEnhancedMicrophone, and enabling it with
> MicrophoneEnhancedMode.FULL_DUPLEX ?  And is using the SPEEX codec?****
>
>  ****
>
> I reached the above understanding from the following information;****
>
>  ****
>
> RTMP (except RTMFP) is a TCP-based protocol which maintains persistent
> connections and allows low-latency communication. To deliver streams
> smoothly and transmit as much information as possible, it splits streams
> into fragments and their size is negotiated dynamically between the client
> and server while sometimes it is kept unchanged: the default fragment sizes
> are 64-bytes for audio data, and 128 bytes for video data and most other
> data types.****
>
>  ****
>
> The Secure Real-Time Media Flow Protocol (RTMFP) is a proprietary protocol
> suite developed by Adobe Systems for encrypted, efficient multimedia
> delivery through both client-server and peer-to-peer models over the
> Internet.****
>
>  ****
>
>
> http://www.adobe.com/devnet/flashplayer/articles/acoustic-echo-cancellation.html
> ****
>
>  ****
>
> Flash Player 10 also introduced the Speex codec. Speex is an open-source,
> royalty-free codec that enjoys wide industry support. Flash supports Speex
> encoding at 16 kHz.****
>
>  ****
>
> ... Acoustic echo occurs when the sound from the computer's speaker is fed
> back to the microphone. ... Using headsets may be acceptable in corporate
> environments, but it's clearly undesirable in the consumer space, where
> users commonly use webcams or built-in laptop microphones. To achieve
> widespread adaption, acoustic echo cancellation (AEC) is absolutely
> required for voice-over-IP (VoIP) applications.  ... ****
>
>  ****
>
>  ****
>
> Enhanced audio API ****
>
>  ****
>
> We have added a new API to the Flash platform for enabling enhanced audio.
> This feature is available on all supported desktop platforms of Flash
> Player and AIR. The new API is only available in ActionScript 3. You must
> target Flash Player 10.3 or AIR 2.7 (or later) and SWF version 12 in your
> authoring environment, and you must update your playerglobal.swc. The
> following classes are affected:****
>
> •Microphone: A new static method was added to this class to create
> enhanced microphone and read/write properties for configuring enhanced
> microphone options.****
>
> •MicrophoneEnhancedOptions: This new class lets you configure enhanced
> microphone settings.****
>
> •MicrophoneEnhancedMode: This new class enumerates enhanced microphone
> operation modes.****
>
> The constructor of MicrophoneEnhancedOptions will set the following
> default properties:****
>
>  ****
>
> var options:MicrophoneEnhancedOptions = new MicrophoneEnhancedOptions();**
> **
>
> options.mode = MicrophoneEnhancedMode.FULL_DUPLEX;****
>
> options.echoPath = 128;****
>
> options.nonLinearProcessing = true;****
>
>  ****
>
> To query the enhanced microphone options actually in use, please use the
> following:****
>
>  ****
>
> var microphone:Microphone = Microphone.getEnhancedMicrophone();****
>
> var options:MicrophoneEnhancedOptions = microphone.enhancedOptions;****
>
>  ****
>
> When you only want to modify certain enhanced audio parameters, make sure
> that you do not create a MicrophoneEnhancedOptions object using the
> constructor because you may inadvertently override other parameters as well.
> ****
>
>  ****
>
> Sending audio to another Flash endpoint or Flash Media Server can be
> implemented with only a few lines of code:****
>
> var netConnection:NetConnection = new NetConnection();****
>
> netConnection.connect("rtmfp://example.com/rtc");****
>
> var netStream:NetStream = new NetStream(netConnection);****
>
> var microphone:Microphone = Microphone.getMicrophone();****
>
> netStream.attachAudio(microphone);****
>
>  ****
>
> Using enhanced audio is equally simple: You can obtain an enhanced
> microphone using the Microphone.getEnhancedMicrophone() static method:****
>
> var microphone:Microphone = Microphone.getEnhancedMicrophone();****
>
> netStream.attachAudio(microphone);****
>
>  ****
>
> In addition to acoustic echo cancellation, enhanced audio also provides
> noise suppression. Previously, Flash Player only provided noise suppression
> for Speex audio. The new noise-suppression scheme is applied to all
> captured audio samples. Noise suppression is controlled by the
> already-existing noiseSuppressionLevel property of the Microphone class and
> is enabled by default. Setting noiseSuppressionLevel to 0 will disable
> noise suppression.****
>
>  ****
>
> Enhanced audio has a couple of limitations:****
>
> •You cannot use enhanced and non-enhanced audio at the same time.****
>
> •You can only use a single enhanced audio capture at any given time.****
>
>  ****
>
> Operation of enhanced audio is controlled by the enhancedOptions property
> on your Microphone object and the MicrophoneEnhancedOptions class. The
> class has the following properties:****
>
> •MicrophoneEnhancedOptions.mode selects the operation mode for enhanced
> audio. For possible values, please see the MicrophoneEnhancedMode class.
> The default value is MicrophoneEnhancedMode.HALF_DUPLEX for USB capture
> devices and MicrophoneEnhancedMode.FULL_DUPLEX otherwise.****
>
>  ****
>
> •MicrophoneEnhancedOptions.echoPath specifies the echo path length (in
> milliseconds). A longer echo path means better echo cancellation but also
> introduces longer delays and requires more processing power. The default
> value is 128; the only other possible value is 256.****
>
>  ****
>
> •MicrophoneEnhancedOptions.nonLinearProcessing specifies whether to use
> non-linear processing to suppresses residual echo. A time-domain technique
> is used; the default value is enabled.****
>
>  ****
>
>  ****
>
>
> https://github.com/bigbluebutton/bigbluebutton/blob/master/bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/StreamManager.as
> ****
>
>  ****
>
>                private function setupMicrophone():void {****
>
>                        var vxml:XML =
> BBB.getConfigForModule("PhoneModule");****
>
>                        var phoneOptions:PhoneOptions = new PhoneOptions();
> ****
>
>                        if (vxml != null) {****
>
>                                phoneOptions.enabledEchoCancel = (
> vxml.@enabledEchoCancel.toString().toUpperCase() == "TRUE") ? true :
> false;****
>
>                        }****
>
>  ****
>
>                        if ((BBB.getFlashPlayerVersion() >= 10.3) &&
> (phoneOptions.enabledEchoCancel)) {****
>
>                                LogUtil.debug("Using acoustic echo
> cancellation.");****
>
>                                mic =
> Microphone(Microphone["getEnhancedMicrophone"]());****
>
>                                var options:MicrophoneEnhancedOptions = new
> MicrophoneEnhancedOptions();****
>
>                                options.mode =
> MicrophoneEnhancedMode.FULL_DUPLEX;****
>
>                                options.autoGain = false;****
>
>                                options.echoPath = 128;****
>
>                                options.nonLinearProcessing = true;****
>
>                                mic['enhancedOptions'] = options;****
>
>                        } else {****
>
>  ****
>
>                        }****
>
>  ****
>
>                        mic.setUseEchoSuppression(true);****
>
>                        mic.setLoopBack(false);****
>
>                        mic.setSilenceLevel(0,20000);****
>
>                        if (audioCodec == "SPEEX") {****
>
>                                mic.encodeQuality = 6;****
>
>                                mic.codec = SoundCodec.SPEEX;****
>
>                                mic.framesPerPacket = 1;****
>
>                                mic.rate = 16; ****
>
>                                LogUtil.debug("Using SPEEX whideband
> codec.");****
>
>                        } else {****
>
>                                mic.codec = SoundCodec.NELLYMOSER;****
>
>                                mic.rate = 8;****
>
>                                LogUtil.debug("Using Nellymoser codec.");**
> **
>
>                        }                      ****
>
>                        mic.gain = 60;                 ****
>
>                }****
>
>  ****
>
>  ****
>
>
> http://stackoverflow.com/questions/8272155/removing-noise-wheh-mic-attached-to-stream-on-red5
> ****
>
>  ****
>
>  ****
>
> Thanks,****
>
> George Kirkham****
>
>  ****
>
>  ****
>
> *From:* Joseph Karwat [mailto:jkarwat@jellnet.com]
> *Sent:* Friday, 31 August 2012 4:58 AM****
>
>
> *To:* openmeetings-user@incubator.apache.org
> *Subject:* RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11****
>
>  ****
>
> George:****
>
>  ****
>
> Above is the article.  It might be easier to view it directly on Adobe’s
> web site.  Just google it.  A careful read of the article discusses the
> whole RTMP and RTMFP protocols and their use in video conferencing and
> Flash.****
>
>  ****
>
> I have a limited tech background, and would be interested in your thoughts.
> ****
>
>  ****
>
> Best,****
>
>  ****
>
> Joseph****
>
>  ****
>
> Joseph Karwat | CEO | 415-462-0263 | JellVideo <http://www.jellvideo.com/>|
> www.jellnet.com | [image: 3psquare93x77] ****
>
> *Jell Networks, Inc**. *****
>
> Enterprise Video Collaboration Solutions****
>
>  ****
>
> Click Here to Register for your JellVideo Collaboration Account<http://www.jellvideo.com/>
> ****
>
>  ****
>
>  ****
>
> *From:* George Kirkham [mailto:gkirkham@co2crc.com.au<gk...@co2crc.com.au>]
>
> *Sent:* Wednesday, August 29, 2012 12:59 PM
> *To:* openmeetings-user@incubator.apache.org
> *Subject:* RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11****
>
>  ****
>
> Joseph,****
>
>  ****
>
> Could you please post links and references to the documentation that leads
> you to believe “My understanding is that Adobe Flash AEC only works with
> the RTMFP protocol” ?****
>
>  ****
>
> Thanks,****
>
>  ****
>
> George Kirkham****
>
>  ****
>
>  ****
>
>  ****
>
> *From:* Joseph Karwat [mailto:jkarwat@jellnet.com <jk...@jellnet.com>]
> *Sent:* Thursday, 30 August 2012 5:14 AM
> *To:* openmeetings-user@incubator.apache.org
> *Subject:* RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11****
>
>  ****
>
> My understanding is that Adobe Flash AEC only works with the RTMFP
> protocol which is not currently supported by Red5.  ****
>
>  ****
>
> That’s why trying to get the audio stream working with SIP/Asterisk might
> be a good interim or permanent solution to improving the Audio quality and
> finally putting an end to all the AEC issues.****
>
>  ****
>
> Joseph Karwat | CEO | 415-462-0263 | JellVideo <http://www.jellvideo.com/>|
> www.jellnet.com | [image: 3psquare93x77] ****
>
> *Jell Networks, Inc**. *****
>
> Enterprise Video Collaboration Solutions****
>
>  ****
>
> Click Here to Register for your JellVideo Collaboration Account<http://www.jellvideo.com/>
> ****
>
>  ****
>
>  ****
>
> *From:* George Kirkham [mailto:gkirkham@co2crc.com.au<gk...@co2crc.com.au>]
>
> *Sent:* Tuesday, August 28, 2012 7:08 PM
> *To:* openmeetings-user@incubator.apache.org
> *Subject:* RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11****
>
>  ****
>
> Luke,****
>
>  ****
>
> I believe the only echo cancelling that OpenMeetings has is the Adobe
> flashplayer’s “reduce Echo” setting. Right click the OpenMeetings window
> and select “Settings…”.****
>
> ****
>
>  ****
>
> I have found that Audio conferencing can only be used if everyone
> attending the conference has echo cancelling hardware like the ClearOne
> Chat-60 speakerphone or headphones with microphone.****
>
>  ****
>
> This is why OpenMeetings has a “Exclusive audio” feature which allows the
> meeting participants to easily mute all microphones but one (i.e. the
> person currently speaking).****
>
>  ****
>
> Thanks,****
>
>  ****
>
> George Kirkham****
>
>  ****
>
>  ****
>
> -----Original Message-----
> From: Luke Ledgerd [mailto:luke@hiled.biz <lu...@hiled.biz>]
> Sent: Wednesday, 29 August 2012 12:02 PM
> To: openmeetings-user@incubator.apache.org
> Subject: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11****
>
>  ****
>
> I've tried the bleeding edge version (2.1) of Openmeetings.****
>
>  ****
>
> Is the acoustic echo cancellation//**//feature working? I had to mute// <
> http://www.adaptivedigital.com/product/echo_cancel/adt_aec.htm> half the
> people in the conference (located in the same meeting room abroad) in order
> to kill the audio feedback.****
>
>  ****
>
> Could the problem have been caused by an old flash version.****
>
>  ****
>
> Thought AEC was meant to deal with that, or are you still supporting the
> purchase of hardware based speakers / mics with AEC built in?****
>
>  ****
>
> Also are most users updated to adobe 11 by now? Does there need to be a
> warning to users so that you can use a better codec than uLaw (ver. 10)?**
> **
>
>  ****
>
> Finally is there a guide for tweaking the red5/openmeetings logging
> options for production use?****
>
>  ****
>
> cheers,****
>
>  ****
>
> Luke****
>
>  ****
>
>
>
>
> --
> Sebastian Wagner
> https://twitter.com/#!/dead_lock
> http://www.webbase-design.de
> http://www.wagner-sebastian.com
> seba.wagner@gmail.com****
>



-- 
Sebastian Wagner
https://twitter.com/#!/dead_lock
http://www.webbase-design.de
http://www.wagner-sebastian.com
seba.wagner@gmail.com

RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

Posted by George Kirkham <gk...@co2crc.com.au>.
Sebastian, 

 

I had not realised that Flash Player 10's MicrophoneEnhancedMode was
limited to SWF11 ?

 

Any further degree of echo cancellation would be useful, even if not a
complete solution.

 

Thanks,

 

George Kirkham

 

 

From: seba.wagner@gmail.com [mailto:seba.wagner@gmail.com] 
Sent: Wednesday, 5 September 2012 5:12 PM
To: openmeetings-user@incubator.apache.org
Subject: Re: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

We are not using AEC since we do not compile to SWF11.
I would not expect world wonders from AEC, it will not make "Magically"
hardware work that did not work before.

Sebastian

2012/9/5 George Kirkham <gk...@co2crc.com.au>

Joseph,

 

I don't believe that the OpenMeetings code is activating Adobe's Flash
Player's Acoustic Echo Cancellation, though I do believe that
BigBlueButton is doing so, thus it should also be possible for
Openmeetings.

 

Maxim, or anyone else, can you confirm whether OpenMeetings is enabling
Adobe's Flash Player's Acoustic Echo Cancellation by calling
getEnhancedMicrophone, and enabling it with
MicrophoneEnhancedMode.FULL_DUPLEX ?  And is using the SPEEX codec?

 

I reached the above understanding from the following information;

 

RTMP (except RTMFP) is a TCP-based protocol which maintains persistent
connections and allows low-latency communication. To deliver streams
smoothly and transmit as much information as possible, it splits streams
into fragments and their size is negotiated dynamically between the
client and server while sometimes it is kept unchanged: the default
fragment sizes are 64-bytes for audio data, and 128 bytes for video data
and most other data types.

 

The Secure Real-Time Media Flow Protocol (RTMFP) is a proprietary
protocol suite developed by Adobe Systems for encrypted, efficient
multimedia delivery through both client-server and peer-to-peer models
over the Internet.

 

http://www.adobe.com/devnet/flashplayer/articles/acoustic-echo-cancellat
ion.html

 

Flash Player 10 also introduced the Speex codec. Speex is an
open-source, royalty-free codec that enjoys wide industry support. Flash
supports Speex encoding at 16 kHz.

 

... Acoustic echo occurs when the sound from the computer's speaker is
fed back to the microphone. ... Using headsets may be acceptable in
corporate environments, but it's clearly undesirable in the consumer
space, where users commonly use webcams or built-in laptop microphones.
To achieve widespread adaption, acoustic echo cancellation (AEC) is
absolutely required for voice-over-IP (VoIP) applications.  ... 

 

 

Enhanced audio API 

 

We have added a new API to the Flash platform for enabling enhanced
audio. This feature is available on all supported desktop platforms of
Flash Player and AIR. The new API is only available in ActionScript 3.
You must target Flash Player 10.3 or AIR 2.7 (or later) and SWF version
12 in your authoring environment, and you must update your
playerglobal.swc. The following classes are affected:

*Microphone: A new static method was added to this class to create
enhanced microphone and read/write properties for configuring enhanced
microphone options.

*MicrophoneEnhancedOptions: This new class lets you configure enhanced
microphone settings.

*MicrophoneEnhancedMode: This new class enumerates enhanced microphone
operation modes.

The constructor of MicrophoneEnhancedOptions will set the following
default properties:

 

var options:MicrophoneEnhancedOptions = new MicrophoneEnhancedOptions();

options.mode = MicrophoneEnhancedMode.FULL_DUPLEX;

options.echoPath = 128;

options.nonLinearProcessing = true;

 

To query the enhanced microphone options actually in use, please use the
following:

 

var microphone:Microphone = Microphone.getEnhancedMicrophone();

var options:MicrophoneEnhancedOptions = microphone.enhancedOptions;

 

When you only want to modify certain enhanced audio parameters, make
sure that you do not create a MicrophoneEnhancedOptions object using the
constructor because you may inadvertently override other parameters as
well.

 

Sending audio to another Flash endpoint or Flash Media Server can be
implemented with only a few lines of code:

var netConnection:NetConnection = new NetConnection();

netConnection.connect("rtmfp://example.com/rtc");

var netStream:NetStream = new NetStream(netConnection);

var microphone:Microphone = Microphone.getMicrophone();

netStream.attachAudio(microphone);

 

Using enhanced audio is equally simple: You can obtain an enhanced
microphone using the Microphone.getEnhancedMicrophone() static method:

var microphone:Microphone = Microphone.getEnhancedMicrophone();

netStream.attachAudio(microphone);

 

In addition to acoustic echo cancellation, enhanced audio also provides
noise suppression. Previously, Flash Player only provided noise
suppression for Speex audio. The new noise-suppression scheme is applied
to all captured audio samples. Noise suppression is controlled by the
already-existing noiseSuppressionLevel property of the Microphone class
and is enabled by default. Setting noiseSuppressionLevel to 0 will
disable noise suppression.

 

Enhanced audio has a couple of limitations:

*You cannot use enhanced and non-enhanced audio at the same time.

*You can only use a single enhanced audio capture at any given time.

 

Operation of enhanced audio is controlled by the enhancedOptions
property on your Microphone object and the MicrophoneEnhancedOptions
class. The class has the following properties:

*MicrophoneEnhancedOptions.mode selects the operation mode for enhanced
audio. For possible values, please see the MicrophoneEnhancedMode class.
The default value is MicrophoneEnhancedMode.HALF_DUPLEX for USB capture
devices and MicrophoneEnhancedMode.FULL_DUPLEX otherwise.

 

*MicrophoneEnhancedOptions.echoPath specifies the echo path length (in
milliseconds). A longer echo path means better echo cancellation but
also introduces longer delays and requires more processing power. The
default value is 128; the only other possible value is 256.

 

*MicrophoneEnhancedOptions.nonLinearProcessing specifies whether to use
non-linear processing to suppresses residual echo. A time-domain
technique is used; the default value is enabled.

 

 

https://github.com/bigbluebutton/bigbluebutton/blob/master/bigbluebutton
-client/src/org/bigbluebutton/modules/phone/managers/StreamManager.as

 

               private function setupMicrophone():void {

                       var vxml:XML =
BBB.getConfigForModule("PhoneModule");

                       var phoneOptions:PhoneOptions = new
PhoneOptions();

                       if (vxml != null) {

                               phoneOptions.enabledEchoCancel = (
vxml.@enabledEchoCancel.toString().toUpperCase() == "TRUE") ? true :
false;

                       }

 

                       if ((BBB.getFlashPlayerVersion() >= 10.3) &&
(phoneOptions.enabledEchoCancel)) {

                               LogUtil.debug("Using acoustic echo
cancellation.");

                               mic =
Microphone(Microphone["getEnhancedMicrophone"]());

                               var options:MicrophoneEnhancedOptions =
new MicrophoneEnhancedOptions();

                               options.mode =
MicrophoneEnhancedMode.FULL_DUPLEX;

                               options.autoGain = false;

                               options.echoPath = 128;

                               options.nonLinearProcessing = true;

                               mic['enhancedOptions'] = options;

                       } else {

 

                       }

 

                       mic.setUseEchoSuppression(true);

                       mic.setLoopBack(false);

                       mic.setSilenceLevel(0,20000);

                       if (audioCodec == "SPEEX") {

                               mic.encodeQuality = 6;

                               mic.codec = SoundCodec.SPEEX;

                               mic.framesPerPacket = 1;

                               mic.rate = 16; 

                               LogUtil.debug("Using SPEEX whideband
codec.");

                       } else {

                               mic.codec = SoundCodec.NELLYMOSER;

                               mic.rate = 8;

                               LogUtil.debug("Using Nellymoser codec.");

                       }                      

                       mic.gain = 60;                 

               }

 

 

http://stackoverflow.com/questions/8272155/removing-noise-wheh-mic-attac
hed-to-stream-on-red5

 

 

Thanks,

George Kirkham

 

 

From: Joseph Karwat [mailto:jkarwat@jellnet.com] 
Sent: Friday, 31 August 2012 4:58 AM


To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

George:

 

Above is the article.  It might be easier to view it directly on Adobe's
web site.  Just google it.  A careful read of the article discusses the
whole RTMP and RTMFP protocols and their use in video conferencing and
Flash.

 

I have a limited tech background, and would be interested in your
thoughts.

 

Best,

 

Joseph

 

Joseph Karwat | CEO | 415-462-0263 | JellVideo
<http://www.jellvideo.com/>  | www.jellnet.com <http://www.jellnet.com/>
|   

Jell Networks, Inc. 

Enterprise Video Collaboration Solutions

 

Click Here to Register for your JellVideo Collaboration Account
<http://www.jellvideo.com/> 

 

 

From: George Kirkham [mailto:gkirkham@co2crc.com.au] 
Sent: Wednesday, August 29, 2012 12:59 PM
To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

Joseph,

 

Could you please post links and references to the documentation that
leads you to believe "My understanding is that Adobe Flash AEC only
works with the RTMFP protocol" ?

 

Thanks,

 

George Kirkham

 

 

 

From: Joseph Karwat [mailto:jkarwat@jellnet.com] 
Sent: Thursday, 30 August 2012 5:14 AM
To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

My understanding is that Adobe Flash AEC only works with the RTMFP
protocol which is not currently supported by Red5.  

 

That's why trying to get the audio stream working with SIP/Asterisk
might be a good interim or permanent solution to improving the Audio
quality and finally putting an end to all the AEC issues.

 

Joseph Karwat | CEO | 415-462-0263 | JellVideo
<http://www.jellvideo.com/>  | www.jellnet.com <http://www.jellnet.com/>
|  

Jell Networks, Inc. 

Enterprise Video Collaboration Solutions

 

Click Here to Register for your JellVideo Collaboration Account
<http://www.jellvideo.com/> 

 

 

From: George Kirkham [mailto:gkirkham@co2crc.com.au] 
Sent: Tuesday, August 28, 2012 7:08 PM
To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

Luke,

 

I believe the only echo cancelling that OpenMeetings has is the Adobe
flashplayer's "reduce Echo" setting. Right click the OpenMeetings window
and select "Settings...".

 

 

I have found that Audio conferencing can only be used if everyone
attending the conference has echo cancelling hardware like the ClearOne
Chat-60 speakerphone or headphones with microphone.

 

This is why OpenMeetings has a "Exclusive audio" feature which allows
the meeting participants to easily mute all microphones but one (i.e.
the person currently speaking).

 

Thanks,

 

George Kirkham

 

 

-----Original Message-----
From: Luke Ledgerd [mailto:luke@hiled.biz] 
Sent: Wednesday, 29 August 2012 12:02 PM
To: openmeetings-user@incubator.apache.org
Subject: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

I've tried the bleeding edge version (2.1) of Openmeetings.

 

Is the acoustic echo cancellation//**//feature working? I had to mute//
<http://www.adaptivedigital.com/product/echo_cancel/adt_aec.htm
<http://www.adaptivedigital.com/product/echo_cancel/adt_aec.htm> > half
the people in the conference (located in the same meeting room abroad)
in order to kill the audio feedback.

 

Could the problem have been caused by an old flash version.

 

Thought AEC was meant to deal with that, or are you still supporting the
purchase of hardware based speakers / mics with AEC built in?

 

Also are most users updated to adobe 11 by now? Does there need to be a
warning to users so that you can use a better codec than uLaw (ver. 10)?

 

Finally is there a guide for tweaking the red5/openmeetings logging
options for production use?

 

cheers,

 

Luke

 




-- 
Sebastian Wagner
https://twitter.com/#!/dead_lock <https://twitter.com/#%21/dead_lock> 
http://www.webbase-design.de <http://www.webbase-design.de> 
http://www.wagner-sebastian.com <http://www.wagner-sebastian.com> 
seba.wagner@gmail.com <ma...@gmail.com> 


Re: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

Posted by "seba.wagner@gmail.com" <se...@gmail.com>.
We are not using AEC since we do not compile to SWF11.
I would not expect world wonders from AEC, it will not make "Magically"
hardware work that did not work before.

Sebastian

2012/9/5 George Kirkham <gk...@co2crc.com.au>

> Joseph,****
>
> ** **
>
> I don’t believe that the OpenMeetings code is activating Adobe’s Flash
> Player’s Acoustic Echo Cancellation, though I do believe that BigBlueButton
> is doing so, thus it should also be possible for Openmeetings.****
>
> ** **
>
> Maxim, or anyone else, can you confirm whether OpenMeetings is enabling
> Adobe’s Flash Player’s Acoustic Echo Cancellation by calling
> getEnhancedMicrophone, and enabling it with
> MicrophoneEnhancedMode.FULL_DUPLEX ?  And is using the SPEEX codec?****
>
> ** **
>
> I reached the above understanding from the following information;****
>
> ** **
>
> RTMP (except RTMFP) is a TCP-based protocol which maintains persistent
> connections and allows low-latency communication. To deliver streams
> smoothly and transmit as much information as possible, it splits streams
> into fragments and their size is negotiated dynamically between the client
> and server while sometimes it is kept unchanged: the default fragment sizes
> are 64-bytes for audio data, and 128 bytes for video data and most other
> data types.****
>
> ** **
>
> The Secure Real-Time Media Flow Protocol (RTMFP) is a proprietary protocol
> suite developed by Adobe Systems for encrypted, efficient multimedia
> delivery through both client-server and peer-to-peer models over the
> Internet.****
>
> ** **
>
>
> http://www.adobe.com/devnet/flashplayer/articles/acoustic-echo-cancellation.html
> ****
>
> ** **
>
> Flash Player 10 also introduced the Speex codec. Speex is an open-source,
> royalty-free codec that enjoys wide industry support. Flash supports Speex
> encoding at 16 kHz.****
>
> ** **
>
> ... Acoustic echo occurs when the sound from the computer's speaker is fed
> back to the microphone. ... Using headsets may be acceptable in corporate
> environments, but it's clearly undesirable in the consumer space, where
> users commonly use webcams or built-in laptop microphones. To achieve
> widespread adaption, acoustic echo cancellation (AEC) is absolutely
> required for voice-over-IP (VoIP) applications.  ... ****
>
> ** **
>
> ** **
>
> Enhanced audio API ****
>
> ** **
>
> We have added a new API to the Flash platform for enabling enhanced audio.
> This feature is available on all supported desktop platforms of Flash
> Player and AIR. The new API is only available in ActionScript 3. You must
> target Flash Player 10.3 or AIR 2.7 (or later) and SWF version 12 in your
> authoring environment, and you must update your playerglobal.swc. The
> following classes are affected:****
>
> •Microphone: A new static method was added to this class to create
> enhanced microphone and read/write properties for configuring enhanced
> microphone options.****
>
> •MicrophoneEnhancedOptions: This new class lets you configure enhanced
> microphone settings.****
>
> •MicrophoneEnhancedMode: This new class enumerates enhanced microphone
> operation modes.****
>
> ****
>
> The constructor of MicrophoneEnhancedOptions will set the following
> default properties:****
>
> ** **
>
> var options:MicrophoneEnhancedOptions = new MicrophoneEnhancedOptions();**
> **
>
> options.mode = MicrophoneEnhancedMode.FULL_DUPLEX;****
>
> options.echoPath = 128;****
>
> options.nonLinearProcessing = true;****
>
> ** **
>
> To query the enhanced microphone options actually in use, please use the
> following:****
>
> ** **
>
> var microphone:Microphone = Microphone.getEnhancedMicrophone();****
>
> var options:MicrophoneEnhancedOptions = microphone.enhancedOptions;****
>
> ** **
>
> When you only want to modify certain enhanced audio parameters, make sure
> that you do not create a MicrophoneEnhancedOptions object using the
> constructor because you may inadvertently override other parameters as well.
> ****
>
> ** **
>
> Sending audio to another Flash endpoint or Flash Media Server can be
> implemented with only a few lines of code:****
>
> ****
>
> var netConnection:NetConnection = new NetConnection();****
>
> netConnection.connect("rtmfp://example.com/rtc");****
>
> var netStream:NetStream = new NetStream(netConnection);****
>
> var microphone:Microphone = Microphone.getMicrophone();****
>
> netStream.attachAudio(microphone);****
>
> ****
>
> ** **
>
> Using enhanced audio is equally simple: You can obtain an enhanced
> microphone using the Microphone.getEnhancedMicrophone() static method:****
>
> ****
>
> var microphone:Microphone = Microphone.getEnhancedMicrophone();****
>
> netStream.attachAudio(microphone);****
>
> ****
>
> ** **
>
> In addition to acoustic echo cancellation, enhanced audio also provides
> noise suppression. Previously, Flash Player only provided noise suppression
> for Speex audio. The new noise-suppression scheme is applied to all
> captured audio samples. Noise suppression is controlled by the
> already-existing noiseSuppressionLevel property of the Microphone class and
> is enabled by default. Setting noiseSuppressionLevel to 0 will disable
> noise suppression.****
>
> ** **
>
> Enhanced audio has a couple of limitations:****
>
> •You cannot use enhanced and non-enhanced audio at the same time.****
>
> •You can only use a single enhanced audio capture at any given time.****
>
> ** **
>
> Operation of enhanced audio is controlled by the enhancedOptions property
> on your Microphone object and the MicrophoneEnhancedOptions class. The
> class has the following properties:****
>
> •MicrophoneEnhancedOptions.mode selects the operation mode for enhanced
> audio. For possible values, please see the MicrophoneEnhancedMode class.
> The default value is MicrophoneEnhancedMode.HALF_DUPLEX for USB capture
> devices and MicrophoneEnhancedMode.FULL_DUPLEX otherwise.****
>
> ** **
>
> •MicrophoneEnhancedOptions.echoPath specifies the echo path length (in
> milliseconds). A longer echo path means better echo cancellation but also
> introduces longer delays and requires more processing power. The default
> value is 128; the only other possible value is 256.****
>
> ** **
>
> •MicrophoneEnhancedOptions.nonLinearProcessing specifies whether to use
> non-linear processing to suppresses residual echo. A time-domain technique
> is used; the default value is enabled.****
>
> ** **
>
> ** **
>
>
> https://github.com/bigbluebutton/bigbluebutton/blob/master/bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/StreamManager.as
> ****
>
> ** **
>
>                private function setupMicrophone():void {****
>
>                        var vxml:XML =
> BBB.getConfigForModule("PhoneModule");****
>
>                        var phoneOptions:PhoneOptions = new PhoneOptions();
> ****
>
>                        if (vxml != null) {****
>
>                                phoneOptions.enabledEchoCancel =
> (vxml.@enabledEchoCancel.toString().toUpperCase() == "TRUE") ? true :
> false;****
>
>                        }****
>
> ** **
>
>                        if ((BBB.getFlashPlayerVersion() >= 10.3) &&
> (phoneOptions.enabledEchoCancel)) {****
>
>                                LogUtil.debug("Using acoustic echo
> cancellation.");****
>
>                                mic =
> Microphone(Microphone["getEnhancedMicrophone"]());****
>
>                                var options:MicrophoneEnhancedOptions = new
> MicrophoneEnhancedOptions();****
>
>                                options.mode =
> MicrophoneEnhancedMode.FULL_DUPLEX;****
>
>                                options.autoGain = false;****
>
>                                options.echoPath = 128;****
>
>                                options.nonLinearProcessing = true;****
>
>                                mic['enhancedOptions'] = options;****
>
>                        } else {****
>
> ** **
>
>                        }****
>
> ** **
>
>                        mic.setUseEchoSuppression(true);****
>
>                        mic.setLoopBack(false);****
>
>                        mic.setSilenceLevel(0,20000);****
>
>                        if (audioCodec == "SPEEX") {****
>
>                                mic.encodeQuality = 6;****
>
>                                mic.codec = SoundCodec.SPEEX;****
>
>                                mic.framesPerPacket = 1;****
>
>                                mic.rate = 16; ****
>
>                                LogUtil.debug("Using SPEEX whideband
> codec.");****
>
>                        } else {****
>
>                                mic.codec = SoundCodec.NELLYMOSER;****
>
>                                mic.rate = 8;****
>
>                                LogUtil.debug("Using Nellymoser codec.");**
> **
>
>                        }                      ****
>
>                        mic.gain = 60;                 ****
>
>                }****
>
> ** **
>
> ** **
>
>
> http://stackoverflow.com/questions/8272155/removing-noise-wheh-mic-attached-to-stream-on-red5
> ****
>
> ** **
>
> ** **
>
> Thanks,****
>
> George Kirkham****
>
> ** **
>
> ** **
>
> *From:* Joseph Karwat [mailto:jkarwat@jellnet.com]
> *Sent:* Friday, 31 August 2012 4:58 AM
>
> *To:* openmeetings-user@incubator.apache.org
> *Subject:* RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11****
>
> ** **
>
> George:****
>
> ** **
>
> Above is the article.  It might be easier to view it directly on Adobe’s
> web site.  Just google it.  A careful read of the article discusses the
> whole RTMP and RTMFP protocols and their use in video conferencing and
> Flash.****
>
> ** **
>
> I have a limited tech background, and would be interested in your thoughts.
> ****
>
> ** **
>
> Best,****
>
> ** **
>
> Joseph****
>
> ** **
>
> Joseph Karwat | CEO | 415-462-0263 | JellVideo <http://www.jellvideo.com/>|
> www.jellnet.com | [image: 3psquare93x77] ****
>
> *Jell Networks, Inc**. *
>
> Enterprise Video Collaboration Solutions****
>
> ** **
>
> Click Here to Register for your JellVideo Collaboration Account<http://www.jellvideo.com/>
> ****
>
> ** **
>
> ** **
>
> *From:* George Kirkham [mailto:gkirkham@co2crc.com.au<gk...@co2crc.com.au>]
>
> *Sent:* Wednesday, August 29, 2012 12:59 PM
> *To:* openmeetings-user@incubator.apache.org
> *Subject:* RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11****
>
> ** **
>
> Joseph,****
>
> ** **
>
> Could you please post links and references to the documentation that leads
> you to believe “My understanding is that Adobe Flash AEC only works with
> the RTMFP protocol” ?****
>
> ** **
>
> Thanks,****
>
> ** **
>
> George Kirkham****
>
> ** **
>
> ** **
>
> ** **
>
> *From:* Joseph Karwat [mailto:jkarwat@jellnet.com <jk...@jellnet.com>]
> *Sent:* Thursday, 30 August 2012 5:14 AM
> *To:* openmeetings-user@incubator.apache.org
> *Subject:* RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11****
>
> ** **
>
> My understanding is that Adobe Flash AEC only works with the RTMFP
> protocol which is not currently supported by Red5.  ****
>
> ** **
>
> That’s why trying to get the audio stream working with SIP/Asterisk might
> be a good interim or permanent solution to improving the Audio quality and
> finally putting an end to all the AEC issues.****
>
> ** **
>
> Joseph Karwat | CEO | 415-462-0263 | JellVideo <http://www.jellvideo.com/>|
> www.jellnet.com | [image: 3psquare93x77] ****
>
> *Jell Networks, Inc**. *
>
> Enterprise Video Collaboration Solutions****
>
> ** **
>
> Click Here to Register for your JellVideo Collaboration Account<http://www.jellvideo.com/>
> ****
>
> ** **
>
> ** **
>
> *From:* George Kirkham [mailto:gkirkham@co2crc.com.au<gk...@co2crc.com.au>]
>
> *Sent:* Tuesday, August 28, 2012 7:08 PM
> *To:* openmeetings-user@incubator.apache.org
> *Subject:* RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11****
>
> ** **
>
> Luke,****
>
> ** **
>
> I believe the only echo cancelling that OpenMeetings has is the Adobe
> flashplayer’s “reduce Echo” setting. Right click the OpenMeetings window
> and select “Settings…”.****
>
> ****
>
> ** **
>
> I have found that Audio conferencing can only be used if everyone
> attending the conference has echo cancelling hardware like the ClearOne
> Chat-60 speakerphone or headphones with microphone.****
>
> ** **
>
> This is why OpenMeetings has a “Exclusive audio” feature which allows the
> meeting participants to easily mute all microphones but one (i.e. the
> person currently speaking).****
>
> ** **
>
> Thanks,****
>
> ** **
>
> George Kirkham****
>
> ** **
>
> ** **
>
> -----Original Message-----
> From: Luke Ledgerd [mailto:luke@hiled.biz <lu...@hiled.biz>]
> Sent: Wednesday, 29 August 2012 12:02 PM
> To: openmeetings-user@incubator.apache.org
> Subject: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11****
>
> ** **
>
> I've tried the bleeding edge version (2.1) of Openmeetings.****
>
> ** **
>
> Is the acoustic echo cancellation//**//feature working? I had to mute// <
> http://www.adaptivedigital.com/product/echo_cancel/adt_aec.htm> half the
> people in the conference (located in the same meeting room abroad) in order
> to kill the audio feedback.****
>
> ** **
>
> Could the problem have been caused by an old flash version.****
>
> ** **
>
> Thought AEC was meant to deal with that, or are you still supporting the
> purchase of hardware based speakers / mics with AEC built in?****
>
> ** **
>
> Also are most users updated to adobe 11 by now? Does there need to be a
> warning to users so that you can use a better codec than uLaw (ver. 10)?**
> **
>
> ** **
>
> Finally is there a guide for tweaking the red5/openmeetings logging
> options for production use?****
>
> ** **
>
> cheers,****
>
> ** **
>
> Luke****
>
> ** **
>



-- 
Sebastian Wagner
https://twitter.com/#!/dead_lock
http://www.webbase-design.de
http://www.wagner-sebastian.com
seba.wagner@gmail.com

RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

Posted by George Kirkham <gk...@co2crc.com.au>.
Joseph,

 

I don't believe that the OpenMeetings code is activating Adobe's Flash
Player's Acoustic Echo Cancellation, though I do believe that
BigBlueButton is doing so, thus it should also be possible for
Openmeetings.

 

Maxim, or anyone else, can you confirm whether OpenMeetings is enabling
Adobe's Flash Player's Acoustic Echo Cancellation by calling
getEnhancedMicrophone, and enabling it with
MicrophoneEnhancedMode.FULL_DUPLEX ?  And is using the SPEEX codec?

 

I reached the above understanding from the following information;

 

RTMP (except RTMFP) is a TCP-based protocol which maintains persistent
connections and allows low-latency communication. To deliver streams
smoothly and transmit as much information as possible, it splits streams
into fragments and their size is negotiated dynamically between the
client and server while sometimes it is kept unchanged: the default
fragment sizes are 64-bytes for audio data, and 128 bytes for video data
and most other data types.

 

The Secure Real-Time Media Flow Protocol (RTMFP) is a proprietary
protocol suite developed by Adobe Systems for encrypted, efficient
multimedia delivery through both client-server and peer-to-peer models
over the Internet.

 

http://www.adobe.com/devnet/flashplayer/articles/acoustic-echo-cancellat
ion.html

 

Flash Player 10 also introduced the Speex codec. Speex is an
open-source, royalty-free codec that enjoys wide industry support. Flash
supports Speex encoding at 16 kHz.

 

... Acoustic echo occurs when the sound from the computer's speaker is
fed back to the microphone. ... Using headsets may be acceptable in
corporate environments, but it's clearly undesirable in the consumer
space, where users commonly use webcams or built-in laptop microphones.
To achieve widespread adaption, acoustic echo cancellation (AEC) is
absolutely required for voice-over-IP (VoIP) applications.  ... 

 

 

Enhanced audio API 

 

We have added a new API to the Flash platform for enabling enhanced
audio. This feature is available on all supported desktop platforms of
Flash Player and AIR. The new API is only available in ActionScript 3.
You must target Flash Player 10.3 or AIR 2.7 (or later) and SWF version
12 in your authoring environment, and you must update your
playerglobal.swc. The following classes are affected:

*Microphone: A new static method was added to this class to create
enhanced microphone and read/write properties for configuring enhanced
microphone options.

*MicrophoneEnhancedOptions: This new class lets you configure enhanced
microphone settings.

*MicrophoneEnhancedMode: This new class enumerates enhanced microphone
operation modes.

The constructor of MicrophoneEnhancedOptions will set the following
default properties:

 

var options:MicrophoneEnhancedOptions = new MicrophoneEnhancedOptions();

options.mode = MicrophoneEnhancedMode.FULL_DUPLEX;

options.echoPath = 128;

options.nonLinearProcessing = true;

 

To query the enhanced microphone options actually in use, please use the
following:

 

var microphone:Microphone = Microphone.getEnhancedMicrophone();

var options:MicrophoneEnhancedOptions = microphone.enhancedOptions;

 

When you only want to modify certain enhanced audio parameters, make
sure that you do not create a MicrophoneEnhancedOptions object using the
constructor because you may inadvertently override other parameters as
well.

 

Sending audio to another Flash endpoint or Flash Media Server can be
implemented with only a few lines of code:

var netConnection:NetConnection = new NetConnection();

netConnection.connect("rtmfp://example.com/rtc");

var netStream:NetStream = new NetStream(netConnection);

var microphone:Microphone = Microphone.getMicrophone();

netStream.attachAudio(microphone);

 

Using enhanced audio is equally simple: You can obtain an enhanced
microphone using the Microphone.getEnhancedMicrophone() static method:

var microphone:Microphone = Microphone.getEnhancedMicrophone();

netStream.attachAudio(microphone);

 

In addition to acoustic echo cancellation, enhanced audio also provides
noise suppression. Previously, Flash Player only provided noise
suppression for Speex audio. The new noise-suppression scheme is applied
to all captured audio samples. Noise suppression is controlled by the
already-existing noiseSuppressionLevel property of the Microphone class
and is enabled by default. Setting noiseSuppressionLevel to 0 will
disable noise suppression.

 

Enhanced audio has a couple of limitations:

*You cannot use enhanced and non-enhanced audio at the same time.

*You can only use a single enhanced audio capture at any given time.

 

Operation of enhanced audio is controlled by the enhancedOptions
property on your Microphone object and the MicrophoneEnhancedOptions
class. The class has the following properties:

*MicrophoneEnhancedOptions.mode selects the operation mode for enhanced
audio. For possible values, please see the MicrophoneEnhancedMode class.
The default value is MicrophoneEnhancedMode.HALF_DUPLEX for USB capture
devices and MicrophoneEnhancedMode.FULL_DUPLEX otherwise.

 

*MicrophoneEnhancedOptions.echoPath specifies the echo path length (in
milliseconds). A longer echo path means better echo cancellation but
also introduces longer delays and requires more processing power. The
default value is 128; the only other possible value is 256.

 

*MicrophoneEnhancedOptions.nonLinearProcessing specifies whether to use
non-linear processing to suppresses residual echo. A time-domain
technique is used; the default value is enabled.

 

 

https://github.com/bigbluebutton/bigbluebutton/blob/master/bigbluebutton
-client/src/org/bigbluebutton/modules/phone/managers/StreamManager.as

 

               private function setupMicrophone():void {

                       var vxml:XML =
BBB.getConfigForModule("PhoneModule");

                       var phoneOptions:PhoneOptions = new
PhoneOptions();

                       if (vxml != null) {

                               phoneOptions.enabledEchoCancel =
(vxml.@enabledEchoCancel.toString().toUpperCase() == "TRUE") ? true :
false;

                       }

 

                       if ((BBB.getFlashPlayerVersion() >= 10.3) &&
(phoneOptions.enabledEchoCancel)) {

                               LogUtil.debug("Using acoustic echo
cancellation.");

                               mic =
Microphone(Microphone["getEnhancedMicrophone"]());

                               var options:MicrophoneEnhancedOptions =
new MicrophoneEnhancedOptions();

                               options.mode =
MicrophoneEnhancedMode.FULL_DUPLEX;

                               options.autoGain = false;

                               options.echoPath = 128;

                               options.nonLinearProcessing = true;

                               mic['enhancedOptions'] = options;

                       } else {

 

                       }

 

                       mic.setUseEchoSuppression(true);

                       mic.setLoopBack(false);

                       mic.setSilenceLevel(0,20000);

                       if (audioCodec == "SPEEX") {

                               mic.encodeQuality = 6;

                               mic.codec = SoundCodec.SPEEX;

                               mic.framesPerPacket = 1;

                               mic.rate = 16; 

                               LogUtil.debug("Using SPEEX whideband
codec.");

                       } else {

                               mic.codec = SoundCodec.NELLYMOSER;

                               mic.rate = 8;

                               LogUtil.debug("Using Nellymoser codec.");

                       }                      

                       mic.gain = 60;                 

               }

 

 

http://stackoverflow.com/questions/8272155/removing-noise-wheh-mic-attac
hed-to-stream-on-red5

 

 

Thanks,

George Kirkham

 

 

From: Joseph Karwat [mailto:jkarwat@jellnet.com] 
Sent: Friday, 31 August 2012 4:58 AM
To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

George:

 

Above is the article.  It might be easier to view it directly on Adobe's
web site.  Just google it.  A careful read of the article discusses the
whole RTMP and RTMFP protocols and their use in video conferencing and
Flash.

 

I have a limited tech background, and would be interested in your
thoughts.

 

Best,

 

Joseph

 

Joseph Karwat | CEO | 415-462-0263 | JellVideo
<http://www.jellvideo.com/>  | www.jellnet.com <http://www.jellnet.com/>
|   

Jell Networks, Inc. 

Enterprise Video Collaboration Solutions

 

Click Here to Register for your JellVideo Collaboration Account
<http://www.jellvideo.com/> 

 

 

From: George Kirkham [mailto:gkirkham@co2crc.com.au] 
Sent: Wednesday, August 29, 2012 12:59 PM
To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

Joseph,

 

Could you please post links and references to the documentation that
leads you to believe "My understanding is that Adobe Flash AEC only
works with the RTMFP protocol" ?

 

Thanks,

 

George Kirkham

 

 

 

From: Joseph Karwat [mailto:jkarwat@jellnet.com] 
Sent: Thursday, 30 August 2012 5:14 AM
To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

My understanding is that Adobe Flash AEC only works with the RTMFP
protocol which is not currently supported by Red5.  

 

That's why trying to get the audio stream working with SIP/Asterisk
might be a good interim or permanent solution to improving the Audio
quality and finally putting an end to all the AEC issues.

 

Joseph Karwat | CEO | 415-462-0263 | JellVideo
<http://www.jellvideo.com/>  | www.jellnet.com <http://www.jellnet.com/>
|  

Jell Networks, Inc. 

Enterprise Video Collaboration Solutions

 

Click Here to Register for your JellVideo Collaboration Account
<http://www.jellvideo.com/> 

 

 

From: George Kirkham [mailto:gkirkham@co2crc.com.au] 
Sent: Tuesday, August 28, 2012 7:08 PM
To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

Luke,

 

I believe the only echo cancelling that OpenMeetings has is the Adobe
flashplayer's "reduce Echo" setting. Right click the OpenMeetings window
and select "Settings...".

 

 

I have found that Audio conferencing can only be used if everyone
attending the conference has echo cancelling hardware like the ClearOne
Chat-60 speakerphone or headphones with microphone.

 

This is why OpenMeetings has a "Exclusive audio" feature which allows
the meeting participants to easily mute all microphones but one (i.e.
the person currently speaking).

 

Thanks,

 

George Kirkham

 

 

-----Original Message-----
From: Luke Ledgerd [mailto:luke@hiled.biz] 
Sent: Wednesday, 29 August 2012 12:02 PM
To: openmeetings-user@incubator.apache.org
Subject: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

I've tried the bleeding edge version (2.1) of Openmeetings.

 

Is the acoustic echo cancellation//**//feature working? I had to mute//
<http://www.adaptivedigital.com/product/echo_cancel/adt_aec.htm
<http://www.adaptivedigital.com/product/echo_cancel/adt_aec.htm> > half
the people in the conference (located in the same meeting room abroad)
in order to kill the audio feedback.

 

Could the problem have been caused by an old flash version.

 

Thought AEC was meant to deal with that, or are you still supporting the
purchase of hardware based speakers / mics with AEC built in?

 

Also are most users updated to adobe 11 by now? Does there need to be a
warning to users so that you can use a better codec than uLaw (ver. 10)?

 

Finally is there a guide for tweaking the red5/openmeetings logging
options for production use?

 

cheers,

 

Luke

 


RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

Posted by Joseph Karwat <jk...@jellnet.com>.
George:

 

Above is the article.  It might be easier to view it directly on Adobe's web
site.  Just google it.  A careful read of the article discusses the whole
RTMP and RTMFP protocols and their use in video conferencing and Flash.

 

I have a limited tech background, and would be interested in your thoughts.

 

Best,

 

Joseph

 

Joseph Karwat | CEO | 415-462-0263 |  <http://www.jellvideo.com/> JellVideo
|  <http://www.jellnet.com/> www.jellnet.com | 3psquare93x77 

Jell Networks, Inc. 

Enterprise Video Collaboration Solutions

 

Click Here to Register for your JellVideo Collaboration Account
<http://www.jellvideo.com/> 

 

 

From: George Kirkham [mailto:gkirkham@co2crc.com.au] 
Sent: Wednesday, August 29, 2012 12:59 PM
To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

Joseph,

 

Could you please post links and references to the documentation that leads
you to believe "My understanding is that Adobe Flash AEC only works with the
RTMFP protocol" ?

 

Thanks,

 

George Kirkham

 

 

 

From: Joseph Karwat [mailto:jkarwat@jellnet.com] 
Sent: Thursday, 30 August 2012 5:14 AM
To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

My understanding is that Adobe Flash AEC only works with the RTMFP protocol
which is not currently supported by Red5.  

 

That's why trying to get the audio stream working with SIP/Asterisk might be
a good interim or permanent solution to improving the Audio quality and
finally putting an end to all the AEC issues.

 

Joseph Karwat | CEO | 415-462-0263 |  <http://www.jellvideo.com/> JellVideo
|  <http://www.jellnet.com/> www.jellnet.com | 3psquare93x77 

Jell Networks, Inc. 

Enterprise Video Collaboration Solutions

 

Click Here to Register for your JellVideo Collaboration Account
<http://www.jellvideo.com/> 

 

 

From: George Kirkham [mailto:gkirkham@co2crc.com.au] 
Sent: Tuesday, August 28, 2012 7:08 PM
To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

Luke,

 

I believe the only echo cancelling that OpenMeetings has is the Adobe
flashplayer's "reduce Echo" setting. Right click the OpenMeetings window and
select "Settings.".



 

I have found that Audio conferencing can only be used if everyone attending
the conference has echo cancelling hardware like the ClearOne Chat-60
speakerphone or headphones with microphone.

 

This is why OpenMeetings has a "Exclusive audio" feature which allows the
meeting participants to easily mute all microphones but one (i.e. the person
currently speaking).

 

Thanks,

 

George Kirkham

 

 

-----Original Message-----
From: Luke Ledgerd [mailto:luke@hiled.biz] 
Sent: Wednesday, 29 August 2012 12:02 PM
To: openmeetings-user@incubator.apache.org
Subject: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

I've tried the bleeding edge version (2.1) of Openmeetings.

 

Is the acoustic echo cancellation//**//feature working? I had to mute// <
<http://www.adaptivedigital.com/product/echo_cancel/adt_aec.htm>
http://www.adaptivedigital.com/product/echo_cancel/adt_aec.htm> half the
people in the conference (located in the same meeting room abroad) in order
to kill the audio feedback.

 

Could the problem have been caused by an old flash version.

 

Thought AEC was meant to deal with that, or are you still supporting the
purchase of hardware based speakers / mics with AEC built in?

 

Also are most users updated to adobe 11 by now? Does there need to be a
warning to users so that you can use a better codec than uLaw (ver. 10)?

 

Finally is there a guide for tweaking the red5/openmeetings logging options
for production use?

 

cheers,

 

Luke

 


RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

Posted by George Kirkham <gk...@co2crc.com.au>.
Joseph,

 

Could you please post links and references to the documentation that
leads you to believe "My understanding is that Adobe Flash AEC only
works with the RTMFP protocol" ?

 

Thanks,

 

George Kirkham

 

 

 

From: Joseph Karwat [mailto:jkarwat@jellnet.com] 
Sent: Thursday, 30 August 2012 5:14 AM
To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

My understanding is that Adobe Flash AEC only works with the RTMFP
protocol which is not currently supported by Red5.  

 

That's why trying to get the audio stream working with SIP/Asterisk
might be a good interim or permanent solution to improving the Audio
quality and finally putting an end to all the AEC issues.

 

Joseph Karwat | CEO | 415-462-0263 | JellVideo
<http://www.jellvideo.com/>  | www.jellnet.com <http://www.jellnet.com/>
|   

Jell Networks, Inc. 

Enterprise Video Collaboration Solutions

 

Click Here to Register for your JellVideo Collaboration Account
<http://www.jellvideo.com/> 

 

 

From: George Kirkham [mailto:gkirkham@co2crc.com.au] 
Sent: Tuesday, August 28, 2012 7:08 PM
To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

Luke,

 

I believe the only echo cancelling that OpenMeetings has is the Adobe
flashplayer's "reduce Echo" setting. Right click the OpenMeetings window
and select "Settings...".

 

 

I have found that Audio conferencing can only be used if everyone
attending the conference has echo cancelling hardware like the ClearOne
Chat-60 speakerphone or headphones with microphone.

 

This is why OpenMeetings has a "Exclusive audio" feature which allows
the meeting participants to easily mute all microphones but one (i.e.
the person currently speaking).

 

Thanks,

 

George Kirkham

 

 

-----Original Message-----
From: Luke Ledgerd [mailto:luke@hiled.biz] 
Sent: Wednesday, 29 August 2012 12:02 PM
To: openmeetings-user@incubator.apache.org
Subject: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

I've tried the bleeding edge version (2.1) of Openmeetings.

 

Is the acoustic echo cancellation//**//feature working? I had to mute//
<http://www.adaptivedigital.com/product/echo_cancel/adt_aec.htm
<http://www.adaptivedigital.com/product/echo_cancel/adt_aec.htm> > half
the people in the conference (located in the same meeting room abroad)
in order to kill the audio feedback.

 

Could the problem have been caused by an old flash version.

 

Thought AEC was meant to deal with that, or are you still supporting the
purchase of hardware based speakers / mics with AEC built in?

 

Also are most users updated to adobe 11 by now? Does there need to be a
warning to users so that you can use a better codec than uLaw (ver. 10)?

 

Finally is there a guide for tweaking the red5/openmeetings logging
options for production use?

 

cheers,

 

Luke

 


RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

Posted by Joseph Karwat <jk...@jellnet.com>.
My understanding is that Adobe Flash AEC only works with the RTMFP protocol
which is not currently supported by Red5.  

 

That's why trying to get the audio stream working with SIP/Asterisk might be
a good interim or permanent solution to improving the Audio quality and
finally putting an end to all the AEC issues.

 

Joseph Karwat | CEO | 415-462-0263 |  <http://www.jellvideo.com/> JellVideo
|  <http://www.jellnet.com/> www.jellnet.com | 3psquare93x77 

Jell Networks, Inc. 

Enterprise Video Collaboration Solutions

 

Click Here to Register for your JellVideo Collaboration Account
<http://www.jellvideo.com/> 

 

 

From: George Kirkham [mailto:gkirkham@co2crc.com.au] 
Sent: Tuesday, August 28, 2012 7:08 PM
To: openmeetings-user@incubator.apache.org
Subject: RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

Luke,

 

I believe the only echo cancelling that OpenMeetings has is the Adobe
flashplayer's "reduce Echo" setting. Right click the OpenMeetings window and
select "Settings.".



 

I have found that Audio conferencing can only be used if everyone attending
the conference has echo cancelling hardware like the ClearOne Chat-60
speakerphone or headphones with microphone.

 

This is why OpenMeetings has a "Exclusive audio" feature which allows the
meeting participants to easily mute all microphones but one (i.e. the person
currently speaking).

 

Thanks,

 

George Kirkham

 

 

-----Original Message-----
From: Luke Ledgerd [mailto:luke@hiled.biz] 
Sent: Wednesday, 29 August 2012 12:02 PM
To: openmeetings-user@incubator.apache.org
Subject: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

I've tried the bleeding edge version (2.1) of Openmeetings.

 

Is the acoustic echo cancellation//**//feature working? I had to mute// <
<http://www.adaptivedigital.com/product/echo_cancel/adt_aec.htm>
http://www.adaptivedigital.com/product/echo_cancel/adt_aec.htm> half the
people in the conference (located in the same meeting room abroad) in order
to kill the audio feedback.

 

Could the problem have been caused by an old flash version.

 

Thought AEC was meant to deal with that, or are you still supporting the
purchase of hardware based speakers / mics with AEC built in?

 

Also are most users updated to adobe 11 by now? Does there need to be a
warning to users so that you can use a better codec than uLaw (ver. 10)?

 

Finally is there a guide for tweaking the red5/openmeetings logging options
for production use?

 

cheers,

 

Luke

 


RE: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

Posted by George Kirkham <gk...@co2crc.com.au>.
Luke,

 

I believe the only echo cancelling that OpenMeetings has is the Adobe
flashplayer's "reduce Echo" setting. Right click the OpenMeetings window
and select "Settings...".

  

 

I have found that Audio conferencing can only be used if everyone
attending the conference has echo cancelling hardware like the ClearOne
Chat-60 speakerphone or headphones with microphone.

 

This is why OpenMeetings has a "Exclusive audio" feature which allows
the meeting participants to easily mute all microphones but one (i.e.
the person currently speaking).

 

Thanks,

 

George Kirkham

 

 

-----Original Message-----
From: Luke Ledgerd [mailto:luke@hiled.biz] 
Sent: Wednesday, 29 August 2012 12:02 PM
To: openmeetings-user@incubator.apache.org
Subject: Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

 

I've tried the bleeding edge version (2.1) of Openmeetings.

 

Is the acoustic echo cancellation//**//feature working? I had to mute//
<http://www.adaptivedigital.com/product/echo_cancel/adt_aec.htm
<http://www.adaptivedigital.com/product/echo_cancel/adt_aec.htm> > half
the people in the conference (located in the same meeting room abroad)
in order to kill the audio feedback.

 

Could the problem have been caused by an old flash version.

 

Thought AEC was meant to deal with that, or are you still supporting the
purchase of hardware based speakers / mics with AEC built in?

 

Also are most users updated to adobe 11 by now? Does there need to be a
warning to users so that you can use a better codec than uLaw (ver. 10)?

 

Finally is there a guide for tweaking the red5/openmeetings logging
options for production use?

 

cheers,

 

Luke

 


Acoustic Echo Cancellation (AEC) in Adobe Flash 10/11

Posted by Luke Ledgerd <lu...@hiled.biz>.
I've tried the bleeding edge version (2.1) of Openmeetings.

Is the acoustic echo cancellation//**//feature working? I had to mute//
<http://www.adaptivedigital.com/product/echo_cancel/adt_aec.htm> half
the people in the conference (located in the same meeting room abroad)
in order to kill the audio feedback.

Could the problem have been caused by an old flash version.

Thought AEC was meant to deal with that, or are you still supporting the
purchase of hardware based speakers / mics with AEC built in?

Also are most users updated to adobe 11 by now? Does there need to be a
warning to users so that you can use a better codec than uLaw (ver. 10)?

Finally is there a guide for tweaking the red5/openmeetings logging
options for production use?

cheers,

Luke