- From: Chris Wendt <chris-w3c@chriswendt.net>
- Date: Thu, 17 Apr 2014 12:40:02 -0400
- To: Peter Thatcher <pthatcher@google.com>
- Cc: "public-ortc@w3.org" <public-ortc@w3.org>
- Message-Id: <68AD9F6C-D88F-4628-8FC7-5ECB4997FC53@chriswendt.net>
I think it looks good. I’m assuming you are implying the priority value is just a floating point relative scale. if you have an encoding at 1.0 priority and you add a new one with higher/lower priority you go up/down from 1.0. Or it can be completely arbitrary float values as well? Is there any quantitative priority scale implication? 1 vs 100 is “really big priority difference”, 1 vs 2 “not so big” or is it 1 vs 100 means the same as 1vs 2. -Chris On Apr 15, 2014, at 3:18 PM, Peter Thatcher <pthatcher@google.com> wrote: > 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 Thursday, 17 April 2014 16:41:15 UTC