Help - Video Call Low quality, Low Performance. Calls Freeze. Jitter Problems and Low Framerate
See original GitHub issueExplanation:
My Video calls are suffering bad performance, freezing, delay and jitter. I have attached 2 files of Audio and Video data from a 5 minute video call. This uses stun.l.google.com:19302
stun server.
Data:
Notice the framerate = 9 at certain points and drops lower sometimes ( 3-5 fps for > 30 seconds ). Each datapoint was recorded every 10 seconds.
[
{ timestamp: 1593832587553 },
{ googFirsSent: '0' },
{ googCodecName: 'VP9' },
{ googPlisSent: '0' },
{ googFrameHeightReceived: '320' },
{ googJitterBufferMs: '89' },
{ googInterframeDelayMax: '302' },
{ googTrackId: '9fb6208c-db3d-43fc-84f5-c639b9acd469' },
{ packetsReceived: '28875' },
{ googCaptureStartNtpTimeMs: '3802820918669' },
{ googFrameRateOutput: '9' },
{ googTargetDelayMs: '2338' },
{ googFrameRateDecoded: '12' },
{ googFrameRateReceived: '15' },
{ googDecodeMs: '4' },
{ googMinPlayoutDelayMs: '2338' },
{ googCurrentDelayMs: '2148' },
{ googMaxDecodeMs: '6' },
{ mediaType: 'video' },
{ googRenderDelayMs: '10' },
{ transportId: 'Channel-audio-1' },
{ qpSum: '394946' },
{ googContentType: 'realtime' },
{ googNacksSent: '24' },
{ codecImplementationName: 'libvpx' },
{ framesDecoded: '9355' },
{ ssrc: '1775136387' },
{ bytesReceived: '29067646' },
{ packetsLost: '63' },
{ googFirstFrameReceivedToDecodedMs: '16' },
{ googFrameWidthReceived: '180' },
],
I am using Wazo-Platform hosted in AWS on a t2.small
EC2 Instance. Following default configuration via docs.
The Back-End uses:
- Wazo-Platform (latest) hosted on AWS
- stun.l.google.com:19302 Stun Server
The Front-End uses:
- React-Native (latest)
- Wazo-JS-SDK (latest)
- React-Native-WebRTC (latest)
- React-Native-Callkeep (latest)
Code:
Wazo.Phone.on(Wazo.Phone.ON_CALL_ACCEPTED, async (sess: any) => {
if (isCall || ready) return;
session.current = sess;
const sipSession = Wazo.Phone.getCurrentSipSession();
if (session.current?.cameraEnabled) {
const { peerConnection } = sipSession.sessionDescriptionHandler;
const locStreams = peerConnection.getLocalStreams();
const remStreams = peerConnection.getRemoteStreams();
const anyTrack = (stream: any) => !!stream.getVideoTracks().length;
local.current = locStreams.find(anyTrack);
remote.current = remStreams.find(anyTrack);
if (!isIOS) {
RNCallKeep.backToForeground();
}
await inCallManager.start({ media: 'video', auto: true });
} else if (session.current) {
await inCallManager.start({ media: 'audio', auto: true });
}
await sipSession.sendReinvite();
dispatch({ ready: true });
});
{remote.current && isCall && ready && (
<View style={{ borderColor: 'red', borderWidth: 5, flex: 1 }}>
<RTCView
objectFit='cover'
streamURL={remote.current?.toURL()}
style={styles.remoteVideo}
zOrder={15}
/>
</View>
)}
Data Files:
Issue Analytics
- State:
- Created 3 years ago
- Comments:13 (1 by maintainers)
Top Results From Across the Web
Video Call Low quality, Low Performance. Calls Freeze. Jitter ...
Notice the framerate = 9 at certain points and drops lower sometimes ( 3-5 fps for > 30 seconds ). Each datapoint was...
Read more >Stop your video calls from stuttering | benkuhn.net
Extreme jitter or packet loss are most often caused by a network link failing. More moderate jitter can be caused by fluctuations in...
Read more >Poor Video Quality During a Call? Here's How to Fix It - Lifesize
When the CPU is overworked, your computer is likely to become sluggish, programs may freeze and your device might get hot to the...
Read more >Why does audio freezing occur in a call? - Agora Documentation
Jitter may be caused by slow Internet connections, bad device performances, or the physical environment.
Read more >Dimensions and measurements - Call Quality Dashboard (CQD)
The Call Quality Dashboard (CQD) for Microsoft Teams and Skype for ... the video stream was classified as poor based on the Video...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
🚀🚀 This is the full code if you need: https://pastebin.com/PFY5Zi3A
same, any ideas?