- From: Peter Thatcher <pthatcher@google.com>
 - Date: Tue, 15 Apr 2014 12:18:31 -0700
 - To: "public-ortc@w3.org" <public-ortc@w3.org>
 - Message-ID: <CAJrXDUE7EAvKWrs1xPwX6WTY5iHy5GX-5k7K_WnP3wNiGDN+Mw@mail.gmail.com>
 
Here's a simplified proposal for how to add quality control without getting
too mixed up with quality (there will be a separate proposal for that).
dictionary RTCRtpEncodingParameters {
 // ... existing ssrc, codec, fec, rtx
 // The higher the value, the more the bits will be given to each
 // as available bandwidth goes up.  Default is 1.0.
 double priority;
 double maxBitrate;
 double minQuality;
  // 1.0 == Bias toward framerate, 0.0 == Bias toward quality/resolution
 double framerateBias;
 // Resolution/cropping/scaling is controlled by the input track!
}
Send a thumbnail along with regular size
*var encodings1 = [  ssrc: 1,  priority: 1.0 }] // Control the resolution
and framerate with a different track and RtpSender. var encodings2 = [{
 ssrc: 2,  // Prioritize the thumbnail over the main video.  priority: 10.0
}]; *Sign Language
*(need high framerate, but don't get too bad of quality) var encodings = [{
 minQuality: 0.2,  framerateBias: 1.0 }]; *Screencast
*(High quality, framerate can be low) var encodings = [{  framerateBias:
0.0 }]; * Remote Desktop
*(High framerate, must not dowscale) var encodings = [{  framerateBias: 1.0
}]; *Audio more important than video
*var audioEncodings = [{  priority: 10.0 }]; var videoEncodings = [{
 priority: 0.1 }]; *Video more important than audio
var audioEncodings = [{
 priority: 0.1
}];
var videoEncodings = [{
 priority: 10.0
}];
Crank up the quality
var encodings = [{
 maxBitrate: 10000000
}];
Keep the bandwidth low
var encodings = [{
 maxBitrate: 100000
}];
Received on Tuesday, 15 April 2014 19:19:39 UTC