本文原创自 http://blog.csdn.net/voipmaker
jitter buffer技术是ip 音视频通信里相对比较高级的主题,jitter buffer模块好坏通常是衡量一个voip客户端/服务器好坏的技术点之一,尤其是在网络抖动比较严重,如3g, wifi环境,数据包的rtt值不均衡往往会导致语音卡顿,丢字等现象,jitter buffer 模块通过缓存一段数据包,把数据包重排,并均匀的送给播放端,一个好的jitter buffer实现通长是动态调整缓存大小的,在网络延迟大,抖动严重时会动态增加缓存大小,在网络恢复时动态减小缓存大小以减少端到端的播放延迟。
freeswitch作为出色的媒体服务器,内置了jitter buffer模块,做freeswitch作为 conference 服务器时如果遇到网络丢包/不稳定时,可以考虑开启jitter buffer模块,结合 带PLC/FEC的 codec使用效果最佳。
通过设置通道变量 jitterbuffer_msec参数即可即可开启,包含三个参数,分别是缓存长度,做大长度,以及每个包的时长间隔,单位都是毫秒,正常语音包 8000HZ 采样率,每个包20毫秒,1秒50个rtp包,如下例子是缓存3个rtp包,最大缓存10个,每个包大小20毫秒。
切记需要在系统应答之前设置此变量的值。
<
action
application
=
"set"
data
=
"jitterbuffer_msec=60:200:20"
/>
<
action
application
=
"answer"
/>