we don't list the default values in the documentation because we want to keep open the possibility to change/tune them in the future as we learn more with real-world use (there's only so much modeling of the Internet you can do in a lab). the values will probably not change before 10.1 release. the intention is for the default values to be a "pretty good" balance for most use cases and most network conditions.
at this time we don't have any guidance on how to adjust these values. they all interact subtly with each other. however, please experiment!
the NetStream.multicastWindowDuration is the length of time that the multicast system will attempt to assemble all the pieces of the stream before giving up. depending on network conditions, increasing this value can improve the reliability of the stream. NetStream.bufferTime is how much time must be in the playout buffer (after being assembled from the multicast) before playout begins. the multicastWindowDuration is the maximum jitter you can expect to receive (beyond that will appear as data loss in the stream), but typically the delay will be lower than that.
Thanks for your patient reply.
what's also not completely clear by the documentation:
do you set this through the sendStream? on the publisher's end?
or can stream consumers adjust these parameters via their receive stream? would that affect the entire multicast stream? (assume not)
finally for fellow experimenters: the default values as they trace:
this should of course not restrict you in any way from experimenting, as Michael sugggests.
what could help us developers a bit though is some sort of guidance on what possible/realistic ranges are...
(units are always in seconds)
the publisher can set the multicast properties you listed to be the defaults for all of the subscribers of the stream. in addition, the publisher can select whether or not "push" mode is used by changing NetStream.multicastPushNeighborLimit. setting the limit to 0 disables push, setting it to non-zero enables push in the mesh, but only changes the actual push neighbor limit for the publisher. if push is enabled for the stream, each peer will use push mode, but will start out with the global default limit (which is currently 4). this is for safety. we recommend you always leave push enabled.
each peer (including the publisher) can change the multicast stream parameters dynamically. changes are local to that peer.
for the publisher to set the initial parameters for the stream that all peers will inherit as the default, the parameters must be changed on a new NetStream *before* NetStream.publish() is called. example:
var ns:NetStream = new NetStream(netConnection, groupSpecification);
ns.multicastWindowDuration = 10; // change default for everybody
ns.multicastWindowDuration = 15; // change window duration just for publisher, everybody else will start with 10 for this stream
each subscriber can override the multicast stream properties locally, but the overrides must be set on the NetStream *after* receiving a NetStream.MulticastStream.Reset NetStatusEvent.NET_STATUS event in order for the override to stick. overrides must be reapplied each time the NetStream.MulticastStream.Reset event is received.
great, useful insight! thank you.