-
1. Re: Live Dynamic Streaming DVR?
Jody Bleyle Jun 3, 2009 4:38 PM (in response to mrwizzer2)Yes -- you can use dynamic streaming and DVR streaming together.
To stream a DVR stream from FMLE, you must use the DVRCast application (or roll your own). Make sure you have the DVRCast app copied to rootinstall/applications/dvrcast_origin.
In FMLE, select the number of streams you want to send (up to 3). Use the %i parameter to create stream names (for example, dvrstream%i creates the streams dvrstream1, dvrstream2, and dvrstream3).
You can use FLVPlayback 2.5 in either Flash or Flex, or you can build your own video player. The DynamicStream classes come with a Flex example that you can modify to connect to dvrcast_origin instead of to vod.
If you're using FLVPlayback 2.5, set isDVR to true.
At a basic level DVR isn't complicated -- every stream published with the "record" or "append" flag is a DVR stream. When you subscribe to a DVR stream you're subscribing to a vod (recorded) stream, not to a live stream. The stream seems live because you're only a split second behind live.
To jump forward to live, call NetStream.seek() and pass it an incredibly high number. If you're using the DynamicStream class, call DynamicStream.seek(). To jump back to the beginning of the recording, pass 0.
Lemme know if you need more help getting started.
Jody
-
2. Re: Live Dynamic Streaming DVR?
mrwizzer2 Jun 4, 2009 8:43 AM (in response to Jody Bleyle)Thanks for the informative reponse, Jody.
I'll give it a whirl and let you know how I do.
Much thanks!
Mike
-
3. Re: Live Dynamic Streaming DVR?
mrwizzer2 Jun 4, 2009 8:49 AM (in response to Jody Bleyle)A brief side issue...
Jody, you mentioned that the Dynamic Stream class includes a Flex example... I'm not familiar with Flex. Can I use Flash to edit the same file, or do I need to familiarize myself with Flex?
Is Flex just a simplified version of Flash, or is it an entirely different animal?
-
4. Re: Live Dynamic Streaming DVR?
mrwizzer2 Jun 4, 2009 9:04 AM (in response to Jody Bleyle)Jody, when you say 'every stream published with the "record" or "append" flag is a DVR stream' , does that mean that within the Flash Media Live Encoder you need to put a check in the checkbox next to DVR Auto Record?
If not, how do you "record" or "append" within FMLE?
Or, is this something that needs to be coded in the AS file instead?
-
5. Partial Success! Live Dynamic Streaming DVR
mrwizzer2 Jun 4, 2009 10:50 AM (in response to Jody Bleyle)Forgive me for the numerous responses. I'm getting VERY close to having this! I am indeed getting a little DVR action!
But so far, it's limited to "Pause", which works great.
But when I hit the "Play" button (coded with _ds.resume(); ), I get a long pause with frozen video for about fifteen seconds. I assume it has something to do with the buffer emptying, as outlined in this technote: http://go.adobe.com/kb/ts_kb403029_en-us However, the technote says I should be good to go with FMS 3.5 and Flash Player 10, which I'm currently using.
Also, Rewind (using either "_ds.seek(0);" or " _ds.seek(_ds.time - 5);" doesn't rewind the video, but instead takes the video to the current moment in time before pausing it for 15 or so seconds.
Last thing I'll mention here... I'm confused as to whether I should be using DynamicStreamInstance.start = -2 or DynamicStreamInstance.start = -1; (I understand -1 is for live video, -2 for VOD -- if I understand correctly, this live dynamic streaming dvr stuff is more closely affiliated to VOD than live, right?
Please help me close the final remaining gap!
Thanks
PS - I've attached my .as file in case it helps
-
6. Re: Partial Success! Live Dynamic Streaming DVR
mrwizzer2 Jun 4, 2009 10:54 AM (in response to Jody Bleyle)Forgive me for the numerous responses. I'm getting VERY close to having this! I am indeed getting a little DVR action!
But so far, it's limited to "Pause", which works great.
But when I hit the "Play" button (coded with _ds.resume(); ), I get a long pause with frozen video for about fifteen seconds. I assume it has something to do with the buffer emptying, as outlined in this technote: http://go.adobe.com/kb/ts_kb403029_en-us However, the technote says I should be good to go with FMS 3.5 and Flash Player 10, which I'm currently using.
Also, Rewind (using either "_ds.seek(0);" or " _ds.seek(_ds.time - 5);" doesn't rewind the video, but instead takes the video to the current moment in time before pausing it for 15 or so seconds.
Last thing I'll mention here... I'm confused as to whether I should be using DynamicStreamInstance.start = -2 or DynamicStreamInstance.start = -1; (I understand -1 is for live video, -2 for VOD -- if I understand correctly, this live dynamic streaming dvr stuff is more closely affiliated to VOD than live, right?
Please help me close the final remaining gap!
Thanks
PS - Let me know if you'd like to see my .as file, (I couldn't upload it for some reason)
-
7. Re: Partial Success! Live Dynamic Streaming DVR
Jody Bleyle Jun 4, 2009 11:44 AM (in response to mrwizzer2)Hi Mike,
I'm glad your app is starting to happen (who knows, you may even be done by now)... But here's my best shot at answering your questions:
1. Flex is a framework that uses MXML, a declarative XML-based language, to describe UI layout and behaviors, and ActionScript 3 to create client logic. Flex has a big component library -- you use MXML to place the components in an app. Flex apps compile to SWF files and run in Flash Player and AIR. So the Flex example that ships with the DynamicStream class does have some ActionScript in it that you can stop out and use in Flash. the example includes an MXML file that you can open in any text editor.
Here's more info about Flex:
http://www.adobe.com/products/flex/overview/
By the way, a simple DVR sample ships with FMS: Flash Media Server 3.5\documentation\samples\dvr
The sample is explained in the docs:
2. To create a DVR stream from FLME you need to either check DVR Auto Record (starts recording when you start streaming), or click Record anytime after you start streaming.
3. To subscribe to a stream use 0 for the start parameter -- 0 plays a recorded stream. DVR streams are just recorded streams.
HTH!
Jody
-
8. Success!
mrwizzer2 Jun 4, 2009 1:06 PM (in response to Jody Bleyle)Jody! You're my hero!
That did it! Where I was getting held up was my having DynamicStreamInstance.start = -1, instead of DynamicStreamInstanceStart = 0.
That tiny change made all the difference. Now the DVR functionality works like a DVR!
Thanks so much for your help, you're the greatest!
Mike

