Randell, I have web conference application. In my use case everything is hub-and-spoke with a server and groups of receivers, as opposed to peer to peer.
By specifying a low receive bandwidth, I can be fairly certain that users will be able to consume the presentation, even those half way around the world or on poor connections. I do not wish to rely on automatic feedback for large groups of receivers. Also, with a low and predictable bandwidth, I can do capacity planning for servers based on number of receivers. FF starts streaming video at 500kbps, which is >5x too high for my purposes. I don't want or need VGA+ or high frame rates. I need a small talking head, <= 15fps, <= 100kbps. When I tell Chrome to limit video bw to 100kbps, it actually sends at around 60kbps, and the quality is perfect for what my application requires. At 500kbps video, + audio and overhead, I can stream to fewer than 2000 users on a gigabit connection, and I need that number to be much higher. b=AS: might not be the correct way, but it is the first bandwidth control that appeared in Chrome, so that is what I used. Thanks On Thu, Jul 4, 2013 at 11:36 PM, Randell Jesup <[email protected]> wrote: > On 7/3/2013 7:57 PM, Adam Roach wrote: > >> On 7/3/13 18:48, [email protected] wrote: >> >>> FF 22 does not seem to honor the video constraints passed to >>> getUserMedia: >>> >>> getUserMedia( >>> {audio:true,video:{mandatory:{**maxWidth:320,maxHeight:240}}} >>> ,gotStream >>> ,noStream); >>> >>> Also, the b=AS:xxx that I put into the offer SDP for audio and video >>> seems >>> to have no effect at limiting bandwidth, >>> >>> Is there any way to limit resolution, frame rate and bandwidth in >>> Firefox's >>> WebRTC? >>> >> >> Not yet. >> >> I also don't think the "b=" line in SDP works the way you're envisioning >> here. When this kind of control becomes available, it will be signaled >> using a=fmtp: on a per-format basis (at least initially). >> > > In this case, I think Bryan is probably correct: b=AS:XXX or b=TIAS:XXXX > at the media level specifies you'd like that to be the limit for > *receiving* data on that m-line from one source, or at the session level as > b=CT:xxxx for a limit on all m-lines together from all sources. (b=as/tias > can also be used at the session level, and b=ct at the media level, but > those uses are a bit more esoteric in principle, though if there's only one > m-line it really doesn't matter). > > Currently, Firefox does not look at b= values. > > > However, you should not have to work directly with the SDP -- hopefully, >> we'll be adding API calls to the standard to accommodate your use cases. >> > > Right. SDP has many options, and no SDP endpoints implement all of them > (and there are consistency/interop issues surrounding many of them as well, > making them dangerous to use in heterogeneous environments). Support for > b= is not unreasonable, but is also not high priority, as JS applications > rarely will have a good idea as to when bandwidth the other side should be > limited to. In theory the browser might know something about the network > connection speed, but this is fraught with uncertainty; it's generally > better to let the automatic systems for bandwidth adaptation (and CPU use > monitoring) take control. > > Bryan, if you have use-cases where it's important for webrtc endpoints to > be able to specify the *receive* bandwidth, please let us (the IETF rtcweb > and W3 WebRTC working groups) know since these would impact the API. If > you have use-cases where it's important that WebRTC endpoints *respect* an > incoming b= value, please also let us know. > > Thanks! > Randell Jesup, Mozilla > > ______________________________**_________________ > dev-media mailing list > [email protected] > https://lists.mozilla.org/**listinfo/dev-media<https://lists.mozilla.org/listinfo/dev-media> > _______________________________________________ dev-media mailing list [email protected] https://lists.mozilla.org/listinfo/dev-media

