5 Replies Latest reply on May 9, 2010 1:32 PM by deadcorporate

    What are the default values for the NetStream.multicast***** properties

    fatmck

      I read the api document about NetStream.multicast**** properties, but found no default values were given. Will the default values be changed when FP10.1 release?? Or, the values are always changing at runtime?

       

      I have a web-tv application, it broadcast some live videos created by my friends, I think that the latency and lag-time can be bigger in my app, I want to know the recommended default values for the multicast*** properties.

       

      I think the multicastWindowDuration and liveDelay are the keys. And I am confused between NetStreammulticastWindowDuration and NetStream.bufferTime..they like the same...

       

      Sorry for my poor english, Thanks.

        • 1. Re: What are the default values for the NetStream.multicast***** properties
          Michael Thornburgh Adobe Employee

          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.

          • 3. Re: What are the default values for the NetStream.multicast***** properties
            deadcorporate

            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:

             

             

            multicastWindowDuration 8

            multicastRelayMarginDuration 2

            multicastAvailabilityUpdatePeriod 0.1

            multicastFetchPeriod 2.5

            multicastAvailabilitySendToAll false

             

             

             

            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)

            • 4. Re: What are the default values for the NetStream.multicast***** properties
              Michael Thornburgh Adobe Employee

              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.publish("mystream");

                 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.