[Freeswitch-users] FS6947 - Tuning Opus bandwidth

Joaquin Alzola Joaquin.Alzola at lebara.com
Wed Oct 26 13:12:21 MSD 2016


Hi Guys

I install FS on a CentOS7 but seems the OPUS libraries that came with the Centos repository doesn’t allow the OPUS to be compiled (I compiled from source).

What libraries should be install?

BR

Jaoquin

From: freeswitch-users-bounces at lists.freeswitch.org [mailto:freeswitch-users-bounces at lists.freeswitch.org] On Behalf Of Giacomo Vacca
Sent: 26 October 2016 10:02
To: FreeSWITCH Users Help <freeswitch-users at lists.freeswitch.org>
Subject: Re: [Freeswitch-users] FS6947 - Tuning Opus bandwidth

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

This is the document trying to address the need for an "Opus manual":
https://freeswitch.org/confluence/display/FREESWITCH/FreeSWITCH+And+The+Opus+Audio+Codec

As mentioned there, questions and other feedback are welcome.

It can be easily exported from Confluence as PDF, should it be desired.

Giacomo



On 14 October 2016 at 18:48, Emrah <lists at kavun.ch<mailto:lists at kavun.ch>> wrote:
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<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


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>> 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>> 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/>
   <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

       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/>

       Official FreeSWITCH Sites
       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://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
       UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
       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>
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<mailto: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

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<mailto: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
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<mailto: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

This email is confidential and may be subject to privilege. If you are not the intended recipient, please do not copy or disclose its content but contact the sender immediately upon receipt.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20161026/dcb7b40b/attachment-0001.html 


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