[Freeswitch-dev] Questions on implementing mod_nelly codec
Hi, We've been trying to implement a mod_nelly codec but so far has been unsuccessful. We use a Nellymoser compatible codec submitted to ffmpeg (see June 16, 2008 entry of http://ffmpeg.org/). Our plan is to use Flash using Nellymoser to connect to a conference in FreeSWITCH. The hurdle seems to be that Nellymoser decodes 64 byte nelly audio to 512 byte L16. Nellymoser is 11-Khz 8-bit per sample with 32 ptime. However, L16 implementations are all 20 ptime which have uncompressed bytes in multiples of 320. This doesn't align with what mod_nelly expects when encoding (convert 512 bytes to 64 bytes) and decoding (64 bytes to 512 bytes). Here is the SWITCH_MODULE_LOAD_FUNCTION(mod_nelly_load) [http://pastebin.freeswitch.org/15764] now. We've played around with the samples per second (SPS), actual samples per second (ASPS), bits per second (BPS), and the ptime (PTIME) but with no luck. It's either we get bad very choppy audio, incompatible destination (when codecs can't match), or no audio at all. We've managed to get the "You will now be placed into the conference" audio played correctly but the audio from the caller is bad. Just the paying of wav file from FS is correct. My question is how does transcoding works in FS? Am I correct to assume decoding as Nelly->L16 and encoding as L16->Nelly? So basically the media flow for our use case is Nelly -> L16 --> mod_conference -> L16 -> Nelly. Do I need to make the frames align? In this case, Nelly expect 256 samples per frame while L16 has 160, 320, ... samples per frame. Hope I've articulated clearly what we are trying to accomplish. Suggestions and ideas on what to try out next is much appreciated. Thanks in advance. Richard -- --- BigBlueButton http://www.bigbluebutton.org http://code.google.com/p/bigbluebutton
Are you planning to contribute this module? On Mon, Mar 21, 2011 at 1:58 PM, Richard Alam <ritzalam@gmail.com> wrote:
Hi,
We've been trying to implement a mod_nelly codec but so far has been unsuccessful. We use a Nellymoser compatible codec submitted to ffmpeg (see June 16, 2008 entry of http://ffmpeg.org/).
Our plan is to use Flash using Nellymoser to connect to a conference in FreeSWITCH.
The hurdle seems to be that Nellymoser decodes 64 byte nelly audio to 512 byte L16. Nellymoser is 11-Khz 8-bit per sample with 32 ptime. However, L16 implementations are all 20 ptime which have uncompressed bytes in multiples of 320. This doesn't align with what mod_nelly expects when encoding (convert 512 bytes to 64 bytes) and decoding (64 bytes to 512 bytes).
Here is the SWITCH_MODULE_LOAD_FUNCTION(mod_nelly_load) [http://pastebin.freeswitch.org/15764] now. We've played around with the samples per second (SPS), actual samples per second (ASPS), bits per second (BPS), and the ptime (PTIME) but with no luck. It's either we get bad very choppy audio, incompatible destination (when codecs can't match), or no audio at all. We've managed to get the "You will now be placed into the conference" audio played correctly but the audio from the caller is bad. Just the paying of wav file from FS is correct.
My question is how does transcoding works in FS? Am I correct to assume decoding as Nelly->L16 and encoding as L16->Nelly? So basically the media flow for our use case is Nelly -> L16 --> mod_conference -> L16 -> Nelly.
Do I need to make the frames align? In this case, Nelly expect 256 samples per frame while L16 has 160, 320, ... samples per frame.
Hope I've articulated clearly what we are trying to accomplish.
Suggestions and ideas on what to try out next is much appreciated.
Thanks in advance.
Richard
-- --- BigBlueButton http://www.bigbluebutton.org http://code.google.com/p/bigbluebutton
_______________________________________________ FreeSWITCH-dev mailing list FreeSWITCH-dev@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev http://www.freeswitch.org
-- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ Twitter: http://twitter.com/FreeSWITCH_wire AIM: anthm MSN:anthony_minessale@hotmail.com GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:888@conference.freeswitch.org googletalk:conf+888@conference.freeswitch.org pstn:+19193869900
Yes, we plan on contributing the module once it's working. On Tue, Mar 22, 2011 at 5:19 PM, Anthony Minessale <anthony.minessale@gmail.com> wrote:
Are you planning to contribute this module?
On Mon, Mar 21, 2011 at 1:58 PM, Richard Alam <ritzalam@gmail.com> wrote:
Hi,
We've been trying to implement a mod_nelly codec but so far has been unsuccessful. We use a Nellymoser compatible codec submitted to ffmpeg (see June 16, 2008 entry of http://ffmpeg.org/).
Our plan is to use Flash using Nellymoser to connect to a conference in FreeSWITCH.
The hurdle seems to be that Nellymoser decodes 64 byte nelly audio to 512 byte L16. Nellymoser is 11-Khz 8-bit per sample with 32 ptime. However, L16 implementations are all 20 ptime which have uncompressed bytes in multiples of 320. This doesn't align with what mod_nelly expects when encoding (convert 512 bytes to 64 bytes) and decoding (64 bytes to 512 bytes).
Here is the SWITCH_MODULE_LOAD_FUNCTION(mod_nelly_load) [http://pastebin.freeswitch.org/15764] now. We've played around with the samples per second (SPS), actual samples per second (ASPS), bits per second (BPS), and the ptime (PTIME) but with no luck. It's either we get bad very choppy audio, incompatible destination (when codecs can't match), or no audio at all. We've managed to get the "You will now be placed into the conference" audio played correctly but the audio from the caller is bad. Just the paying of wav file from FS is correct.
My question is how does transcoding works in FS? Am I correct to assume decoding as Nelly->L16 and encoding as L16->Nelly? So basically the media flow for our use case is Nelly -> L16 --> mod_conference -> L16 -> Nelly.
Do I need to make the frames align? In this case, Nelly expect 256 samples per frame while L16 has 160, 320, ... samples per frame.
Hope I've articulated clearly what we are trying to accomplish.
Suggestions and ideas on what to try out next is much appreciated.
Thanks in advance.
Richard
-- --- BigBlueButton http://www.bigbluebutton.org http://code.google.com/p/bigbluebutton
_______________________________________________ FreeSWITCH-dev mailing list FreeSWITCH-dev@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev http://www.freeswitch.org
-- Anthony Minessale II
FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ Twitter: http://twitter.com/FreeSWITCH_wire
AIM: anthm MSN:anthony_minessale@hotmail.com GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com IRC: irc.freenode.net #freeswitch
FreeSWITCH Developer Conference sip:888@conference.freeswitch.org googletalk:conf+888@conference.freeswitch.org pstn:+19193869900
_______________________________________________ FreeSWITCH-dev mailing list FreeSWITCH-dev@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev http://www.freeswitch.org
-- --- BigBlueButton http://www.bigbluebutton.org http://code.google.com/p/bigbluebutton
Almost forgot about this thread, there was no reply for some time. See latest GIT and just configure your codec with accurate numbers and it should be right. is 32 ptime a requirement? you will get more performance out of 40 but 32 should work as of this latest version. commit 82e3d49fd20ca91306a87d43bb88613938b2c6fd Author: Anthony Minessale <anthm@freeswitch.org> Date: Tue Apr 12 09:47:11 2011 -0500 add L16 def for 32ms and allow timer matrix to drop to 1ms to support nelly On Tue, Mar 22, 2011 at 4:46 PM, Richard Alam <ritzalam@gmail.com> wrote:
Yes, we plan on contributing the module once it's working.
On Tue, Mar 22, 2011 at 5:19 PM, Anthony Minessale <anthony.minessale@gmail.com> wrote:
Are you planning to contribute this module?
On Mon, Mar 21, 2011 at 1:58 PM, Richard Alam <ritzalam@gmail.com> wrote:
Hi,
We've been trying to implement a mod_nelly codec but so far has been unsuccessful. We use a Nellymoser compatible codec submitted to ffmpeg (see June 16, 2008 entry of http://ffmpeg.org/).
Our plan is to use Flash using Nellymoser to connect to a conference in FreeSWITCH.
The hurdle seems to be that Nellymoser decodes 64 byte nelly audio to 512 byte L16. Nellymoser is 11-Khz 8-bit per sample with 32 ptime. However, L16 implementations are all 20 ptime which have uncompressed bytes in multiples of 320. This doesn't align with what mod_nelly expects when encoding (convert 512 bytes to 64 bytes) and decoding (64 bytes to 512 bytes).
Here is the SWITCH_MODULE_LOAD_FUNCTION(mod_nelly_load) [http://pastebin.freeswitch.org/15764] now. We've played around with the samples per second (SPS), actual samples per second (ASPS), bits per second (BPS), and the ptime (PTIME) but with no luck. It's either we get bad very choppy audio, incompatible destination (when codecs can't match), or no audio at all. We've managed to get the "You will now be placed into the conference" audio played correctly but the audio from the caller is bad. Just the paying of wav file from FS is correct.
My question is how does transcoding works in FS? Am I correct to assume decoding as Nelly->L16 and encoding as L16->Nelly? So basically the media flow for our use case is Nelly -> L16 --> mod_conference -> L16 -> Nelly.
Do I need to make the frames align? In this case, Nelly expect 256 samples per frame while L16 has 160, 320, ... samples per frame.
Hope I've articulated clearly what we are trying to accomplish.
Suggestions and ideas on what to try out next is much appreciated.
Thanks in advance.
Richard
-- --- BigBlueButton http://www.bigbluebutton.org http://code.google.com/p/bigbluebutton
_______________________________________________ FreeSWITCH-dev mailing list FreeSWITCH-dev@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev http://www.freeswitch.org
-- Anthony Minessale II
FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ Twitter: http://twitter.com/FreeSWITCH_wire
AIM: anthm MSN:anthony_minessale@hotmail.com GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com IRC: irc.freenode.net #freeswitch
FreeSWITCH Developer Conference sip:888@conference.freeswitch.org googletalk:conf+888@conference.freeswitch.org pstn:+19193869900
_______________________________________________ FreeSWITCH-dev mailing list FreeSWITCH-dev@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev http://www.freeswitch.org
-- --- BigBlueButton http://www.bigbluebutton.org http://code.google.com/p/bigbluebutton
_______________________________________________ FreeSWITCH-dev mailing list FreeSWITCH-dev@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev http://www.freeswitch.org
-- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ Twitter: http://twitter.com/FreeSWITCH_wire AIM: anthm MSN:anthony_minessale@hotmail.com GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:888@conference.freeswitch.org googletalk:conf+888@conference.freeswitch.org pstn:+19193869900
Hi, The Nelly Moser codec seems to be patent encumbered, so accepting a module for need to be considered with caution. It doesn't seem to be that useful, now. It used to have value, because it was needed for flash. Flash now supports speex, which is a better option. Steve On 04/12/2011 11:10 PM, Anthony Minessale wrote:
Almost forgot about this thread, there was no reply for some time.
See latest GIT and just configure your codec with accurate numbers and it should be right. is 32 ptime a requirement? you will get more performance out of 40 but 32 should work as of this latest version.
commit 82e3d49fd20ca91306a87d43bb88613938b2c6fd Author: Anthony Minessale<anthm@freeswitch.org> Date: Tue Apr 12 09:47:11 2011 -0500
add L16 def for 32ms and allow timer matrix to drop to 1ms to support nelly
On Tue, Mar 22, 2011 at 4:46 PM, Richard Alam<ritzalam@gmail.com> wrote:
Yes, we plan on contributing the module once it's working.
On Tue, Mar 22, 2011 at 5:19 PM, Anthony Minessale <anthony.minessale@gmail.com> wrote:
Are you planning to contribute this module?
On Mon, Mar 21, 2011 at 1:58 PM, Richard Alam<ritzalam@gmail.com> wrote:
Hi,
We've been trying to implement a mod_nelly codec but so far has been unsuccessful. We use a Nellymoser compatible codec submitted to ffmpeg (see June 16, 2008 entry of http://ffmpeg.org/).
Our plan is to use Flash using Nellymoser to connect to a conference in FreeSWITCH.
The hurdle seems to be that Nellymoser decodes 64 byte nelly audio to 512 byte L16. Nellymoser is 11-Khz 8-bit per sample with 32 ptime. However, L16 implementations are all 20 ptime which have uncompressed bytes in multiples of 320. This doesn't align with what mod_nelly expects when encoding (convert 512 bytes to 64 bytes) and decoding (64 bytes to 512 bytes).
Here is the SWITCH_MODULE_LOAD_FUNCTION(mod_nelly_load) [http://pastebin.freeswitch.org/15764] now. We've played around with the samples per second (SPS), actual samples per second (ASPS), bits per second (BPS), and the ptime (PTIME) but with no luck. It's either we get bad very choppy audio, incompatible destination (when codecs can't match), or no audio at all. We've managed to get the "You will now be placed into the conference" audio played correctly but the audio from the caller is bad. Just the paying of wav file from FS is correct.
My question is how does transcoding works in FS? Am I correct to assume decoding as Nelly->L16 and encoding as L16->Nelly? So basically the media flow for our use case is Nelly -> L16 --> mod_conference -> L16 -> Nelly.
Do I need to make the frames align? In this case, Nelly expect 256 samples per frame while L16 has 160, 320, ... samples per frame.
Hope I've articulated clearly what we are trying to accomplish.
Suggestions and ideas on what to try out next is much appreciated.
Thanks in advance.
Richard
participants (3)
-
Anthony Minessale
-
Richard Alam
-
Steve Underwood