Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Separate proposal on quality (was part of the "big proposal") #62

aboba opened this issue Apr 15, 2014 · 0 comments

Separate proposal on quality (was part of the "big proposal") #62

aboba opened this issue Apr 15, 2014 · 0 comments


Copy link

aboba commented Apr 15, 2014

From: Peter Thatcher
Date: Tue, 15 Apr 2014 12:18:31 -0700
To: ""

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

robin-raymond pushed a commit to robin-raymond/ortc that referenced this issue Apr 29, 2014
- Support for contributing sources removed (re-classified as a 1.2 feature), as described in w3c#27
- Cleanup of DataChannel construction, as described in w3c#60
- Separate proposal on simulcast/layering, as described in w3c#61
- Separate proposal on quality, as described in w3c#62
- Fix for TCP candidate type, as described in w3c#63
- Fix to the fingerprint attribute, as described in w3c#64
- Fix to RTCRtpFeatures, as described in w3c#65
- Support for retrieval of remote certificates, as described in w3c#67
- Support for ICE error handling, described in w3c#68
- Support for Data Channel send rate control, as described in w3c#69
- Support for capabilities and settings, as described in w3c#70
- Removal of duplicate RTCRtpListener functionality, as described in w3c#71
- ICE gathering state added, as described in w3c#72
- Removed ICE role from the ICE transport constructor, as described in w3c#73
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
None yet

No branches or pull requests

2 participants