2 Replies Latest reply on Nov 3, 2009 1:31 AM by wilhelmlee

    Data objects combined with a/v streams


      Earlier we discussed my plan to redesign our classic Shared Object solution and change these to metadata objects over p2p streams. Thus speeding up data syn.


      I did so and it works fine, at least functionally.


      But test users are now complaining about occasional high latency situations on the a/v stream.


      I use a single NetConnection for these and four separate NetStreams for the a/v up and down and the shared object up and down.


      Could you please advise the best scenario for this solution, where the a/v and data streams are decoupled and which has minimals risk of a/v being delayed by the data?:


      1 connection, 4 streams, as I do now

      1 connection, 2 streams, interleaving a/v and data

      2 connections, 4 streams, separating the connections

      2 connections, 2 streams, separatting conn ections and interleaving a/v and data




        • 1. Re: Data objects combined with a/v streams
          Michael Thornburgh Adobe Employee

          one NetConnection is better than two, because congestion state is shared within the NetConnection but not between them (in your usage).  as far as what's happening on the wire, there should be no difference between using two NetStreams and using four.


          i can see one potential problem, though: P2P data (NetStream.send()) is sent with "Normal" priority.  P2P audio is sent with "Higher" priority, but P2P video is sent with "Lower" priority.  also, video is sent with full reliability, so if you are sending a LOT of NetStream.send data, the video could become delayed, since it is sent with full reliability.  the audio should stay current, though, as it has the highest priority of what you're sending.


          one thing that's possible is that certain networks may have lots of buffering in them (wireless networks are notorious for this), so if you are sending a lot of data over a link, it may be buffered by the network, which must necessarily drive up latency.  a test you could do to see if this is what's happening is to do a command-line "ping" from one of the peers to the other while you're experiencing the high a/v latency.  if the ping time is really high (in line with the observed latency) then there's little that can be done about that, except to send less data.


          in the future, selecting partial reliability for video will be possible, which might also help mitigate this in highly congested situations.



          • 2. Re: Data objects combined with a/v streams

            and the differents of the P2P autdio,video data and P2P data(with NetStream.send()) ? If the P2P data(with NetStream.send()) can be lost (or NetStream would retransmit it when it loss) ?