Embedding JW Player and using with FMS 4.5 livestreaming
Hey guys, has anyone tried using the newly released FMS 4.5 with livestreaming via html5 fallback yet? Adobe is slow to release documentation (or very confusing info) on how to do it. A few months ago I ran across a blog post that discusses this using Wowza, and was hoping I could adapt that sample code to use with FMS 4.5.
Here is the sample code: bc.. <h2>RTMP + iOS Streaming</h2>
<div id="player">You need Flash or iOS to play this stream</div>
This worked at the time in my testing..now that FMS 4.5 has come out I'm trying to adapt it to work and so far its mixed results. The flash portion doesnt work at all, IOS loads the video and plays but the experience is quite poor (which could be due to using a virtual test server with low hardware). Here is what I have changed this code too which supposedly is what adobe is saying in the docs needs to be in order to work via psuedo html live streaming..
I was looking at that page a while back..that will work when using standard rtmp, but now Adobe FMS 4.5 wants http live psuedo streaming. So its possible that the call to the 'streamer' or 'provider' option needs to become a standard http link? That didn't work at any rate.
The current setup will not work at all, since you are trying to load an HTTP Dynamic Streaming (HDS) manifest into JW Player. JW Player does not support this format. It only supports RTMP and HTTP Live Streaming (HLS). Both are supported by FMS 4.5 as well.
Your initial setup at the top of this thread seems correct – assuming the URLs are indeed valid. I was able to get an FMS instance running and use these options to smoothly stream to both Flash and iOS. I think the resources are indeed an issue, since FMS is very hungry for those.
*Question: How do I adapt this for HLS? I am at a loss.* Am I supposed to create an m3u8 file, and where do I put it, and how do I call it?
Thanks!
P.S. For the curious (and because it took me a long time to learn this myself), I use Flash Media Live Encoder for my encoding and I do multi-bitrate streaming as follows. In FMLE, you'll see that each one of the Bit Rate settings on the lower left is represented by a number (1, 2 or 3). These will be reflected with a variable, %i. Check each of these boxes and set them to your desired bit rates (now *that* you'll find plenty of opinions about on the internets).
On the right, you'll have to change your stream name. In my old FMS 3.5 days, my single bit rate stream name was "channel". But now I'm adding my variable to it. So it's called "channel%i". Using the playlist, JWPlayer will determine the best bit rate for your connection and so "channel%i" becomes "channel1", or "channel2" or "channel3" to correspond to the bit rates you defined in FMLE.
In FMS 4.5, it gets a touch messier. You still check your boxes and define your bit rates. The messy part is the stream name. It's already a jumble of characters because you want to do HLS. So you may have a stream name like "livestream?adbe-live-event=liveevent". Truth is, "livestream" can be "channel" or anything else. That's a single bit rate stream. But we still have our %i. Where does that go? Well, if you add your %i, it looks like this: livestream%i?adbe-live-event=liveevent. Everything after the question mark is necessary for HLS but is disregarded by RTMP. So the %i goes where it always goes, right after your stream name.
I hope that helps those of you still a little confused by this.
Thanks for all the grunt work. It’s indeed quite confusing at present, with the different streaming formats and rendering modes types involved. Hopefully, we’ll be able to make this a lot easier soon.