<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px"><div dir="ltr">Hi Kelvin,</div><div dir="ltr"><br></div><div dir="ltr" id="yui_3_16_0_1_1425459539874_25293"><br></div><div dir="ltr" id="yui_3_16_0_1_1425459539874_25292">The audio bandpass setting is only configurable when the encoder is instantiated (eg: start of a Voip call ) , but you can change the bitrate anytime.</div><div dir="ltr" id="yui_3_16_0_1_1425459539874_25291">For example if you can read incoming RTCP packets , you can check if there's reported packet loss , and then lower the bitrate accordingly.</div><div dir="ltr" id="yui_3_16_0_1_1425459539874_25264">Yes, the app has to be aware of the packetloss percentage.</div><div id="yui_3_16_0_1_1425459539874_25290"><br></div><div dir="ltr" id="yui_3_16_0_1_1425459539874_25295">Cheers,</div><div dir="ltr" id="yui_3_16_0_1_1425459539874_25296">Dragos</div><div id="yui_3_16_0_1_1425459539874_25188"><br></div> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" id="yui_3_16_0_1_1425459539874_25056"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" id="yui_3_16_0_1_1425459539874_25055"> <div dir="ltr" id="yui_3_16_0_1_1425459539874_25054"> <hr size="1"> <font size="2" face="Arial" id="yui_3_16_0_1_1425459539874_25053"> <b><span style="font-weight:bold;">From:</span></b> Kelvin Chua <kelchy@gmail.com><br> <b><span style="font-weight: bold;">To:</span></b> Dragos Oancea <droancea@yahoo.com> <br><b><span style="font-weight: bold;">Cc:</span></b> Benjamin Schwartz <benjamin.m.schwartz@gmail.com>; "opus@xiph.org" <opus@xiph.org> <br> <b><span style="font-weight: bold;">Sent:</span></b> Wednesday, March 4, 2015 11:02 AM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [opus] adaptive bandwidth<br> </font> </div> <div class="y_msg_container" id="yui_3_16_0_1_1425459539874_25057"><br><div id="yiv5797170385"><div id="yui_3_16_0_1_1425459539874_25059"><div dir="ltr" id="yui_3_16_0_1_1425459539874_25058">Thanks Dragos,<div id="yui_3_16_0_1_1425459539874_25060"><br clear="none"></div><div id="yui_3_16_0_1_1425459539874_25347">I assume I will be setting those parameters during initialization of encoder right?</div><div id="yui_3_16_0_1_1425459539874_25348">Question is, if connection gets too lossy, how will opus adapt to it? Can it automatically shift bitrate down to minimize impact?</div><div id="yui_3_16_0_1_1425459539874_25349">Mark from IRC suggests that the app has to be aware of the losses and change it on the fly.</div><div id="yui_3_16_0_1_1425459539874_25350">Has anybody on the list tried this?</div><div id="yui_3_16_0_1_1425459539874_25351"><br clear="none"></div></div><div class="yiv5797170385gmail_extra" id="yui_3_16_0_1_1425459539874_25352"><br clear="all"><div id="yui_3_16_0_1_1425459539874_25354"><div class="yiv5797170385gmail_signature" id="yui_3_16_0_1_1425459539874_25353">Kelvin Chua</div></div>
<br clear="none"><div class="qtdSeparateBR"><br><br></div><div class="yiv5797170385yqt8866817606" id="yiv5797170385yqt77453"><div class="yiv5797170385gmail_quote" id="yui_3_16_0_1_1425459539874_25375">On Wed, Mar 4, 2015 at 5:53 PM, Dragos Oancea <span dir="ltr"><<a rel="nofollow" shape="rect" ymailto="mailto:droancea@yahoo.com" target="_blank" href="mailto:droancea@yahoo.com">droancea@yahoo.com</a>></span> wrote:<br clear="none"><blockquote class="yiv5797170385gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;" id="yui_3_16_0_1_1425459539874_25379"><div id="yui_3_16_0_1_1425459539874_25378"><div style="color:#000;background-color:#fff;font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;" id="yui_3_16_0_1_1425459539874_25377"><div dir="ltr" id="yui_3_16_0_1_1425459539874_25376"><span>Hi Kelvin,</span></div><div dir="ltr" id="yui_3_16_0_1_1425459539874_25380"><span><br clear="none"></span></div><div dir="ltr" id="yui_3_16_0_1_1425459539874_25382"><span id="yui_3_16_0_1_1425459539874_25381">You can use something like :</span></div><div dir="ltr" id="yui_3_16_0_1_1425459539874_25384"><span id="yui_3_16_0_1_1425459539874_25383">opus_encoder_ctl(enc,OPUS_SET_BITRATE(bitrate));</span></div><div id="yui_3_16_0_1_1425459539874_25385">opus_encoder_ctl(enc,OPUS_SET_MAX_BANDWIDTH(bandpass));<br clear="none"></div><div dir="ltr" id="yui_3_16_0_1_1425459539874_25391">bandpass is the audio bandpass , eg: OPUS_BANDWIDTH_WIDEBAND .</div><div dir="ltr"><br clear="none"></div><div dir="ltr">You will need to calculate the codec bitrate from the available network bitrate (by taking into account the size of the IP+UDP+RTP headers which is 40 bytes ) .<br clear="none"></div><div dir="ltr">By default the audio bandwidth (bandpass) setting is OPUS_BANDWIDTH_FULLBAND , which will utilize more network bandwidth .</div><div dir="ltr"><br clear="none"></div><div><br clear="none"></div><div dir="ltr">Regards,</div><div dir="ltr">Dragos</div><div><br clear="none"></div> <div style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"> <div style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"> <div dir="ltr"> <hr size="1"> <font face="Arial"> <b><span style="font-weight:bold;">From:</span></b> Kelvin Chua <<a rel="nofollow" shape="rect" ymailto="mailto:kelchy@gmail.com" target="_blank" href="mailto:kelchy@gmail.com">kelchy@gmail.com</a>><br clear="none"> <b><span style="font-weight:bold;">To:</span></b> Benjamin Schwartz <<a rel="nofollow" shape="rect" ymailto="mailto:benjamin.m.schwartz@gmail.com" target="_blank" href="mailto:benjamin.m.schwartz@gmail.com">benjamin.m.schwartz@gmail.com</a>> <br clear="none"><b><span style="font-weight:bold;">Cc:</span></b> <a rel="nofollow" shape="rect" ymailto="mailto:opus@xiph.org" target="_blank" href="mailto:opus@xiph.org">opus@xiph.org</a> <br clear="none"> <b><span style="font-weight:bold;">Sent:</span></b> Wednesday, March 4, 2015 2:27 AM<br clear="none"> <b><span style="font-weight:bold;">Subject:</span></b> Re: [opus] adaptive bandwidth<br clear="none"> </font> </div><div><div class="yiv5797170385h5"> <div><br clear="none"><div><div dir="ltr">I am using libopus for my implementation. I wonder if anybody in the list have any experience on how to make libopus dynamically adjust its bitrate?</div>
<div>On Mar 3, 2015 10:42 PM, "Benjamin Schwartz" <<a rel="nofollow" shape="rect" ymailto="mailto:benjamin.m.schwartz@gmail.com" target="_blank" href="mailto:benjamin.m.schwartz@gmail.com">benjamin.m.schwartz@gmail.com</a>> wrote:<br clear="none"><blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div dir="ltr">It sounds like your software isn't adjusting the opus bitrate in response to network conditions. For example, many WebRTC implementations do not adjust the opus bitrate, because it is small in comparison to the video bitrate. However, opus itself does support continuously varying the bitrate over a wide range.</div>
<br clear="none"><div>On Tue, Mar 3, 2015, 12:58 AM Kelvin Chua <<a rel="nofollow" shape="rect" ymailto="mailto:kelchy@gmail.com" target="_blank" href="mailto:kelchy@gmail.com">kelchy@gmail.com</a>> wrote:<br clear="none"><blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div dir="ltr"><div>Hi guys,</div><div><br clear="none"></div><div>I have been reading a lot about the "adaptiveness" of opus and i quote:</div><div><br clear="none"></div><div>... can still change, e.g. to adapt to changing network conditions. useinbandfec ...<br clear="none"></div><div><br clear="none"></div><div>can somebody please enlighten me on this "adaptiveness"?</div><div>whatever way I do our tests, it sticks to the same sampling rate and the same average bitrate, it would go up, down a bit but that's it.</div><div>When we get some network issues, bandwidth utilization stays the same.</div><div>Am I interpreting it incorrectly?</div><br clear="all"><div><div>Kelvin Chua</div></div>
</div>
______________________________<u></u>_________________<br clear="none">
opus mailing list<br clear="none">
<a rel="nofollow" shape="rect" ymailto="mailto:opus@xiph.org" target="_blank" href="mailto:opus@xiph.org">opus@xiph.org</a><br clear="none">
<a rel="nofollow" shape="rect" target="_blank" href="http://lists.xiph.org/mailman/listinfo/opus">http://lists.xiph.org/mailman/<u></u>listinfo/opus</a><br clear="none">
</blockquote></div>
</blockquote></div></div><br clear="none">_______________________________________________<br clear="none">opus mailing list<br clear="none"><a rel="nofollow" shape="rect" ymailto="mailto:opus@xiph.org" target="_blank" href="mailto:opus@xiph.org">opus@xiph.org</a><br clear="none"><a rel="nofollow" shape="rect" target="_blank" href="http://lists.xiph.org/mailman/listinfo/opus">http://lists.xiph.org/mailman/listinfo/opus</a><br clear="none"><br clear="none"><br clear="none"></div> </div></div></div> </div> </div></div></blockquote></div></div><br clear="none"></div></div></div><br><br></div> </div> </div> </div></body></html>