• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
Locked
0

DynamicStream playlist

New Here ,
Feb 03, 2010 Feb 03, 2010

Copy link to clipboard

Copied

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

Views

1.4K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
Feb 03, 2010 Feb 03, 2010

Copy link to clipboard

Copied

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

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 04, 2010 Feb 04, 2010

Copy link to clipboard

Copied

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?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
Feb 04, 2010 Feb 04, 2010

Copy link to clipboard

Copied

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

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
Feb 05, 2010 Feb 05, 2010

Copy link to clipboard

Copied

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

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Sep 10, 2011 Sep 10, 2011

Copy link to clipboard

Copied

LATEST

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

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 10, 2010 Feb 10, 2010

Copy link to clipboard

Copied

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

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 10, 2010 Feb 10, 2010

Copy link to clipboard

Copied

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

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines