- 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