[Freeswitch-users] FS6947 - Tuning Opus bandwidth

Emrah lists at kavun.ch
Fri Oct 21 16:22:29 MSD 2016


Can someone clarify this please?
Can we now dynamically engage the Opus stack by setting channel variables?

Thanks!
> On Oct 14, 2016, at 10:18 PM, Emrah <lists at kavun.ch> wrote:
> 
> In my FS 1.7 I still see this:
> 2016-10-14 20:16:44.109370 [NOTICE] switch_loadable_module.c:213 Adding Codec opus 116 OPUS (STANDARD) 8000hz 40ms 2ch (VBR)
> 2016-10-14 20:16:44.109370 [NOTICE] switch_loadable_module.c:213 Adding Codec opus 116 OPUS (STANDARD) 8000hz 40ms 1ch (VBR)
> 2016-10-14 20:16:44.109370 [NOTICE] switch_loadable_module.c:213 Adding Codec opus 116 OPUS (STANDARD) 8000hz 120ms 1ch (VBR)
> 2016-10-14 20:16:44.109370 [NOTICE] switch_loadable_module.c:213 Adding Codec opus 116 OPUS (STANDARD) 8000hz 100ms 1ch (VBR)
> 2016-10-14 20:16:44.109370 [NOTICE] switch_loadable_module.c:213 Adding Codec opus 116 OPUS (STANDARD) 8000hz 80ms 1ch (VBR)
> 2016-10-14 20:16:44.109370 [NOTICE] switch_loadable_module.c:213 Adding Codec opus 116 OPUS (STANDARD) 8000hz 60ms 1ch (VBR)
> 2016-10-14 20:16:44.109370 [NOTICE] switch_loadable_module.c:213 Adding Codec opus 116 OPUS (STANDARD) 8000hz 20ms 2ch (VBR)
> 2016-10-14 20:16:44.109370 [NOTICE] switch_loadable_module.c:213 Adding Codec opus 116 OPUS (STANDARD) 8000hz 20ms 1ch (VBR)
> 2016-10-14 20:16:44.109370 [NOTICE] switch_loadable_module.c:213 Adding Codec opus 116 OPUS (STANDARD) 8000hz 10ms 2ch (VBR)
> 2016-10-14 20:16:44.109370 [NOTICE] switch_loadable_module.c:213 Adding Codec opus 116 OPUS (STANDARD) 8000hz 10ms 1ch (VBR)
> 2016-10-14 20:16:44.109370 [NOTICE] switch_loadable_module.c:213 Adding Codec opus 116 OPUS (STANDARD) 48000hz 40ms 2ch (VBR)
> 2016-10-14 20:16:44.109370 [NOTICE] switch_loadable_module.c:213 Adding Codec opus 116 OPUS (STANDARD) 48000hz 40ms 1ch (VBR)
> 2016-10-14 20:16:44.109370 [NOTICE] switch_loadable_module.c:213 Adding Codec opus 116 OPUS (STANDARD) 48000hz 20ms 2ch (VBR)
> 2016-10-14 20:16:44.109370 [NOTICE] switch_loadable_module.c:213 Adding Codec opus 116 OPUS (STANDARD) 48000hz 20ms 1ch (VBR)
> 2016-10-14 20:16:44.109370 [NOTICE] switch_loadable_module.c:213 Adding Codec opus 116 OPUS (STANDARD) 48000hz 10ms 2ch (VBR)
> 2016-10-14 20:16:44.109370 [NOTICE] switch_loadable_module.c:213 Adding Codec opus 116 OPUS (STANDARD) 48000hz 10ms 1ch (VBR)
> 
>> On Oct 14, 2016, at 10:16 PM, Emrah <lists at kavun.ch <mailto:lists at kavun.ch>> wrote:
>> 
>> Since when? I don't see it in FS 1.6.10.
>> 
>> Emrah
>>> On Oct 14, 2016, at 6:50 PM, Brian West <brian at freeswitch.org <mailto:brian at freeswitch.org>> wrote:
>>> 
>>> We do have 12khz and 24khz I added the specifically when we added SILK, we can resample to and from both rates. :)
>>> 
>>> On Fri, Oct 14, 2016 at 7:27 AM, Dragos Oancea <dragos.oancea at athonet.com <mailto:dragos.oancea at athonet.com>> wrote:
>>> Hi
>>> 
>>> Why would you say opus at 8000@20i does not sound very good ? What do you
>>> mean exactly ? Your call quality is bad or you mean you don't like the
>>> fact that the sampling rate is low ?
>>> 
>>> You can play with the sampling rates by setting maxplaybackrate and
>>> sprop_maxcapurerate and enabling asymmetric_samplerates (which is an
>>> experimental feature so far) in your opus.conf.xml  .
>>> 
>>> FS does not have 12 khz or 24 khz because they are not much used for
>>> Voip. As for opus @ 16 khz perhaps it will be added.
>>> 
>>> But if you use opus @ 48 khz and you just change maxaveragebitrate and
>>> maxplaybackrate accordingly you should get only WIDEBAND from the
>>> encoder anyway .
>>> The decoder should decode at any sample rate.
>>> We're working on a document (sort of manual) for the Opus module and
>>> hopefully it will be released soon.
>>> 
>>> As for the issue why codec settings cannot be set from FS's dialplan , I
>>> think its a missing feature that affects other audio codecs too and I
>>> think it would be very useful.
>>> 
>>> We needed opus at 8000hz for transcoding and I tried to explain some things
>>> here (see my comment at the bottom of the page ):
>>> https://freeswitch.org/confluence/display/FREESWITCH/mod_opus <https://freeswitch.org/confluence/display/FREESWITCH/mod_opus>
>>> 
>>> 
>>> Basically if you do heavy transcoding to PCMA / PCMU which is 8000 hz
>>> you'll want to avoid resampling 48 khz <-> 8 khz  - we did tests and by
>>> avoiding resampling we were saving 20-30 % CPU .
>>> 
>>> Regards,
>>> Dragos
>>> 
>>> 
>>> 
>>> On 14/10/2016 14:02, Emrah wrote:
>>> > Hi there,
>>> > Revisiting this issue. I see that I can set my Opus codec with
>>> > Opus at 8000@20i, but 8khz seems to be the only alternative profile I can
>>> > use. I see only 2 extreme options when the module is loaded or unloaded
>>> > that it's either 48khz, mono or stereo and packet size, or 8khz, mono or
>>> > stereo and packet size. Can someone clarify why there is nothing in
>>> > between? And what exactly this setting does? Opus at 8000h@20i definitely
>>> > doesn't sound very good. I'd rather have a compromise for tough network
>>> > conditions.
>>> > Since these are parameters I can dynamically set on my dialplan, the
>>> > question then becomes why can't I fully manipulate my Opus stack from
>>> > the dialplan?
>>> >
>>> > Thanks!
>>> >> On Jun 2, 2015, at 6:23 AM, Emrah <lists at kavun.ch <mailto:lists at kavun.ch>
>>> >> <mailto:lists at kavun.ch <mailto:lists at kavun.ch>>> wrote:
>>> >>
>>> >> Hi there,
>>> >> @Mike: yes, but in a commonsensical approach the Opus library on the
>>> >> client's side would resample and therefore optimize the codec and the
>>> >> bandwidth accordingly up to FS.
>>> >> @Julien, I saw the setting for Opus globally, but it defeats the
>>> >> purpose. I don't want to limit the bandwidth of Opus for all
>>> >> instances. I'd like to optimize Opus on a per call basis.
>>> >>
>>> >> Thanks for the replies
>>> >>> On May 31, 2015, at 2:13 PM, Michael Jerris <mike at jerris.com <mailto:mike at jerris.com>
>>> >>> <mailto:mike at jerris.com <mailto:mike at jerris.com>>> wrote:
>>> >>>
>>> >>> Side note, opening at the different rate I believe just makes the
>>> >>> opus library do the re sampling instead of FreeSWITCH.
>>> >>>
>>> >>> On Sunday, May 31, 2015, Julien Chavanton <jchavanton at gmail.com <mailto:jchavanton at gmail.com>
>>> >>> <mailto:jchavanton at gmail.com <mailto:jchavanton at gmail.com>>> wrote:
>>> >>>
>>> >>>     Hi Emrah,
>>> >>>
>>> >>>     The settings exist but they are not available from the dialplan,
>>> >>>     right now they can only be set globally .
>>> >>>     https://freeswitch.org/confluence/display/FREESWITCH/mod_opus <https://freeswitch.org/confluence/display/FREESWITCH/mod_opus>
>>> >>>
>>> >>>     You can control the bandwidth using maxplaybackrate and
>>> >>>     maxplaybackrate this will control the local encoder and also adds
>>> >>>     the corresponding FMTP parameters to the SDP to be used by the
>>> >>>     remote encoder (if it does implement the following draft, the
>>> >>>     draft is evolving but I think it as not changed)
>>> >>>
>>> >>>     https://tools <https://tools/>
>>> >>>     <https://tools/ <https://tools/>>.ietf.org/html/draft-ietf-payload-rtp-opus-11 <http://ietf.org/html/draft-ietf-payload-rtp-opus-11>
>>> >>>
>>> >>>     Maybe something like :
>>> >>>
>>> >>>     maxaveragebitrate 24000
>>> >>>     maxplaybackrate 8000
>>> >>>
>>> >>>     The discussion was getting slightly more complicated when we
>>> >>>     where discussing about unnecessary resampling this was not a
>>> >>>     problem but it was just adding extra load on the server.
>>> >>>
>>> >>>     On Sun, May 31, 2015 at 6:09 AM, Emrah <lists at kavun.ch <mailto:lists at kavun.ch>
>>> >>>     <javascript:_e(%7B%7D,'cvml','lists at kavun.ch <mailto:lists at kavun.ch>');>> wrote:
>>> >>>
>>> >>>         Hi list,
>>> >>>
>>> >>>         I re-read FS6947 and don't understand how this problematic
>>> >>>         was addressed and the issue fixed.
>>> >>>         The scope is simple. There should be a setting in the
>>> >>>         dialplan that allows downsampling of Opus for applications
>>> >>>         that do not require the 48khz / 2 channels framework. I.e.:
>>> >>>         terminating to the PSTN with Opus to take advantage of low
>>> >>>         bandwidth and great PLC.
>>> >>>         There seems to be a lot of confusion around bandwidth in
>>> >>>         general there. It doesn't matter if the internal clock of the
>>> >>>         device is always sampling at 48khz / 2ch. There are settings
>>> >>>         that can facilitate a lower bandwidth consumption for
>>> >>>         particular use cases, and it seems the reason it is not being
>>> >>>         implemented in FS is just a matter of being confused about
>>> >>>         the intent of the 48khz 2ch base.
>>> >>>         Please revisit this issue. FS should allow tuning of Opus
>>> >>>         audio / network bandwidth in the dialplan. It would optimize
>>> >>>         greatly lots of use cases.
>>> >>>         If I'm calling the PSTN, I'd rather have my client downsample
>>> >>>         and stream at a lower bandwidth, even if my audio capture
>>> >>>         would still be at 48khz / 2ch as per the RFC, and save on
>>> >>>         bandwidth, than transcode the full 48khz spectrum into PCM on
>>> >>>         my FS and minimize processing power on the client's side.
>>> >>>
>>> >>>         Jira here: https://freeswitch.org/jira/browse/FS-6947 <https://freeswitch.org/jira/browse/FS-6947>
>>> >>>
>>> >>>         Emrah
>>> >>>         _________________________________________________________________________
>>> >>>         Professional FreeSWITCH Consulting Services:
>>> >>>         consulting at freeswitch.org <mailto:consulting at freeswitch.org>
>>> >>>         <javascript:_e(%7B%7D,'cvml','consulting at freeswitch.org <mailto:consulting at freeswitch.org>');>
>>> >>>         http://www.freeswitchsolutions.com <http://www.freeswitchsolutions.com/>
>>> >>>         <http://www.freeswitchsolutions.com/ <http://www.freeswitchsolutions.com/>>
>>> >>>
>>> >>>         Official FreeSWITCH Sites
>>> >>>         http://www.freeswitch.org <http://www.freeswitch.org/> <http://www.freeswitch.org/ <http://www.freeswitch.org/>>
>>> >>>         http://confluence.freeswitch.org <http://confluence.freeswitch.org/>
>>> >>>         <http://confluence.freeswitch.org/ <http://confluence.freeswitch.org/>>
>>> >>>         http://www.cluecon.com <http://www.cluecon.com/> <http://www.cluecon.com/ <http://www.cluecon.com/>>
>>> >>>
>>> >>>         FreeSWITCH-users mailing list
>>> >>>         FreeSWITCH-users at lists.freeswitch.org <mailto:FreeSWITCH-users at lists.freeswitch.org>
>>> >>>         <javascript:_e(%7B%7D,'cvml','FreeSWITCH-users at lists.freeswitch.org <mailto:FreeSWITCH-users at lists.freeswitch.org>');>
>>> >>>         http://lists.freeswitch.org/mailman/listinfo/freeswitch-users <http://lists.freeswitch.org/mailman/listinfo/freeswitch-users>
>>> >>>         UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users <http://lists.freeswitch.org/mailman/options/freeswitch-users>
>>> >>>         http://www.freeswitch.org <http://www.freeswitch.org/> <http://www.freeswitch.org/ <http://www.freeswitch.org/>>
>>> >>>
>>> >>>
>>> >>> _________________________________________________________________________
>>> >>> Professional FreeSWITCH Consulting Services:
>>> >>> consulting at freeswitch.org <mailto:consulting at freeswitch.org> <mailto:consulting at freeswitch.org <mailto:consulting at freeswitch.org>>
>>> >>> http://www.freeswitchsolutions.com <http://www.freeswitchsolutions.com/>
>>> >>>
>>> >>> Official FreeSWITCH Sites
>>> >>> http://www.freeswitch.org <http://www.freeswitch.org/>
>>> >>> http://confluence.freeswitch.org <http://confluence.freeswitch.org/>
>>> >>> http://www.cluecon.com <http://www.cluecon.com/>
>>> >>>
>>> >>> FreeSWITCH-users mailing list
>>> >>> FreeSWITCH-users at lists.freeswitch.org <mailto:FreeSWITCH-users at lists.freeswitch.org>
>>> >>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users <http://lists.freeswitch.org/mailman/listinfo/freeswitch-users>
>>> >>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users <http://lists.freeswitch.org/mailman/options/freeswitch-users>
>>> >>> http://www.freeswitch.org <http://www.freeswitch.org/>
>>> >>
>>> >
>>> >
>>> >
>>> > _________________________________________________________________________
>>> > Professional FreeSWITCH Consulting Services:
>>> > consulting at freeswitch.org <mailto:consulting at freeswitch.org>
>>> > http://www.freeswitchsolutions.com <http://www.freeswitchsolutions.com/>
>>> >
>>> > Official FreeSWITCH Sites
>>> > http://www.freeswitch.org <http://www.freeswitch.org/>
>>> > http://confluence.freeswitch.org <http://confluence.freeswitch.org/>
>>> > http://www.cluecon.com <http://www.cluecon.com/>
>>> >
>>> > FreeSWITCH-users mailing list
>>> > FreeSWITCH-users at lists.freeswitch.org <mailto:FreeSWITCH-users at lists.freeswitch.org>
>>> > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users <http://lists.freeswitch.org/mailman/listinfo/freeswitch-users>
>>> > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users <http://lists.freeswitch.org/mailman/options/freeswitch-users>
>>> > http://www.freeswitch.org <http://www.freeswitch.org/>
>>> >
>>> 
>>> _________________________________________________________________________
>>> Professional FreeSWITCH Consulting Services:
>>> consulting at freeswitch.org <mailto:consulting at freeswitch.org>
>>> http://www.freeswitchsolutions.com <http://www.freeswitchsolutions.com/>
>>> 
>>> Official FreeSWITCH Sites
>>> http://www.freeswitch.org <http://www.freeswitch.org/>
>>> http://confluence.freeswitch.org <http://confluence.freeswitch.org/>
>>> http://www.cluecon.com <http://www.cluecon.com/>
>>> 
>>> FreeSWITCH-users mailing list
>>> FreeSWITCH-users at lists.freeswitch.org <mailto:FreeSWITCH-users at lists.freeswitch.org>
>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users <http://lists.freeswitch.org/mailman/listinfo/freeswitch-users>
>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users <http://lists.freeswitch.org/mailman/options/freeswitch-users>
>>> http://www.freeswitch.org <http://www.freeswitch.org/>
>>> 
>>> 
>>> 
>>> -- 
>>> Brian West
>>> brian at freeswitch.org <mailto:brian at freeswitch.org>
>>> 
>>> Twitter: @FreeSWITCH , @briankwest
>>> http://www.freeswitchbook.com <http://www.freeswitchbook.com/> (50% Discount using code FreeSwitch50)
>>> http://www.freeswitchcookbook.com <http://www.freeswitchcookbook.com/> (50% Discount using code FreeSwitch50)
>>> https://www.gofundme.com/freeswitch_ubuntu <https://www.gofundme.com/freeswitch_ubuntu>
>>> Got Bugs? Report them here <https://freeswitch.org/jira>! | Reddit: /r/freeswitch <https://www.reddit.com/r/freeswitch>
>>> T:+19184209001 | F:+19184209002 | M:+1918424WEST (9378)
>>> iNUM:+883 5100 1420 9001 | ISN:410*543 | Skype:briankwest
>>> 
>>> _________________________________________________________________________
>>> Professional FreeSWITCH Consulting Services: 
>>> consulting at freeswitch.org <mailto:consulting at freeswitch.org>
>>> http://www.freeswitchsolutions.com <http://www.freeswitchsolutions.com/>
>>> 
>>> Official FreeSWITCH Sites
>>> http://www.freeswitch.org
>>> http://confluence.freeswitch.org
>>> http://www.cluecon.com
>>> 
>>> FreeSWITCH-users mailing list
>>> FreeSWITCH-users at lists.freeswitch.org
>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>> http://www.freeswitch.org
>> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20161021/dbd2b50f/attachment-0001.html 


Join us at ClueCon 2016 Aug 8-12, 2016
More information about the FreeSWITCH-users mailing list