Live Streaming from static video file

Hi everybody,
I'm using Amazon Cloud & Flash MMedia Server 4.5.
I would like to take one of my exits videos (a static file), and turn it into a live stream. People can view this video (synchronous). I'm using Flash Media Live Encoder 3.2, but it only capture video from devices as camera...
How I can do it?
Cheers.

Hi Huy,
Please find the zip attached where I have written the scripts for you to deploy on your local FMS server, in context of option 2:
You may like to follow these steps:
1. unzip the folder.
2. deploy FLVpublishonLoad (in case your recorded file is a FLV use case) on your lcoal server
3. deploy toPublish on your remote aws server
4. make sure to correct the path for aws in FLVPublishonLoad application @ line#19:
// Please mention your aws instance hostname instead of localhost , and application name ....
nc.connect("rtmp://localhost/toPublish");
5. go to admin console of your local development server and load the instance of FLVPublishonLoad as shown in the howtoLoadfromAdminConsole.png image attached for refrence purpose.
6. it will automatically connect to the "toPublish" app on your remote server and start publishing your local vod file as a live stream to your aws instance
7. start your subscriber app and subscribe to the stream you have used in FLVPublishonLoad app for Stream.get() method, see line#29 and the subscriberScreenExample.png file attached for the illustration purpose.
few points to note here:
1. I have removed the sample.flv and "sample1_1500kbps.f4v" for keeping the zip size lower.
2. You need to put your stream name at line#55 where you call mystream.play()
3. The stream name that you specify in Stream.get() will be used by subscribers.
4. if your use case is mp4, then please use "MP4PublishonLoad" instead of "FLVPublishonLoad" application.
=============
As I am unable to attach the files here therefore copy-pasting the code for you and others to be re-used:
=======
main.asc code for FLVPublishonLoad:
var nc;
var ns;
application.onAppStart = function()
    trace("hello client: ");
    publishIt();
function publishIt()
    trace("publishing");
    nc = new NetConnection();
    // Please mention your aws instance hostname instead of localhost , and application name ....
    nc.connect("rtmp://localhost/toPublish");
    nc.onStatus = function(info)
        trace(info.code);
    ns = new NetStream(nc);
    // Exact stream name available for subscribers .....
    mystream = Stream.get("myvodfile");
    mystream.onStatus = function(sinfo)
        trace("mystream.onStatus: "+sinfo.code);
        if(sinfo.code == "NetStream.Publish.Start")
            attach_retVal = ns.attach(mystream);
            if(attach_retVal==true)
                    trace("stream attach was successful ...");
                    startPublish();
            else
                trace("The attempt to attach stream source to NetStream failed");
    // Please put the stream name here inside double-quotes that you want to publish and is available there in streams/_definst_ folder ......
    mystream.play("sample",0,-1,true);
function startPublish()
    ns.publish(mystream.name,"live");
main.asc code for MP4PublishonLoad:
var nc;
var ns;
application.onAppStart = function()
    trace("hello client ");
    publishIt();
function publishIt()
    trace("publishing");
    nc = new NetConnection();
    // Please mention your aws instance hostname instead of localhost , and application name ....
    nc.connect("rtmp://localhost/toPublish");
    nc.onStatus = function(info)
        trace(info.code);
    ns = new NetStream(nc);
    // Exact stream name available for subscribers .....
    mystream = Stream.get("mp4:myvodfile.f4v");
    mystream.onStatus = function(sinfo)
        trace("mystream.onStatus: "+sinfo.code);
        if(sinfo.code == "NetStream.Publish.Start")
            attach_retVal = ns.attach(mystream);
            if(attach_retVal==true)
                    trace("stream attach was successful ...");
                    startPublish();
            else
                trace("The attempt to attach stream source to NetStream failed");
    // Please put the stream name that you want to publish and is available there in streams/_definst_ folder ......
    mystream.play("mp4:sample1_1500kbps.f4v",0,-1,true);
function startPublish()
    trace("#### " + mystream.name);
    ns.publish("mp4:" + mystream.name,"live");
main.asc code for "toPublish" app
=====================
application.onPublish = function(clientObj, streamObj)
    trace("published: " + streamObj.name);
=====================
Please revert back to me in case of further query.
Regards,
Shiraz Anwar

Similar Messages

  • Live Streaming from Video File

    Hi everyone,,, im newbie in programming streaming video with flash....ater reading documentations i tried the instructions on doc, i got a question that i've not been solved. How to make a "live streaming" from "video file". It likes a live streaming from camera but it uses video file  as the source.... many thanks

    Do you mean you have video file but you want to publish it as live stream , am i right? If yes following is the solution, but before that let me clarify you will need server to do it , i mean there is no way Flash client (i.e. .swf file running in Flash Player) can publish file from local disk.
    Now let me tell you how to do it from server:
    Place your video file under "streams" folder of your application i.e. say "myVideo.flv" under  <FMS root>/applications/myApp/streams/_definst_
    Now write following code in your main.asc file (this file would be under <FMS root>/applications/myApp )
    var mystream;
    application.onAppStart = function(){
         mystream = Stream.get("livestream");
         mystream.play("myVideo",0,-1,true);
    This will publish "myVideo" file as live stream under name of "livestream". Client would have to subscriber using NetStream and
    use ns.play("livestream",-1,-1)
    You might have to write some extra code if you want to loop same file else once play of recorded file gets over , live publish will automatically stop.
    let me know if this solves your problem

  • Running a live stream from an XML playlist

    I have just successfully installed Adobe FMS on my server.
    I would now like to know how to program a script to run a continuous live stream, of MP4 videos, from an XML playlist.
    Can anyone tell me how to do this? ...or provide me a good tutorial? (I am a complete newbie to ActionScript.)
    Thanks in advance...

    application.allowDebug = true;
    application.onAppStart = function(){
    this.userID =0;
    this.playObj = new Object();
    this.timObj = new Object();
    this.passCli = new Object();
    this.couObj = new Object();
    this.couObj.count = 1;
    application.so0 = SharedObject.get("so",false);
    this.dates = new Object;
    this.dates.dat0 = new Date().valueOf()+"a";
    this.dates.dat1 = new Date().valueOf()+"b";
    this.dates.dat2 = new Date().valueOf()+"c";
    this.dates.dat3 = new Date().valueOf()+"d";
    this.myStream = new Object;
    this.myStream.st = Stream.get (this.dates.dat0.toString());
    this.myStream.st1 = Stream.get (this.dates.dat1.toString());
    this.myStream.st2 = Stream.get (this.dates.dat2.toString());
    this.myStream.st3 = Stream.get (this.dates.dat3.toString());
    this.int0
    this.int1
    this.int2
    this.int3
    this.int4
    this.lock0=0;
    this.lock1=0;
    this.lock2=0;
    this.lock3=0;
    this.lock4=0;
    listen();
    function listen(){
    clearInterval(application.int3);
    application.int0 = setInterval(time,1000,application.myStream.st);
    application.myStream.st.onStatus = function(info){
    if(info.code == "NetStream.Play.Stop"&&application.lock0==0){
      trace("code0"+info.code);
      clearInterval(application.int0);
      application.timObj.tim = 0;
      application.int1 = setInterval(time,1000,application.myStream.st1);
      application.couObj.count = 2;
      playcurr(application.passCli.cli);
      switchStream(application.so0);
      listen1(application.myStream.st1);
      application.lock0=1;
      function listen1(mystreamst1){
      mystreamst1.onStatus = function(info){
    if(info.code == "NetStream.Play.Stop"&&application.lock1==0){
      trace("code1"+info.code);
      mystreamst1 = null;
      clearInterval(application.int1);
      application.timObj.tim = 0;
      application.int2 = setInterval(time,1000,application.myStream.st2);
      application.couObj.count = 3;
      playcurr(application.passCli.cli);
      switchStream(application.so0);
      listen2(application.myStream.st2);
      application.lock1=1
      function listen2 (mystream2){
    mystream2.onStatus = function(info){
    trace("code2"+info.code);
    if(info.code == "NetStream.Play.Stop"&&application.lock2==0){
      clearInterval(application.int2);
      application.mystream2 = null;
      application.timObj.tim = 0;
      //application.int3 = setInterval(time,1000,application.myStream.st3);
      application.couObj.count = 4;
      playcurr(application.passCli.cli);
      switchStream(application.so0);
         application.lock2=1;
      listen3(application.myStream.st3);
      function listen3(mystream3){
    mystream3.onStatus = function(info){
    trace("code3"+info.code);
    if(info.code == "NetStream.Play.Stop"&&application.lock3==0){
      trace("yes yes yes yes yes yes");
      clearInterval(application.int3);
      application.couObj.count = 1;
      mystream3 = null;
      application.timObj.tim = 0;
      //application.int4 = setInterval(time,1000,application.myStream.st);
      playcurr(application.passCli.cli);
      switchStream(application.so0);
      application.lock0=0;
      application.lock1=0;
      application.lock2=0;
      application.lock3=0;
    application.dates.dat0 = new Date().valueOf()+"e";
    application.dates.dat1 = new Date().valueOf()+"f";
    application.dates.dat2 = new Date().valueOf()+"g";
    application.dates.dat3 = new Date().valueOf()+"h";
    application.myStream.st = Stream.get (application.dates.dat0.toString());
    application.myStream.st1 = Stream.get (application.dates.dat1.toString());
    application.myStream.st2 = Stream.get (application.dates.dat2.toString());
    application.myStream.st3 = Stream.get (application.dates.dat3.toString());
    application.myStream.st.play(application.playObj.vid[0],0,-1,0);
    application.myStream.st1.play(application.playObj.vid[1],0,-1,0);
    application.myStream.st2.play(application.playObj.vid[2],0,-1,0);
    application.myStream.st3.play(application.playObj.vid[3],0,-1,0);
    listen();
    ///here next
    application.onConnect = function(client){
    application.acceptConnection(client);
    application.passCli.cli = client;
    client.call("setUserID",null,this.userID);
    this.userID++;
    if(application.clients.length == 1 ){
    videoArray = new Array();
    var playlist = new XML();
    playlist.ignoreWhite = true;
    //parse xml play list for individual elements
    playlist.onLoad = function( success ) {
    if(playlist.loaded == true) {
    if (playlist.firstChild.hasChildNodes()) {
    for (var aNode = playlist.firstChild.firstChild; aNode != null; aNode=aNode.nextSibling) {
    if (aNode.nodeType == 1) {
    //create array from parsed xml elements.
    videoArray[aNode.attributes.id] = aNode.attributes.name ;
    //pass array out of onload function
    application.playObj.vid = videoArray;
    application.myStream.st.play(application.playObj.vid[0],0,-1,0);
    application.myStream.st1.play(application.playObj.vid[1],0,-1,0);
    application.myStream.st2.play(application.playObj.vid[2],0,-1,0);
    application.myStream.st3.play(application.playObj.vid[3],0,-1,0);
    pass0(videoArray);
    //play first video on playlist
    playlist.load("http://www.privatechatnow.com/fmsuser/playlist.xml");
    }//end onetime if statement
    function pass0(videoArray){
      //receive array
      //play intial video
      if(application.clients.length == 1){
    // application.playObj.vid=videoArray;
    playcurr(application.passCli.cli);
    for (var key in application.playObj){
    trace(key + ": " + application.playObj[key]);
       //put currently playing videio into object
      //isolate playlist switching loop for each connected client
      //listen to currently playing stream with onStatus
      //change to next video in playlist
      //use onStatus and current duration and seek to scrub to cuurently playin video each time a user connects.
      //continue untill playlist is played then loop back to first video in playlist.
        //onConnect play currently playing video
    if (application.clients.length >1){
    playcurr(application.passCli.cli);
    //message client with currently play flv
    //message client when flv changes
    //message client with metadata
    application.onPublish = function(clientObject, streamObject){
    trace("Stream name :: "+streamObject.name);
    function switchStream(so0){
    if(application.couObj.count == 1){
        clength = application.timObj.tim-3;
    currlen = application.playObj.vid[0].length;
        nextlen = application.playObj.vid[1].length;
    so0.send("playSecond",application.playObj.vid[0],clength,currlen,nextlen);
    if(application.couObj.count == 2){
        clength = application.timObj.tim-3;
    currlen = application.playObj.vid[1].length;
    nextlen = application.playObj.vid[2].length;
        so0.send("playSecond",application.playObj.vid[1],clength,currlen,nextlen);
    if(application.couObj.count == 3){
    clength = application.timObj.tim-3;
    currlen = application.playObj.vid[2].length;
      nextlen = application.playObj.vid[3].length;
        so0.send("playSecond",application.playObj.vid[2],clength,currlen,nextlen);
    if(application.couObj.count == 4){
        clength = application.timObj.tim-3;
    currlen = application.playObj.vid[3].length;
      nextlen = application.playObj.vid[0].length;
        so0.send("playSecond",application.playObj.vid[3],clength,currlen,nextlen);
    function playcurr(client){
    trace("count = "+application.couObj.count.toString());
    if(application.couObj.count ==1){
        clength = application.timObj.tim-3;
    currlen = application.playObj.vid[0].length;
      nextlen = application.playObj.vid[1].length;
        client.call("playZero",null,application.playObj.vid[0],clength,currlen,nextlen); 
    if(application.couObj.count ==2){
        clength = application.timObj.tim-3;
    currlen = application.playObj.vid[1].length;
      nextlen = application.playObj.vid[2].length;
        client.call("playZero",null,application.playObj.vid[1],clength,currlen,nextlen); 
    if(application.couObj.count ==3){
        clength = application.timObj.tim-3;
    currlen = application.playObj.vid[2].length;
      nextlen = application.playObj.vid[3].length;
        client.call("playZero",null,application.playObj.vid[2],clength,currlen,nextlen); 
    if(application.couObj.count ==4){
        clength = application.timObj.tim-3;
    currlen = application.playObj.vid[3].length;
      nextlen = application.playObj.vid[0].length;
        client.call("playZero",null,application.playObj.vid[3],clength,currlen,nextlen); 
    application.onDisconnect = function(oldclient){
    if(application.clients.length ==0){
    this.userID--;
    function time(myStream){
    application.timObj.tim = myStream.time;

  • IPhone 4S keeps playing audio from a video file that is no longer on my phone.

    If I'm listening to music and try to change tracks or pause with the earbud buttons the music fades out and starts playing audio from a video file. It will only play about 3-4 seconds and then stop. This also will happen when double clicking the home button to try and change tracks. When I do that the track skipping buttons won't work and there's no title for the short bit of audio that plays. The only way to get music to start playing again is to go into music and press play again. The music I had been listening to is sitting there paused. The audio from the mystery video file still sometimes plays even when you're in music and the only way you would know is the little play icon at the top right part of the screen. I have removed every video off of my phone and it still does it. This is really frustrating.

    Sounds like a bad battery.  You'll need to bring the phone into Apple for evaluation.
    I'm sure you've been using your phone as designed and properly backing up your data, so you should have minimal, if any data loss should the phone need to be replaced.

  • Downloading audio from a video file from iTunes?

    I have a 40G 4th Gen click wheel iPod (no color or video). Is there a way to download just the audio from a video file that I have in iTunes?

    I use Steve's method all of the time, and edit the Audio output in Adobe Audition. You will want to Export/Share to PCM/WAV @ 48KHz 16-bit, and keep that format both going and coming back into PrE. Remember that you will be working with an Audio file, that is the full (or almost) Duration of the Timeline. When you Import that edited Audio file, give the program a few moments to Conform that newly Imported PCM/WAV for editing. I suggest not touching the computer, until Conforming has completed 100%, and the little progress bar in the lower-right of the GUI has disappeared. If the Imported Audio file is short, and your computer is fast, you might not even see that progress bar, but the Conforming has taken place, just the same.
    I like to keep the original Audio on its Audio Track(s), and just use Window>Audio Mixer to Mute that/those Track(s), leaving only my edited Audio on its own Track un-Muted. This is a "fail-safe," just in case I change my mind along the way, and wish to revert to the original Audio for some reason. It is much easier to Mute-Unmute, than to gather up all of that original Audio again.
    Good luck, and happy editing,
    Hunt

  • Can I  rip the audio from a video file?

    I have a video file with a band singing on it. I have an ipod nano, so I can't import the video with the singing onto my ipod. Is there anyway to rip the audio from the video file and put that onto my ipod?
    -Thanks

    Open the video in Quicktime Player.
    Select the Export menu item.
    Change the Export type to "Sound to Wave".
    Save the WAV file somewhere with the default settings.
    Load the WAV file into iTunes and use iTunes to convert it to AAC for the Nano.

  • How can i make a picture from a video file with final cut pro x?

    how can i make a picture from a video file with final cut pro x?

    Go to the "share" menu, select "save current frame"

  • I am not able to burn a cd from a video file.

    I Mac OSXIC .6X
    I am not able to burn a cd from a video file. Here is the message that I get :
    " the disc can't be burned because the Device failed to calibrate the laser power level for this media ."
    Can anybody help?
    Thanks .

    Try using a different brand of CD.......
    Failing that...
    Your CD Writer may need servicing/replacing....

  • Could you play a live stream from safari to apple tv without going through itunes?

    could you play a live stream from safari to apple tv without going through itunes?

    There is no way to stream Safari content, with or without iTunes, to your AppleTV.
    The only way would be to use a mirroring feature given that you have an AppleTV 2nd gen or newer and a 2011 or newer MBP running mountain lion.
    If not, some third party software like AirParrot can also gives you way to mirror your MBP display on the TV.

  • How do i export a single jpeg frame from a video file in final cut x

    how do i export a single jpeg frame from a video file in final cut x

    You can also use the 3 finger method of COMMAND+SHIFT+4, then drag across what you want to copy from the image. That will show up on your desktop, which then you can edit using Photoshop, if you want too.
    You can then change the file format from a PNG to either a .JPG or TIFF or even a Photoshop image.
    Make sure, you have stopped the playback, to what you want to save as a still.
    Either method works, to make a still image from video.

  • Problem playing remote live stream from FMS

    Hello all,
    I'm having problems playing remote live streams from FMS (server-side) that I can play with any other player (client-side)
    Example of server-side application which plays a remote live stream:
    nc = new NetConnection();
    nc.connect("rtmp://remoteserver/live");
    stream = Stream.get("localStream");
    stream.play("remoteStream.flv", -1, -1, true, nc);
    This code works only sometimes.
    Most of the times, FMS is able to connect to remote string and the localStream dispatches events:
       NetStream.Publish.Strart
       NetStream.Play.Reset
    In this case, FMS is publishing the local stream but it is not playing the remoteStrem on it.
    The rest of the times, localStream dispatches events:
       NetStream.Publish.Strart
       NetStream.Play.Reset
       NetStream.Play.Start
       NetStream.Data.Start
    In this case FMS plays the remoteStream correctly.
    Any hint to solve this issue?
    Regards.

    Thanks, I tried your code and it works when playing a remote live stream on another FMS.
    But the remote live stream is not on a FMS but on a Wowza Server which re-streams an RTSP stream over RTMP.
    With this code:
    var nc;
    var myStream;
    application.onAppStart = function(){
         nc = new NetConnection();
         myStream = Stream.get("localstream");
         myStream.onStatus= function(info){
               trace(info.code);
         nc.onStatus = function(info){
               trace (info.code);
               if(info.code == "NetConnection.Connect.Success" ){
                    myStream.play("remoteLive.sdp", -1, -1, true, nc);
         nc.connect("rtmp://remoteServer/live");
    Every live stream player I tried was able to play the remote stream "remoteLive.sdp", but FMS play it only sometimes. This is the output log of the FMS application:
    NetConnection.Connect.Success
    NetStream.Publish.Start
    NetStream.Play.Reset        <--------------------------------- Stuck there, stream won't play
    Unloaded application instance wowza4/_definst_ <--- Reload app
    NetConnection.Connect.Success
    NetStream.Publish.Start
    NetStream.Play.Reset        <--------------------------------- Stuck there, stream won't play
    Unloaded application instance wowza4/_definst_ <--- Reload app
    NetConnection.Connect.Success
    NetStream.Publish.Start
    NetStream.Play.Reset
    NetStream.Play.Start         <--------------------------------- Stream is playing just fine
    NetStream.Data.Start
    Unloaded application instance wowza4/_definst_ <--- Reload app
    NetConnection.Connect.Success
    NetStream.Publish.Start
    NetStream.Play.Reset       <--------------------------------- Stuck there, stream won't play
    Any idea? Why FMS won't play it everytime?
    Regards

  • How can I save to computer a live streaming from Ustream

    Hi
    That's the question.
    I want to save a live streaming from Ustream.
    any help?
    tnx.

    Install Livestramer (with all python dependencies)
    https://wiki.archlinux.org/index.php/Livestreamer
    livestreamer -p vlc https://www.ustream.tv/embed/9979779
    Found matching plugin ustreamtv for URL https://www.ustream.tv/embed/9979779
    Available streams: 240p, 240p_alt_akamai, 360p, 360p_alt_akamai, 480p, 480p_alt_akamai, 720p+ (best), 720p+_alt_akamai, mobile_240p (worst), mobile_360p, mobile_480p
    livestreamer -p vlc https://www.ustream.tv/embed/9979779 720p+
    same with mpv-Player

  • About Flash P2P live streaming from non-webcam sources

    Hello, I am a university student. Our lab is attempting to work on a p2p live streaming using flash p2p features. The media source is not from a webcam but a file from a certain server, which is not directly supported by any of the 4 methods flash player offers(posting, direct routing , object replication,and multicast.) As some of the forum threads mentioned, our method is to use NetStream.publish() a stream and use send("callbackname", data)  to all subscribers that have joined in a NetGroup. So we can use p2p transmission. Now here are our questions:
    1. We know from MAX 2009 that flash p2p camera video multicasting implements pull-push mechanism inside which makes full use of p2p features like buffer map exchange. If we use NetStream.send() API to send non-webcam source data, will it also make use of this pull-push mechanism to spread data among all peers(subscribers) with proper data exchange?
    or more detailedly,
    I saw the P2P Gaming Libs at flashrealtime.com. It uses DIRECT_CONNECTIONS when creating publish-used NetStream in order to send data with lowest latency. My question is if I do not use DIRECT_CONNECTIONS, than when the NetGroup grow large (1000), will those peers that are not direct neighbors to the publisher in the same group relay data to each other using pull-push via buffer map?
    2. I have written a sample app and use send() to deliver data only (NetStream.bufferTime = 0) without camera video and audio. When the publisher sends the data  in a "for()" stantence for 20 times, the subscribers can only receive about 8 of them. But when I set a timer and periodically send them(e.g., 500ms), the subscribers can receive them correctly. My questions are: Is the packet loss caused by UDP unreliability? Can this be solved by setting the NetStream.dataReliable = ture? Can this totally be solved by setting a timer? How to set the delaytime property in timer? Are all data sent are orderedly received?
    I'm very appreciated if you can answer my questions? thanks.

    1. NetStream.send() data is delivered in the order it was sent, whether in client-server, DIRECT_CONNECTIONS, or multicast mode.
    2. the lowest latency will be achieved with DIRECT_CONNECTIONS.  however, that isn't scalable to large numbers of recipients.  the P2P multicast system trades low latency for scalability.
    3. there are no plans to support a natural NetStream streaming source that's not a camera/microphone.  Flash Media Server can perform that function.
    4. you should never need to implement "bitmap exchange"; the object replication system handles all the communication needed to accomplish its function. typically you will divide a file into segments, giving each one an index number. object replication uses ranges internally, so the index numbers should be contiguous.  nodes that have indices use NetGroup.addHaveObjects().  nodes that want indices they don't have use NetGroup.addWantObjects().  nodes that have objects will send them to nodes that want the objects.  when a node receives an object, it's automatically removed from its "want" set; once the node decides the object is acceptable, it adds it to its "have" set, at which point it can answer requests from other nodes who still "want" it.  eventually every node will have all the pieces and not want any.  for an example, please see Tom Krcha's articles on using object replication:
       http://www.flashrealtime.com/file-share-object-replication-flash-p2p/
       http://www.flashrealtime.com/video-on-demand-over-p2p-in-flash-player-101-with-object-repl ication/
    5. please see Tom Krcha's articles.  for VOD you will probably want to use the "LOWEST_FIRST" replication strategy, as that may allow you to start playing earlier.  for general file replication you'll get better sharing if you use RAREST_FIRST.

  • Live Streaming H.264 Video on iOS using AIR

    We would like to build an AIR app that plays Streaming H.264 Live/VOD videos that would work through AIR on the iOS platform.
    I've seem some traffic on the forums that RTMP will work to iOS - but additionally heard that video applications that use RTMP streams will be rejected by the Apple App store.
    I have seen that progressive H.264 will work - but that's not streaming or live.
    HLS would work if we use the StageWebView object; however, that provides us little control/monitoring over the video inside of it; and it's not "really" integrated as a video player.
    For OSMF there seems to be a 3rd-Party plugin which will allow OSMF to read HLS streams - but (from what I've heard) is incomplete because it doesn't play adaptive nor is it completely updated for OSMF 1.6.1.
    I would love to be wrong here - but is there currently a way to play a Streamed H.264 Video to iOS that is non-RTMP?
    I've seem little information as to if F4M streamed files played via OSMF will work on iOS.
    Thanks for the info in advance.
    -Will

    I pasted a stripped down version of my test app below, that attempts to playback an m3u8 file. This works for me on an IPad2.
    Remember to test on the device itself otherwise wont work.
    Dependencies:
    1. Air 3.1
    2. OSMF 1.6.1
    3. Flex SDK 4.6.0
    renderMode="direct"
    HTH
    - Abey
    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
                   xmlns:mx="library://ns.adobe.com/flex/mx"
                   xmlns:s="library://ns.adobe.com/flex/spark"
                   backgroundAlpha="0"
                   backgroundColor="#000000"
                   addedToStage="onViewActivate(event)"
                   applicationDPI="160">
        <fx:Script>
            <![CDATA[
                private var nc:NetConnection;
                private var ns:NetStream;
                private var video:Video;
                private var currentVidUrl:String;
                protected function onViewActivate(event:Event):void
                    nc = new NetConnection();
                    nc.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus, false, 0, true);
                    nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityErrorHandler, false, 0, true);
                    currentVidUrl = "http://fmsserver/hls-vod/sample.mp4.m3u8";
                    nc.connect(null);
                private function onNetStatus(evt:NetStatusEvent):void
                    switch (evt.info.code) {
                        case "NetConnection.Connect.Success":
                            ns = new NetStream(nc);
                            var client:Object = {};
                            client.onMetaData = onMetaData;
                            client.onCuePoint = onCuePoint;
                            client.onBWDone = onBWDone();
                            ns.client = client;
                            nc.client = client;
                            var v:Vector.<StageVideo> = stage.stageVideos;
                            if (v.length >= 1) {
                                var stageVideo:StageVideo = v[0];
                                stageVideo.viewPort = new Rectangle(0, 0, mediaContainer.width, mediaContainer.height);
                                stageVideo.attachNetStream(ns);
                            else {
                                video = new Video();
                                video.width = mediaContainer.width;
                                video.height = mediaContainer.height;
                                mediaContainer.addChildAt(video,0);
                                video.attachNetStream(ns);
                            if (currentVidUrl) {
                                ns.play(currentVidUrl);
                            break;
                        case "NetStream.Publish.BadName":
                            break;
                        default:
                            break;
                private function onSecurityErrorHandler(event:SecurityErrorEvent):void
                protected function onMetaData(item:Object):void
                protected function onCuePoint(item:Object):void
                protected function onBWDone():void
            ]]>
        </fx:Script>
        <mx:UIComponent id="mediaContainer"
                        height="100%"
                        width="100%"/>
    </s:Application>

  • Live streaming from FMS3

    Hi,
    I am newbie to flash media server,i want to know how to
    stream the live content as below,
    A->Server,B->System where i am getting the live
    feed,C->System where user wants to see the live feed,
    System is getting the live feed from the camera..it will
    encode that and give out the live feed to FMS i.e. system A in the
    from of a .sdp(session description protocol)(encoded content is in
    264(video) and aac(audio))..so in FMS server i have sdp file..when
    i open it in FMS Server(system A) in VLC player it starts
    playing.Now i want FMS to use this and stream the content that it
    is getting from system B..to system C..(n number of clients)....any
    one knows whether i can directly use sdp for streaming in
    FMS.

    Haven't understand your situation completely. But FMS3 takes
    live input only in form of RTMP family (RTMP,RTMPE, RTMPTE, RTMP
    etc) of protocols.
    I hope it helps.

Maybe you are looking for