第一次做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 來獲取,或是自己寫代碼實現。