第一次做webrtc项目,操作延迟,一直是个问题,多次调试都不能达到理想效果。偶尔发现提高jitterBuffer时间可以解决此问题。关键代码
const _setJitter = (values: number) => { const receives = peerConnection.getReceivers();receives.forEach((receiver: any) => {if (receiver.track.kind === 'video') {// receiver.jitterBufferTarget =// networkScore > 0.8 ? 100 : // 网络优 → 低延迟模式// networkScore > 0.5 ? 500 : // 网络一般 → 平衡模式receiver.jitterBufferTarget = values;}})}
通过修改jitterBufferTarget的值,可以控制延迟时间,例如设置30,可以明显降低延迟时间,此值可以根据网络状况来动态调整,实时生效。
网络质量MOS可以使用 webrtc-issue-detector 来获取,或是自己写代码实现。