Skip navigation
danthemanthelegend
Currently Being Moderated

DynamicStream playlist

Feb 3, 2010 12:39 PM

I've modified the DynamicStream class to support a playlist.  Before this goes into a production environment, will there be any updated releases of these classes from Adobe that support a playlist?

 

 

Stream switching is often delayed until the next clip starts playing, so I get a transition to the previous clip in the middle of the next clip.  Is that where "oldStreamName" comes in handy?  Will it prevent the transition if the clip we're transitioning from has changed since the SWITCH request was made?

 

 

Also, the call to "setBandwidthLimit" was absolutely killing our streams. The buffer would quickly empty out as soon as the stream started playing again.

I removed the "setBandwidthLimit" call, but now it takes forever to actually switch up from a low to a high quality stream.  Is there a way to achieve faster switching speeds without utilizing this bandwidth limit?

 

 

(details:   VOD, not live streams.   Using an FMS server, serving a mix of H.264 [600 & 1000 kbps] and FLVs of varying bitrates)

 

Thanks

 
Replies
  • Currently Being Moderated
    Feb 3, 2010 11:11 PM   in reply to danthemanthelegend

    The delay to render the switched stream after transition-Switch could be because of various factors. Mainly we depends on the bufferTime set at the client side and the bandwidth you are in. For example, if your bufferTime is set to 10 seconds, and you are at good bandwidth, anytime during the stream play you will have ~10 seconds of data already filled at the client side. With this if you issue a switch, the server will start sending the switched stream immediately. The server fills the data of switched stream after the ~10 seconds of data in ur buffer. So you will have to play the existing ~10sec of previous stream that was buffered already at you client side and then it starts with the switched stream. So this delay in viewing the switched stream depends on your bufferTime value set in the client application.

     

    Once your stream switched to 2nd clip, no way you can get the 1st clip in the middle while playing 2nd. Or i got your wrong. Could you pls be elaborate on this? If this is what you are seeing, are you sure your stream switched to 2nd one and you have not issued any other switch after that. If you are doing right, pls give me more details about the media that you using with the setup information.

     

    oldStreamName property helps you to switch to a newer stream from WHICH stream. If the stream mentioned in oldStreamName was already played in the playlist, then your switch will fail. Also if you are playing the stream which oldStreamName mentions, then the switch should be successful to the newer stream that you have mentioned.

     

    To get faster switching, you should have less value set in your bufferTime at the client side.

     

    Regards,

    Janaki L

     
    |
    Mark as:
  • Currently Being Moderated
    Feb 4, 2010 10:34 PM   in reply to danthemanthelegend

    When you started playing NetStreamPlayOptions will be

     

    param.oldStreamName - null
    param.streamName - video1_lo
    param.transition - reset

     

    Then I think video1 has played its content and you got NetStream.Play.Complete for video1 so video2 starts playing but since switch was already issued to server with NetStreamPlayOptions

     

    param.oldStreamName - video1_lo
    param.streamName - video1_hi
    param.transition - switch

     

    So If the server receives a "switch" on an item in the playlist but the item is not currently playing, the "switch" will be converted to a "swap". So for you I think video1_lo was actually not getting played instead video2 was getting played when switch was happening so it got converted to swap and video2 was swapped with video1_hi.

     

    Regards,

    Amit

     
    |
    Mark as:
  • Currently Being Moderated
    Feb 5, 2010 2:04 AM   in reply to Amit Kumar

    This is an interesting thread.

    Like Amit had mentioned, if your 'oldStreamName' is set to null or undefined or stream not found in playlist, it will switch to the 'streamName' mentioned. In your scenario, i believe the trick is with bufferTime and oldStreamName set.

     

    Let us take a simple example, that all the 3 streams in your playlist is of 20 seconds in length. and your bufferTime is set to 10 seconds. Though your bufferTime is set to 10, you can have more than 10 secs of data in the player... let us take ~20 seconds of data. Now you have started playing the streamL1 and when you are playing 15th second of streamL1 you issue a switch command with oldStreamName set to null/undefined and streamName set to streamH1. You would expect to play the switched streamH1. But if you see the data in the client buffer, when you are playing the 15th second of streamL1, you might have the server already sent the data of stream2. So at that point of time, the first 5 seconds of data might be of streamL1 and the remaining ~15 seconds of data might be of stream2. Since it is a playlist, once the player reaches the end of file of streamL1, it will send a request to start filling data for stream2. So the player will assume that the client is playing Stream2, though you are still playing streamL1 and have stream2 stored in your buffer. In this case, as per FMS, you are switching from stream2 to streamH1. Hence you see streamH1 playing in the order of streamL1->stream2->streamH1... This case can apply for you if you have not set oldStreamName to right stream name like 'streamL1'.

    To confirm this in your case, open access.log file and look for play-stop events logged init. In the above case what i have mentioned you should have the access log like...

     

    Event     stream-name

    play     streamL1

    stop     streamL1

    play     stream2

    stop     stream2

    play     streamH1

    .

    .

    If you see the above order in access log, then what happening is by design. You have to modify your bufferTime and check when you issue a switch your client has not buffered the second stream. Also set oldStreamName to right value.

     

    Regards,

    Janaki L

     
    |
    Mark as:
  • Currently Being Moderated
    Feb 10, 2010 7:15 PM   in reply to danthemanthelegend

    Dear Sir/Madam Adobe Membership!

    I work in Vietnam Data Communication Company – Center II in Vietnam country. With reference to your advertisement/introduction of you in your website (http://www.adobe.com/ ), I am writing to you to request some things bellows:

    My company would like build video streaming application on Website (and mobile in future), maybe something likes http://youtube.com . It is streaming: films, video clips with the different sizes which are stored in folder of server with high quality, powerful, secure, extendable, high-performance, highly scalable, and custom video solutions. After I went through the Flash Media Interactive Server 3.5 of Adobe I see that it seem usefully with the streaming video application of my company. So that, before my company purchases the Flash Media Interactive 3.5 software we would like use trial the Flash Media Interactive Server 3.5 software with full features, unlimited the end users, and full functions in few months. And  we hope you provide full Flash Media Interactive 3.5 software and guide clearly, more details and more focus for “how to use the Flash Media Interactive Server 3.5 for matching with our application” during use trial. If we see this software which displays well the streaming video application and it matches with our application so that we will purchase this software immediately.

    Addition, did we have the encoder (video, film) software when we purchase full Flash Media Interactive Server 3.5? Because, I know that adobe media encoder CS4 supports for encoding video/film to FLV/F4V, but it is different software and do not package with Flash Media Interactive Server 3.5 software. And do you have software to encode automatically video/film like flash media live encoder? Because I think that there are some troubles to use adobe media encoder CS4 for encoding video/film such as: sequential, so slow, non-auto encoding and occupies 100% CPU performance.

    Finally, adobe flash player 10 in Flash Media Interactive 3.5 has HD (+,-) feature. But I do not know to use it? Could you tell us more?

    Please give me your hotmail for chatting and reply us early!

    Thank for your prompt help!

     

    Sincerely,

     

    Thao Nguyen Thi,

    Online application Center

    Vietnam Data Communication Company – Center II (VDC2).

    Email: thaooac@vdc2.com.vn

     
    |
    Mark as:
  • Currently Being Moderated
    Sep 10, 2011 4:41 PM   in reply to Janaki Lakshmikanthan

    I wonder if anyone from this thread can help me with my problem. It looks like from this thread dynamic streaming with a playlist is possible, but when an switch is initiated in past the first video it fails and the stream just ends prematurely, even with the correct oldStreamName. Please see http://forums.adobe.com/thread/901045?tstart=0

     

    Thnks,

    Adam

     
    |
    Mark as:

More Like This

  • Retrieving data ...

Bookmarked By (0)

Answers + Points = Status

  • 10 points awarded for Correct Answers
  • 5 points awarded for Helpful Answers
  • 10,000+ points
  • 1,001-10,000 points
  • 501-1,000 points
  • 5-500 points