I have started testing the Opus 0.9.0 experimental codec in a recent build of FreeSWITCH - thanks to Anthony Minessale for writing the module, and thanks to William F. Acker for helping with the testing. For those who aren't familiar with it, Opus is a combination of CELT and SILK, which is currently under discussion within the IETF. After building and loading the module, specify Opus-0.9.0 as your codec. The versioning of the codec's name is a good idea; this should prevent mutually incompatible versions from interacting with each other as development of the codec proceeds. My initial impressions are favourable; the audio quality is comparable to CELT at 48 khz, based on my early listening experience. I did notice some occasional pops in the audio, presumably attributable to packet loss. SILK apparently has some error correction functionality built in, but I don't know what its status is in the combined Opus codec. If it's present, then it didn't smooth out the glitches, at least in my environment.
For the forward error correction in Silk (and presumably Opus) to work correctly the codec needs access to the frames around the lost packets. The codec also needs to communicate this loss to the encoder at the remote end. This is a trade-off between bandwidth usage and the reconstruction of lost packets. You'll notice the FreeSWITCH implementation of Silk (last time I checked) hardcodes a packet loss rate of 10%. This activates some FEC functionality even if it's less than ideal. Ideally FreeSWITCH could use and potentially dynamically activate the jitter buffer to "peek" lost frames when transcoding to/from FEC capable codecs (including Silk and Opus). On Sun, Feb 6, 2011 at 7:19 PM, Jason White <jason@jasonjgw.net> wrote:
I have started testing the Opus 0.9.0 experimental codec in a recent build of FreeSWITCH - thanks to Anthony Minessale for writing the module, and thanks to William F. Acker for helping with the testing.
For those who aren't familiar with it, Opus is a combination of CELT and SILK, which is currently under discussion within the IETF.
After building and loading the module, specify Opus-0.9.0 as your codec. The versioning of the codec's name is a good idea; this should prevent mutually incompatible versions from interacting with each other as development of the codec proceeds.
My initial impressions are favourable; the audio quality is comparable to CELT at 48 khz, based on my early listening experience.
I did notice some occasional pops in the audio, presumably attributable to packet loss. SILK apparently has some error correction functionality built in, but I don't know what its status is in the combined Opus codec. If it's present, then it didn't smooth out the glitches, at least in my environment.
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
-- Kristian Kielhofner
participants (2)
-
Jason White
-
Kristian Kielhofner