Framedrops and video stucking

Hello,

We have one broadcaster and many viewers scenario with HD video resolution
(camera/screen capture). Because of bad recording quality I set
experimentally defaultVideoBW and maxVideoBW to such higher values
(5000/10200 kbps). After several minutes frames were dropped and video
started being stucked. Since client had cca. 30fps set up, receiver had at
about 5fps even within local, speed enough network.

  • Are there any suggested BW values based on resolution?
  • What could have caused video stucking and frame dropping (with
    consideration of good recording quality)?
  • Is there any buffering mechanism which can be overflown by higher
    resolution? I mentioned that at many places SD (640x480) resolution is
    hardcoded and probably all system is tuned and tested with this resolution.

By this code fragment of WebRtcConnection.cpp, there’s packet limit for
queue up to 1000:

if (sendQueue_.size() < 1000) {

  dataPacket p_;

  memcpy(p_.data, buf, length);

  p_.comp = comp;

  p_.type = (transport->mediaType == VIDEO_TYPE) ? VIDEO_PACKET : 

AUDIO_PACKET;

  p_.length = length;

  sendQueue_.push(p_);
}

I suppose packets are just transferred and no encoding/decoding is done (if
no external input/output is used). Is it this code fragment which can be
our weak place?

When we set videoDefaultBW and maxVideoBW to values 1200/2400, stream was
more stable, but from several broadcasters quite further from the server,
video quality even with screen capture goes rapidly down (e.g. photography
manipulation). For dynamic scenes, framerate goes down. Their internet
connection is speed enough.

  • How does recording influence broadcasted stream quality? We suspect
    that it also decrease FPS during transferring.
  • Is it possible to move recording to separate machine?

Thanks for any suggestions

Cheers!