[Freeswitch-users] FS6947 - Tuning Opus bandwidth

Emrah lists at kavun.ch
Fri Oct 14 20:48:00 MSD 2016


Hey there,
Thanks for this extensive response. I am not sure I got everything, but I'll try to answer what I can.

> 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 ?
Opus at 8khz doesn't give you the same fidelity as PCM at 8khz. You definitely hear the compression. However, Opus at 48khz transcoded into PCMU / PCMA is hardly noticeable. Therefore, I wanted to find a decent compromise, one that would save bandwidth and CPU for calls that don't require a full band audio.

> 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  .
That sounds very interesting, however I do not want to impose global limitations as many of my Opus calls are full band calls. Would these settings help me work on a per call basis?

> 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.
I guess this reconnects with my observation above. The idea would be to use something slightly higher than 8khz, yet not as intensive as 48khz, just to get a clearer call for "PSTN like" connections.

> But if you use opus @ 48 khz and you just change maxaveragebitrate and
> maxplaybackrate accordingly you should get only WIDEBAND from the
> encoder anyway .
Not sure I got that right. Could you elaborate more? Can this work on a per call basis?

> 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.
Yes, absolutely. This would definitely help a lot. Not only on the FS side, but also on how to involve the Opus stack on the client side. 

As far as an Opus manual, I also love the idea and can't wait to read it.

Thanks again for this response,
Emrah
> On Oct 14, 2016, at 2:27 PM, Dragos Oancea <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>>> 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/>.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 <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
>>>> 
>>>> 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
>> 
> 
> _________________________________________________________________________
> 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/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20161014/7755fb9f/attachment-0001.html 


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