[Freeswitch-users] FS6947 - Tuning Opus bandwidth

Dragos Oancea dragos.oancea at athonet.com
Fri Oct 14 16:27:44 MSD 2016


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


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>> 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>> 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>> 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
>>>
>>>     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/>.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
>>>     <javascript:_e(%7B%7D,'cvml','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
>>>
>>>         Emrah
>>>         _________________________________________________________________________
>>>         Professional FreeSWITCH Consulting Services:
>>>         consulting at freeswitch.org
>>>         <javascript:_e(%7B%7D,'cvml','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
>>>         <javascript:_e(%7B%7D,'cvml','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 <http://www.freeswitch.org/>
>>>
>>>
>>> _________________________________________________________________________
>>> Professional FreeSWITCH Consulting Services:
>>> consulting at freeswitch.org <mailto:consulting at freeswitch.org>
>>> 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
>>
> 
> 
> 
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services: 
> consulting at freeswitch.org
> 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
> 



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