Skip to main content
Participant
February 3, 2010
Question

DynamicStream playlist

  • February 3, 2010
  • 3 replies
  • 1628 views

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

    This topic has been closed for replies.

    3 replies

    Participant
    February 11, 2010

    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

    gvdan8Author
    Participant
    February 10, 2010

    Thanks for all your answers.  Setting "oldStreamName" seems to have resolved the errant stream issue.

    Janaki Lakshmikanthan
    Adobe Employee
    Adobe Employee
    February 4, 2010

    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

    gvdan8Author
    Participant
    February 4, 2010

    Ah I see, I'll have to experiment with the bufferTime.

    The problem with the switch occuring during the next video is as such:

    PLAYLIST

    {

      * VIDEO1(hi:1000, lo:600),        // 2 x H.264 streams

      * VIDEO2(rate:undetermined),   // 1 x FLV stream

      * VIDEO3(hi:1000, lo:600)     // 2 x H.264 streams

    }

    At the beginning of video1, we throttle the bandwidth with an external program.  40% of the way through Video1, we disable the throttle program, which causes a LO-to-HI switch.   The switch does not yet occur visibly.    Video2 starts playing.   About halfway through Video2, we see the HI stream  of Video1 start playing.

    Is this where "oldStreamName" would help kill any pending switch requests for previous videos?  Video1 is no longer the current video, so I don't want to see the Video1 HI stream anymore, it's a little late for that.

    Initially, we issue a NetStream.play2() on the Video1 HI with "reset" set to true, and to the next 3 videos with "reset" set to false.    When the stream switching  is called, of course we are calling play2() with a SWITCH option, but as I've described the problem is that the switch is occuring during the NEXT video!

    crazy.

    Any ideas?

    Adobe Employee
    February 5, 2010

    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