question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Help - Video Call Low quality, Low Performance. Calls Freeze. Jitter Problems and Low Framerate

See original GitHub issue

Explanation:

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:

Video.js Audio.js

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:13 (1 by maintainers)

github_iconTop GitHub Comments

1reaction
stephanoparaskevacommented, Jul 5, 2020

Sure, I am here to help. ☺️☺️

🚀🚀 This is the full code if you need: https://pastebin.com/PFY5Zi3A

0reactions
vlxdisluvcommented, May 23, 2022

same, any ideas?

Read more comments on GitHub >

github_iconTop 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 >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found