Multiple RTMP sources streaming to FMS without stop?

I have some .mov files want to stream to Flash media server by ffmpeg.
i have already tried to stream a single .mov by FFMPEG command in terminal and it works, the FMS can display the thing i streaming in live.
ffmpeg -re -i file1.mov -vcodec libx264 -f flv rtmp://localhost/livepkgr/livestream
Now i want to stream multiple files as one source, i tried to use above command one by one,
but it seems Flash media server stop the streaming when file1 is finished, then start the stream with file2.
It makes the stream player stopped when file1 is finish, and i have to refresh the web page in order to continue on file2.
i am calling the FFMPEG command by a C program in linux,
i wonder is there any method that i can prevent the FMS stopped when i switch the file source in FFMPEG?
or is that possible to let FFMPEG constantly deliver the stream by multiple files source without stopped when a file finish?
Sorry have for asking a lot recently... but this is urgent to me... thank you

i am trying to prevent fms pause the publishing the video after publisher stop.
i tried to comment out all the codes in this 3 method in main.asc 
application.onUnpublish = function(clientObj, streamObj)
Client.prototype.FCUnpublish = function( streamname )
Client.prototype.releaseStream = function(streamname)
but still when publisher stop, the client side player stop imeediately.
Also i am can fms receive the stream as soon as possible, and let the video play until the end?
for example
i have a video have 5mins length, my publisher software can fast enough deliver the video
within 30 secs, so that fms should already have 5mins content for broadcasting, can fms
keep on the broadcasting even the connection from publisher to fms is finish?

Similar Messages

  • When FMLE stopped,Remote RTMP stream to FMS 4.5 with rtmfp?

    When FMLE stopped,Remote RTMP stream to FMS 4.5 with rtmfp?
    edit  "applications/multicast/main.asc" ?
    HELP ME !!! THANKS!!!
    * File: main.asc
    * The server-side portion of the multicast sample application.
    * This app accepts publish and unpublish requests from FMLE, and republishes
    * the live stream from FMLE into a target Flash Group.
    // General Constants
    // "Constants" representing multicast event types.
    var TYPE_FUSION = 1;
    var TYPE_IP = 2;
    var TYPE_P2P = 3;
    // StreamContext Description, Constants and Functions
    * Type: StreamContext
    * This application tracks the context for live streams published to the server
    * that are being republished into a Flash Group. The StreamContext "type" used
    * for this is just an Object containing the following members:
    *   client         - The encoding/publishing client.
    *   streamName     - The source Stream name as published by the client.
    *   type           - The multicast event type.
    *   groupspec      - The groupspec identifying the Flash Group and capabilities.
    *   address        - IP multicast address (optional for pure P2P events).
    *   netConnection  - A loopback NetConnection used for the mcastNetStream.
    *   mcastNetStream - The NetStream used to republish the source Stream into
    *                    the Flash Group.
    *   netGroup       - An (optional) NetGroup handle for the target Group.
    *                    Only present for Fusion or P2P events.
    *   state          - One of the state constants defined immediately below
    *                    this comment.
    var STATE_INIT            = 0; // Starting state for a StreamContext.
    var STATE_CONNECTING      = 1; // Establishing loop-back connection.
    var STATE_CONNECTED       = 2; // Connection established.
    var STATE_PUBLISH_PENDING = 3; // Attempting to publish.
    var STATE_REPUBLISHING    = 4; // Actively republishing to multicast.
    var STATE_UNPUBLISHING    = 5; // Shutting down multicast republish.
    var STATE_UNPUBLISHED     = 6; // Unpublished successfully.
    var STATE_DISCONNECTING   = 7; // Shutting down loopback connection.
    var STATE_DISCONNECTED    = 8; // Connection shut down. Done.
    * Registers a source Stream published by the specified client, along with the
    * context for the multicast event, as a StreamContext Object.
    * @param client - The Client publishing the stream.
    * @param streamName - The source Stream name.
    * @param params - The parameters resulting from parsing the source Stream's
    *                 query string.
    * @return The new StreamContext Object for the registered Stream.
    function registerStream(client, streamName, params)
        var streamContext = { "client": client,
                              "streamName": streamName,
                              "type": params["fms.multicast.type"],
                              "groupspec": params["fms.multicast.groupspec"] };
    if (params["fms.multicast.interface"])
      streamContext["interfaceAddress"] = params["fms.multicast.interface"];
        if (params["fms.multicast.address"])
            streamContext["address"] = params["fms.multicast.address"],
        streamContext.state = STATE_INIT;
        updateStreamContextLookups(streamContext);
        trace("Registered multicast context for source stream: " + streamName);
        return streamContext;
    * Updates the indexed lookups installed for the passed StreamContext Object
    * with the application.
    * @param streamContext - The StreamContext Object to (re)index.
    function updateStreamContextLookups(streamContext)
        application.streamTable[streamContext.streamName] = streamContext;
        if (streamContext.netConnection)
            application.netConnTable[streamContext.netConnection] = streamContext;
        if (streamContext.mcastNetStream)
            application.mcastNetStreamTable[streamContext.mcastNetStream] = streamContext;
        if (streamContext.netGroup)
            application.netGroupTable[streamContext.netGroup] = streamContext;
    * Provides access to the StreamContext Object for a registered source Stream
    * by name.
    * @param streamName - A registered source Stream name.
    * @return The associated StreamContext Object; undefined if the source Stream
    *         name is not registered.
    function getStreamContextForSourceStream(streamName)
        return application.streamTable[streamName];
    * Provides access to the StreamContext Object for a given server-side
    * NetConnection hosting a multicast NetStream.
    * @param netConnection - A server-side NetConnection.
    * @return The associated StreamContext Object; undefined if the passed
    *         NetConnection is not indexed to a StreamContext.
    function getStreamContextForNetConnection(netConnection)
        return application.netConnTable[netConnection];
    * Provides access to the StreamContext Object for a given multicast NetStream.
    * @param netStream - A multicast NetStream.
    * @return The associated StreamContext Object; undefined if the passed
    *         NetStream is not indexed to a StreamContext.
    function getStreamContextForMulticastNetStream(netStream)
        return application.mcastNetStreamTable[netStream];
    * Provides access to the StreamContext Object for a given NetGroup associated
    * with a multicast NetStream.
    * @param netGroup - A NetGroup.
    * @return The associated StreamContext Object; undefined if the passed
    *         NetGroup is not indexed to a StreamContext.
    function getStreamContextForNetGroup(netGroup)
        return application.netGroupTable[netGroup];
    * Unregisters the StreamContext from the application.
    * @param streamContext - The StreamContext Object to unregister.
    function unregisterStreamContext(streamContext)
        if (streamContext.netConnection)
            delete application.netConnTable[streamContext.netConnection];
        if (streamContext.mcastNetStream)
            delete application.mcastNetStreamTable[streamContext.mcastNetStream];
        if (streamContext.netGroup)
            delete application.netGroupTable[streamContext.netGroup];
        trace("Unregistered multicast context for source stream: " +
              streamContext.streamName);
    // Application callback functions
    * Initializes global StreamContext lookup tables.
    application.onAppStart = function()
        application.streamTable = {};
        application.netConnTable = {};
        application.mcastNetStreamTable = {};
        application.netGroupTable = {};
    * Handles a publish event for the application by validating the request
    * and bridging the published stream into a target Flash Group. Invalid
    * publish requests are ignored and the publishing client's connection
    * is closed.
    * @param client - The publishing client.
    * @param stream - The published stream.
    application.onPublish = function(client, stream)
        //trace("Handling publish request for source stream: " + stream.name);
        var params = parseQueryString(stream.publishQueryString);
        if (!validateStreamParams(params))
            application.disconnect(client);
            return;
        var prevContext = getStreamContextForSourceStream(stream.name);
        if (prevContext)
            forceCloseStreamContext(prevContext);
        // Register source Stream, and kick off the async process that will
        // eventually wire-up the associated multicast NetStream.
        var streamContext = registerStream(client, stream.name, params);
        openMulticastConnection(streamContext);
    * Handles an unpublish event for the application by shutting down
    * any associated multicast NetStream.
    * @param client - The unpublishing client.
    * @param stream - The source stream being unpublished.
    application.onUnpublish = function(client, stream)
        trace("Handling unpublish request for source stream: " + stream.name);
        var streamContext = getStreamContextForSourceStream(stream.name);
        if (streamContext && (streamContext.state <= STATE_REPUBLISHING))
            destroyStreamContext(streamContext);
    // Callback functions for NetConnection and multicast NetStream/NetGroup wiring.
    * First step in setting up a republished multicast NetStream; open the loopback
    * connection it requires.
    * @param streamContext - The StreamContext Object for the publish event.
    function openMulticastConnection(streamContext)
        var nc = new NetConnection();
        nc.onStatus = netConnectionStatusHandler;
        streamContext.netConnection = nc;
        updateStreamContextLookups(streamContext);
        streamContext.state = STATE_CONNECTING;
        nc.connect(resetUriProtocol(streamContext.client.uri, "rtmfp"));
    * Status event handler for the loopback NetConnection used by the multicast
    * NetStream. Advances setup upon successful connection, or triggers or advances
    * tear-down as a result of connection loss or an unpublish and clean shutdown.
    * @param info - The status info Object.
    function netConnectionStatusHandler(info)
        var streamContext = getStreamContextForNetConnection(this);
        trace("Multicast NetConnection Status: " + info.code +
              (streamContext ? ", Source stream: " + streamContext.streamName : ", Not associated with a source stream."));
        if (streamContext)
            switch (info.code)
            case "NetConnection.Connect.Success":
                streamContext.state = STATE_CONNECTED;
                // If event type is Fusion or P2p, wire up a NetGroup for neighbor
                // bootstrapping and maintenance ahead of (re)publishing the stream.
                var type = streamContext.type;
                if (type == TYPE_FUSION || type == TYPE_P2P)
                    initNetGroup(streamContext);
                else
                    initMulticastNetStream(streamContext);
                break;
            case "NetConnection.Connect.Failed":
            case "NetConnection.Connect.Rejected":
            case "NetConnection.Connect.AppShutdown":
                trace("MULTICAST PUBLISH ERROR: Failed to establish server-side NetConnection for use by multicast NetStream. " +
                      "Status code: " + info.code + ", description: " + info.description + ", Source stream: " +
                      streamContext.streamName);
                streamContext.state = STATE_DISCONNECTED;
                destroyStreamContext(streamContext);
                break;
            case "NetConnection.Connect.Closed":
                if (streamContext.state < STATE_DISCONNECTING)
                    trace("MULTICAST PUBLISH ERROR: Unexpected server-side NetConnection close. " +
                         "Status code: " + info.code + ", description: " + info.description + ", Source stream: " +
                         streamContext.streamName);
                streamContext.state = STATE_DISCONNECTED;
                destroyStreamContext(streamContext);
                break;
            default:
                // Ignore.
    * Initializes the multicast NetGroup following a successful connection of its
    * underlying loopback NetConnection. This hook is optional and only runs for
    * event types of Fusion and pure P2P.
    * @param streamContext - The StreamContext Object for the multicast publish.
    function initNetGroup(streamContext)
        var ng = null;
        try
            ng = new NetGroup(streamContext.netConnection, streamContext.groupspec);
        catch (e)
            trace("MULTICAST PUBLISH ERROR: Failed to construct NetGroup. Error: "
                  + e.name + (e.message ? " " + e.message : "") +
                  ", Source stream: " + streamContext.streamName);
            destroyStreamContext(streamContext);
            return;
        ng.onStatus = netGroupStatusHandler;
        streamContext.netGroup = ng;
        updateStreamContextLookups(streamContext);
    * Status event handler for the multicast NetGroup. Advances to initializing the
    * multicast NetStream upon successful NetGroup connect. Otherwise, triggers
    * shut down.
    * @param info - The status info Object.
    function netGroupStatusHandler(info)
        var streamContext = getStreamContextForNetGroup(this);
        trace("Multicast NetGroup Status: " + info.code +
              (streamContext ? ", Source stream: " + streamContext.streamName : ", Not associated with a source stream."))
        if (streamContext)
            switch (info.code)
            case "NetGroup.Connect.Success":
                initMulticastNetStream(streamContext);
                break;
            case "NetGroup.Connect.Failed":
            case "NetGroup.Connect.Rejected":
                trace("MULTICAST PUBLISH ERROR: Failed to connect multicast NetGroup. " +
                      "Status code: " + info.code + ", description: " + info.description +
                      ", Source stream: " + streamContext.streamName);
                destroyStreamContext(streamContext);
                break;
            case "NetGroup.MulticastStream.UnpublishNotify":
                // At this point, multicast publishers will be notified;
                // continue shut down.
                destroyStreamContext(streamContext);
                break;
            default:
                // Ignore.
    * Initializes the multicast NetStream following a successful connection of its
    * underlying loopback NetConnection.
    * @param streamContext - The StreamContext Object for the multicast publish.
    function initMulticastNetStream(streamContext)
        var ns = null;
        try
            ns = new NetStream(streamContext.netConnection, streamContext.groupspec);
        catch (e)
            trace("MULTICAST PUBLISH ERROR: Failed to construct multicast NetStream. Error: " +
                  e.name + (e.message ? " " + e.message : "") +
                  ", Source stream: " + streamContext.streamName);
            destroyStreamContext(streamContext);
            return;
        var type = streamContext.type;
        if (type == TYPE_FUSION || type == TYPE_IP)
      var iAddr = (streamContext.interfaceAddress) ? streamContext.interfaceAddress : null;
            try
                trace("Multicast NetStream will publish to IP address: " + streamContext.address +
          " on interface address: " + ((iAddr) ? iAddr : "default") +
                      ", Source stream: " + streamContext.streamName);
                ns.setIPMulticastPublishAddress(streamContext.address, iAddr);
            catch (e2)
                trace("MULTICAST PUBLISH ERROR: Failed to assign IP multicast address and port for publishing. Address: "
                      + streamContext.address + " on interface address: " + ((iAddr) ? iAddr : "default") +
          ", Source stream: " + streamContext.streamName);
                destroyStreamContext(streamContext);
                return;
        ns.onStatus = netStreamStatusHandler;
        streamContext.mcastNetStream = ns;
        updateStreamContextLookups(streamContext);
        streamContext.state = STATE_PUBLISH_PENDING;
    * Status event handler for the multicast NetStream. Advances state upon successful
    * connect and publish, or upon successful unpublish. Triggers tear-down if we fail
    * to attach to a source Stream to republish.
    * @param info - The status info Object.
    function netStreamStatusHandler(info)
        var streamContext = getStreamContextForMulticastNetStream(this);
        trace("Multicast NetStream Status: " + info.code +
              (streamContext ? ", Source stream: " + streamContext.streamName : ", Not associated with a source stream."))
        if (streamContext)
            switch (info.code)
            case "NetStream.Connect.Success":
                if (!this.attach(Stream.get(streamContext.streamName)))
                    trace("MULTICAST PUBLISH ERROR: Failed to attach multicast NetStream to source. Source stream: " +
                          streamContext.streamName);
                    destroyStreamContext(streamContext);
        //var stream;
                //stream = Stream.get("liveStream");
                    //return;
                }else{
                this.publish(streamContext.streamName, "live");
                break;
            case "NetStream.Publish.Start":
                streamContext.state = STATE_REPUBLISHING;
                break;
            case "NetStream.Unpublish.Success":
                streamContext.state = STATE_UNPUBLISHED;
                // Wait for unpublish notify event if the context has a NetGroup;
                // otherwise continue shut down now.
                if (!streamContext.netGroup)
                    destroyStreamContext(streamContext);
                    break;
            default:
                // Ignore.
    * The common tear-down hook. Other functions that manage or shut down
    * the StreamContext Object delegate to this function upon detecting a fatal
    * error or during shut down.
    * @param streamContext - The StreamContext Object for the source Stream and
    *                        (potentially wired-up) multicast NetStream.
    function destroyStreamContext(streamContext)
        // Unregister by Stream name immediately; lookups by NetConnection, NetGroup
        // and multicast NetStream remain in place until tear-down is complete.
        delete application.streamTable[streamContext.streamName];
        switch (streamContext.state)
        case STATE_REPUBLISHING:
            streamContext.mcastNetStream.attach(false);
            streamContext.mcastNetStream.publish(false);
            streamContext.state = STATE_UNPUBLISHING;
            return;
        case STATE_CONNECTING:
        case STATE_CONNECTED:
        case STATE_PUBLISH_PENDING:
        case STATE_UNPUBLISHED:
            // Delete status handler callbacks and cleanup in case we arrived here
            // as a result of a force close.
            if (streamContext.netGroup)
                delete streamContext.netGroup.onStatus;
            if (streamContext.mcastNetStream)
                streamContext.mcastNetStream.attach(false);
                delete streamContext.mcastNetStream.onStatus;
            streamContext.netConnection.close();
            streamContext.state = STATE_DISCONNECTING;
            return;
        default:
            // Fall-through.
        // At this point, we either never got to the republishing state or we've
        // proceeded through the clean shut down steps above. Everything for this
        // StreamContext can go away.
        unregisterStreamContext(streamContext);
    * Utility function used to force close a StreamContext in the event that we
    * start handling a republish of a Source stream before the context for its
    * prior incarnation has been torn down.
    * @param streamContext - The StreamContext Object for the source Stream.
    function forceCloseStreamContext(streamContext)
        trace("Force closing previous multicast context for source stream: " + stream.name);
        prevContext.state = STATE_UNPUBLISHED;
        destroyStreamContext(prevContext);
    // Client callback functions
    * A no-op. Answers the RPC in the fashion expected by encoders, but the real
    * work happens in application.onPublish.
    * @param streamName - The name of the stream being published.
    Client.prototype.FCPublish = function(streamName)
        this.call("onFCPublish",
                  null,
                  {code:"NetStream.Publish.Start", description:streamName});
    * A no-op. Answers the RPC in the fashion expected by encoders, but the real
    * work happens in application.onUnpublish.
    * @param streamName - The name of the stream being unpublished.
    Client.prototype.FCUnpublish = function(streamName)
        this.call("onFCUnpublish",
                  null,
                  {code:"NetStream.Unpublish.Success", description:streamName});
    * If the client invoker's ip matches what was captured for a currently publishing
    * stream, assume it's the same client and reset the stream. Otherwise, ignore.
    * @param streamName - The name of the stream being released.
    Client.prototype.releaseStream = function(streamName)
        var streamContext = getStreamContextForSourceStream(streamName);
        if (streamContext &&
            (streamContext.client.ip == this.ip) &&
            (streamContext.state <= STATE_REPUBLISHING))
            // Only tear-down an orphaned stream if it's not
            // already shutting down (see state check above).
            destroyStreamContext(streamContext);
    // Helper functions
    * Validates that a newly published stream has correct metadata (e.g. query
    * string parameters) to republish into a Flash Group. This function also
    * writes a message to the application log for any validation failures.
    * @param params - The quiery string parameters for the source Stream.
    * @return true if valid; otherwise false.
    function validateStreamParams(params)
        var empty = true;
        for (var param in params)
           empty = false;
           break;
        if (empty)
            trace("MULTICAST PUBLISH ERROR: Stream query string is empty.");
            return false;
        if (!params["fms.multicast.type"])
    trace("MULTICAST PUBLISH ERROR: Stream query string does not specify a 'fms.multicast.type'.");
            return false;
        var type = params["fms.multicast.type"];
        if (type != 1 && type != 2 && type != 3)
            trace("MULTICAST PUBLISH ERROR: 'fms.multicast.type' has invalid value: " + type);
            return false;
        if (!params["fms.multicast.groupspec"])
            trace("MULTICAST PUBLISH ERROR: Stream query string does not specify a 'fms.multicast.groupspec'.");
            return false;
        // Fusion and IP require an address:port.
        if ((type == 1 || type == 2) &&
            !params["fms.multicast.address"])
            trace("MULTICAST PUBLISH ERROR: Stream query string does not specify a 'fms.multicast.address'.");
            return false;
        // No obvious validation issues.
        return true;
    * Parses the supplied query string, and if valid, returns an Object populated
    * with the name-value pairs contained in the query string. The simple processing
    * here does not preserve multiple name-value pairings having the same name; the
    * last value seen wins. Parameters with no value are mapped to "" (empty String)
    * in the returned Object.
    * @param queryString - A query string portion of a URI, not including the leading
    *                     '?' character.
    * @return An Object containing a key-value mapping for each name-value parameter
    *         defined in the query string; Object is empty if the query string is
    *         invalid.
    function parseQueryString(queryString)
        var result = {};
        var decoded = "";
        try
            decoded = decodeURIComponent(queryString);
        catch (e) // Invalid URI component; return empty result.
            return result;
        if (decoded.length)
            var params = decoded.split('&');
            for (var i in params)
                var pair = params[i];
         var sepIndex = pair.indexOf('=');
                if (sepIndex != -1)
                    var name = pair.substr(0, sepIndex);
                    result[name] = pair.substr(sepIndex + 1);
                else
                    result[pair] = "";
        return result;
    * Utility function used to swap out the protocol (scheme) portion
    * of a given URI with an alternate.
    * @param uri - The full URI.
    * @param desiredProtocol - The replacement protocol.
    * @return The URI with its protocol replaced.
    function resetUriProtocol(uri, desiredProtocol)
        var sepIndex = uri.indexOf("://");
        return desiredProtocol + uri.substr(sepIndex);

    HELP ME !!! THANKS!!!

  • How to merge multiple live audio streams into a single stream in FMS?

    I need to merge multiple live audio streams into a single stream so that i can pass this stream as input to VOIP through a softphone.
    For this i tried the following approach:
    Created a new stream (str1) on FMS onAppStart and recorded the live streams (sent throgh microphone) in that new stream.
    Below is the code :
    application.onAppStart = function()
    application.myStream=Stream.get("foo");           
    application.myStream.record();
    application.onPublish = function (client,stream)
          var streamName = stream.name;
          application.myStream.play(streamName,-2,-1};
    The problem is that the Stream.play plays only 1 live stream at a time.As soon as a the 2nd live stream is sent to FMS then Stream.play stops playing the previous live stream.So,only the latest live stream is getting recorded.Whereas i need to record all the live streams in the new stream simultaneously.
    Any pointers regarding this are welcome.
    Thanks

    well i tried this once for one of my scripts and the final conclusion is its not possible to combine two streams into 1.....how would you time/encode the two voices......there is no know solution to this in flash. If you continue on despite me and find a solution please post it so we can explain to rest of world.

  • My apple tv is not streaming video without stopping

    When streaming films from my mac air to apple TV  the internet steaming is non stop
    But the apple TV stopped while it is buffering.
    So although the film runs without stopping on the Mac Air screen it keeps stopping when being mirrord on the HD Tv via the Aplle TV.
    It seems like the Apple TV is not keeping up with the video feed from the mac air
    Please advise?

    this looks like a clogged network.
    How are you connecting MBA and Apple TV?
    If both are on WiFi - try to connect Apple TV via cable to your router (if possible). This will improve the newtrok bandwidth.

  • Switching audio sources without stopping FMLE

    We use several Osprey cards, and wish to change from one audio/video source to another audio/video source without stopping FMLE.
    We can do the video switching from one Osprey input to the other using wirecast or vidblaster software video mixers, but are at a loss how to switch the sudio from one osprey input to another without stopping FME and selecting the other audio inpout from the drop-down list. We do not know of any audio mixer that FMLE recognises with which we can accomplish changing one audio source to another withour stopping FMLE.
    Any information in this regard much appreciated,
    Thank you

    to my knowledge, there is no software mixer with 0 lag because its software.  Hardware allows for no lag because theres nothing reading the info, encoding etc.  Software reads the audio data, usually it chunks, this is why it creates lag.  i did some testing using a usb mic and listening for the amount of time between me making the sound and it actually coming out.  Its just barely noticeable to annoy the person talking if he or she were to be listening to it through headphones or speakers, but i would estimate about 1/8 of a second.  Though if you want to be able to remotely control a mixer and you have someone working with you with a little technical experience, you could have them rig up a remote control system using remote control airplane actuators to turn the knobs.
    also while looking mackie control mixers say they have motorized faders, and since its program controlled, i believe you can actually control the faders using a program, but his would mean getting a new mixer.  if you want to look these up, http://www.mackie.com/products/mcupro/

  • About Live stream with FMS

    Hi,
    I am doing somthing FMS.I download the FMS4 and Adobe Flash Midea Encoder3.5 here.
    Installed to my PC,they are working without any configure.
    and now I want to develop a client base on gstreamer to play the RTMP:// videos.
    My client play VOD video on FMS as rtmp://MYIP/vod/sample.flv without any problem.
    When I change to play the live video published by Adobe Flash Midea Encoder3.5,rtmp://MYIP/live/livestream.flv,it can start,but stoped after about 2 second.
    I make some debug,it seems the server stop to send data to my client.And after this stoped ,it can not start again,must reboot my client;
    I have checked the server with rtmpdump + VLC,it works fine.
    The Log in FMS is:
    Accepted a connection from IP:192.168.0.95, referrer: , pageurl:
    Sending error message: Method not found (FCSubscribe).
    Sending error message: Response object not found (_result:2147483647).
    "Sending error message: Method not found (FCSubscribe)." this display also with rtmpdump.
    "Sending error message: Response object not found (_result:2147483647)." this only with my client,what's the reason?
    In my client,I see the following after about 2 second:
    WARNING: Stream corrupt?!
    ERROR: Wrong data size (16717496), stream corrupted, aborting!
    What's happen when my client connect to FMS?  What's the defference between VOD and LIVE?
    Anyone try this with gstreamer?

    Thanks a lot for you reply;
    With your tool link,it can play the live video from the my server;
    But my client is based on Linux,and can not support web browser,so I try to implament it with Gstreamer;
    I published the video with the default setting of Adobe Flash Media Encoder 2.5,just set video format to H264.
    Today,I make some more debug,
    please help to analyse it,maybe you can find some thing form the log;
    DEBUG: Parsing...
    DEBUG: Parsed protocol: 0
    DEBUG: Parsed host    : 192.168.0.143
    DEBUG: Parsed app     : live
    DEBUG: Protocol : RTMP
    DEBUG: Hostname : 192.168.0.143
    DEBUG: Port     : 1935
    DEBUG: Playpath : livestream
    DEBUG: tcUrl    : rtmp://192.168.0.143:1935/live
    DEBUG: app      : live
    DEBUG: live     : yes
    DEBUG: timeout  : 30 sec
    DEBUG: Setting buffer time to: 36000000ms
    DEBUG: RTMP_Connect1, ... connected, handshaking
    DEBUG: HandShake: Type Answer   : 03
    DEBUG: HandShake: Server Uptime : 558990173
    DEBUG: HandShake: FMS Version   : 4.0.0.1
    DEBUG: HandShake: Handshaking finished....
    DEBUG: RTMP_Connect1, handshaked
    DEBUG: Invoking connect
    Pipeline is PREROLLING ...
    DEBUG: HandleServerBW: server BW = 2500000
    DEBUG: HandleClientBW: client BW = 2500000 2
    DEBUG: HandleChangeChunkSize, received: chunk size change to 4096
    DEBUG: RTMP_ClientPacket, received: invoke 242 bytes
    DEBUG: (object begin)
    DEBUG: (object begin)
    DEBUG: Property: <Name:             fmsVer, STRING:     FMS/4,0,0,1121>
    DEBUG: Property: <Name:       capabilities, NUMBER:     255.00>
    DEBUG: Property: <Name:               mode, NUMBER:     1.00>
    DEBUG: (object end)
    DEBUG: (object begin)
    DEBUG: Property: <Name:              level, STRING:     status>
    DEBUG: Property: <Name:               code, STRING:     NetConnection.Connect.Success>
    DEBUG: Property: <Name:        description, STRING:     Connection succeeded.>
    DEBUG: Property: <Name:     objectEncoding, NUMBER:     0.00>
    DEBUG: Property: <Name:               data, OBJECT>
    DEBUG: (object begin)
    DEBUG: Property: <Name:            version, STRING:     4,0,0,1121>
    DEBUG: (object end)
    DEBUG: (object end)
    DEBUG: (object end)
    DEBUG: HandleInvoke, server invoking <_result>
    DEBUG: HandleInvoke, received result for method call <connect>
    DEBUG: sending ctrl. type: 0x0003,nTime: 0x12c
    DEBUG: Invoking createStream
    DEBUG: FCSubscribe: livestream
    DEBUG: Invoking FCSubscribe
    DEBUG: RTMP_ClientPacket, received: invoke 21 bytes
    DEBUG: (object begin)
    DEBUG: Property: NULL
    DEBUG: (object end)
    DEBUG: HandleInvoke, server invoking <onBWDone>
    DEBUG: Invoking _checkbw
    DEBUG: RTMP_ClientPacket, received: invoke 29 bytes
    DEBUG: (object begin)
    DEBUG: Property: NULL
    DEBUG: (object end)
    DEBUG: HandleInvoke, server invoking <_result>
    DEBUG: HandleInvoke, received result for method call <createStream>
    DEBUG: SendPlay, seekTime=0, stopTime=0, sending play: livestream
    DEBUG: Invoking play
    DEBUG: sending ctrl. type: 0x0003,nTime: 0x2255100
    DEBUG: RTMP_ClientPacket, received: invoke 119 bytes
    DEBUG: (object begin)
    DEBUG: Property: NULL
    DEBUG: (object begin)
    DEBUG: Property: <Name:              level, STRING:     error>
    DEBUG: Property: <Name:               code, STRING:     NetConnection.Call.Failed>
    DEBUG: Property: <Name:        description, STRING:     Method not found (FCSubscribe).>
    DEBUG: (object end)
    DEBUG: (object end)
    DEBUG: HandleInvoke, server invoking <_error>
    ERROR: rtmp server sent error
    DEBUG: RTMP_ClientPacket, received: invoke 16419 bytes
    DEBUG: (object begin)
    DEBUG: Property: NULL
    DEBUG: (object end)
    DEBUG: HandleInvoke, server invoking <_onbwcheck>
    DEBUG: Invoking _result
    DEBUG: HandleChangeChunkSize, received: chunk size change to 4096
    DEBUG: HandleCtrl, received ctrl. type: 0, len: 6
    DEBUG: HandleCtrl, Stream Begin 1
    DEBUG: RTMP_ClientPacket, received: invoke 162 bytes
    DEBUG: (object begin)
    DEBUG: Property: NULL
    DEBUG: (object begin)
    DEBUG: Property: <Name:              level, STRING:     status>
    DEBUG: Property: <Name:               code, STRING:     NetStream.Play.Reset>
    DEBUG: Property: <Name:        description, STRING:     Playing and resetting livestream.>
    DEBUG: Property: <Name:            details, STRING:     livestream>
    DEBUG: Property: <Name:           clientid, STRING:     oAA7AAAA>
    DEBUG: (object end)
    DEBUG: (object end)
    DEBUG: HandleInvoke, server invoking <onStatus>
    DEBUG: HandleInvoke, onStatus: NetStream.Play.Reset
    DEBUG: RTMP_ClientPacket, received: invoke 156 bytes
    DEBUG: (object begin)
    DEBUG: Property: NULL
    DEBUG: (object begin)
    DEBUG: Property: <Name:              level, STRING:     status>
    DEBUG: Property: <Name:               code, STRING:     NetStream.Play.Start>
    DEBUG: Property: <Name:        description, STRING:     Started playing livestream.>
    DEBUG: Property: <Name:            details, STRING:     livestream>
    DEBUG: Property: <Name:           clientid, STRING:     oAA7AAAA>
    DEBUG: (object end)
    DEBUG: (object end)
    DEBUG: HandleInvoke, server invoking <onStatus>
    DEBUG: HandleInvoke, onStatus: NetStream.Play.Start
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: RTMP_ClientPacket, received: notify 24 bytes
    DEBUG: (object begin)
    DEBUG: (object end)
    DEBUG: RTMP_ClientPacket, received: notify 487 bytes
    DEBUG: (object begin)
    DEBUG: (object begin)
    DEBUG: Property: <Name:             author, STRING:     >
    DEBUG: Property: <Name:          copyright, STRING:     >
    DEBUG: Property: <Name:        description, STRING:     >
    DEBUG: Property: <Name:           keywords, STRING:     >
    DEBUG: Property: <Name:             rating, STRING:     >
    DEBUG: Property: <Name:              title, STRING:     >
    DEBUG: Property: <Name:         presetname, STRING:     Custom>
    DEBUG: Property: <Name:       creationdate, STRING:     Thu Jun 09 08:55:02 2011
    >
    DEBUG: Property: <Name:        videodevice, STRING:     Syntek STK1150>
    DEBUG: Property: <Name:          framerate, NUMBER:     25.00>
    DEBUG: Property: <Name:              width, NUMBER:     320.00>
    DEBUG: Property: <Name:             height, NUMBER:     240.00>
    DEBUG: Property: <Name:       videocodecid, NUMBER:     7.00>
    DEBUG: Property: <Name:      videodatarate, NUMBER:     200.00>
    DEBUG: Property: <Name:           avclevel, NUMBER:     31.00>
    DEBUG: Property: <Name:         avcprofile, NUMBER:     66.00>
    DEBUG: Property: <Name:        audiodevice, STRING:     Realtek HD Audio Input>
    DEBUG: Property: <Name:    audiosamplerate, NUMBER:     22050.00>
    DEBUG: Property: <Name:      audiochannels, NUMBER:     1.00>
    DEBUG: Property: <Name:   audioinputvolume, NUMBER:     100.00>
    DEBUG: Property: <Name:       audiocodecid, NUMBER:     2.00>
    DEBUG: Property: <Name:      audiodatarate, NUMBER:     32.00>
    DEBUG: (object end)
    DEBUG: (object end)
    INFO: Metadata:
    INFO:   author
    INFO:   copyright
    INFO:   description
    INFO:   keywords
    INFO:   rating
    INFO:   title
    INFO:   presetname            Custom
    INFO:   creationdate          Thu Jun 09 08:55:02 2011
    INFO:   videodevice           Syntek STK1150
    INFO:   framerate             25.00
    INFO:   width                 320.00
    INFO:   height                240.00
    INFO:   videocodecid          7.00
    INFO:   videodatarate         200.00
    INFO:   avclevel              31.00
    INFO:   avcprofile            66.00
    INFO:   audiodevice           Realtek HD Audio Input
    INFO:   audiosamplerate       22050.00
    INFO:   audiochannels         1.00
    INFO:   audioinputvolume      100.00
    INFO:   audiocodecid          2.00
    INFO:   audiodatarate         32.00
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: ignoring too small video packet: size: 2
    Pipeline is PREROLLED ...
    Setting pipeline to PLAYING ...
    New clock: GstSystemClock
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: ignoring too small video packet: size: 2
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: ignoring too small audio packet: size: 0
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
    DEBUG: HandleCtrl, Stream BufferEmpty 1
    DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
    DEBUG: HandleCtrl, Stream BufferReady 1
    WARNING: Stream corrupt?!
    ERROR: Wrong data size (8059624), stream corrupted, aborting!
    DEBUG: RTMP_ReadPacket, m_nChannel: 167
    DEBUG: RTMP_ClientPacket, unknown packet type received: 0xe3
    DEBUG: RTMP_ReadPacket, m_nChannel: 6ad6
    DEBUG: RTMP_ReadPacket, m_nChannel: 3d7c
    DEBUG: RTMP_ClientPacket, unknown packet type received: 0x00
    DEBUG: HandleCtrl, received ctrl. type: 8760, len: 6
    DEBUG: HandleCtrl, Stream xx -1742407864
    DEBUG: RTMP_ClientPacket, unknown packet type received: 0x2a
    DEBUG: RTMP_ClientPacket, unknown packet type received: 0x2a
    DEBUG: RTMP_ClientPacket, unknown packet type received: 0x2a
    DEBUG: RTMP_ClientPacket, unknown packet type received: 0x2a
    DEBUG: RTMP_ClientPacket, unknown packet type received: 0x2a
    DEBUG: RTMP_ClientPacket, unknown packet type received: 0xff
    DEBUG: RTMP_ClientPacket, unknown packet type received: 0xff
    DEBUG: RTMP_ReadPacket, m_nChannel: 5260
    DEBUG: RTMP_ReadPacket, failed to allocate packet
    Got EOS from element "pipeline0".
    Execution ended after 69266417190 ns.
    Setting pipeline to PAUSED ...
    Setting pipeline to READY ...
    DEBUG: Invoking deleteStream
    Setting pipeline to NULL ...
    FREEING pipeline ...
    After a short transfers,the client can not get the data.It seems that the Connection reset by peer;

  • Is there a possibility we can feed a rtmp source to AMS and play from there?

    Is there a possibility we can feed a rtmp source to AMS and stream from there to a player?
    The requirement is we will be getting a RTMP source from an external provider, the feed we are receiving should be routed through our AMS. Is it possible? Please let me know your inputs.
    Here is the complete use case:
    1) we will have multiple contentowner, which publish there stream url to use.
    2) we using AMS (adobe media server 5) and JW player to stream
    3) from movie page, when user click the stream, we need the following action to happen
    4) JW player query the AMS with stream url published by content owner, in turn AMS query the published stream of content owner and stream it through AMS and output is provided to JW.
    these action must be dynamic / programmatic controlled. 
    currently we are aware of the use of Live encoder GUI application to start the stream, but we need solution to get this done dynamically. Please suggest
    Thanks

    Thanks Bernd.  We can't assign passwords before signature process starts as people will not be able to open the PDF without knowing the password.  I think we will change our process and simply leave the electronically signed PDF in DocuSign and then "print" the PDF to our local file share for internal HR purposes.  thanks again.

  • RTMP Live Streaming Works, HTTP HLS/HDS Streaming Doesnt

    I am running Flash Media Server on my Windows 2008 R2 server, and am trying to get HTTP live streaming working. I am using Flash Media Live Encoder to stream to the server. I can get a basic RTMP stream to work without issue, however anytime I setup to stream to a basic HTTP live stream, I get the generic "We are having problems with playback. We apologize for the inconvenience." in the basic Flash Media Playback player. I can confirm the stream is being published to the server in the Admin Console using the livepkgr application successfully, and I can even get an RTMP stream to work when it is streaming to the livepkgr application.
    Here are the FMLE settings I am using to publish the stream:
    Stream URL: rtmp://184.69.238.58/livepkgr
    (yes, thats my IP, the stream is live continuously, test for yourself!)
    Stream Name: livestream?adbe-live-event=liveevent
    my embeded html for viewing the stream is as follows:
    <object width="640" height="480"> <param name="movie" value="http://fpdownload.adobe.com/strobe/FlashMediaPlayback_101.swf"> </param> <param name="flashvars" value="src=http://<myipgoeshere>/livepkgr/liveevent/livestream.f4m"></param> <param name="allowFullScreen" value="true"></param> <param name="allowscriptaccess" value="always"></param>  <embed src="http://fpdownload.adobe.com/strobe/FlashMediaPlayback_101.swf" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="700" height="500" flashvars="src=http://<myipgoeshere>/livepkgr/liveevent/livestream.f4m">
    While this gives me the error, the RTMP version (publishing to the livepkgr) works fine like this:
    <object width="640" height="480"> <param name="movie" value="http://fpdownload.adobe.com/strobe/FlashMediaPlayback_101.swf"> </param> <param name="flashvars" value="src=rtmp://<myipgoeshere>/livepkgr/livestream"> </param> <param name="allowFullScreen" value="true"></param> <param name="allowscriptaccess" value="always"></param>  <embed src="http://fpdownload.adobe.com/strobe/FlashMediaPlayback_101.swf" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="700" height="500" flashvars="src=rtmp://<myipgoeshere>/livepkgr/livestream"> </embed>  </object>
    Can anyone explain to me what is happening here? I need HTTP streaming so I can eventually handle multi-bit rate streaming. Is there any further configuration beyond the standard "out of the box" FMS installation I need to consider on my server? There are no firewall issues at play here as all ports for standard streaming are open.

    I had about 2 hours of downtime last night to move my server. Try again? It will be live all day.
    Dustin Rogers
    [email protected]
    780.293.6632

  • Add a shared table into rules without stop any processe,How can I get error

    I have a Single-Source Environment,and want to add a new shared table for replication.
    Where I add capture rule,PROPAGATION rule and apply rule without stop capture process, propagation process and apply process,The replication will not process in this table ,and other replicated tables are OK.I can't find any error in the Environment,
    While it done well when I stop these processess before add rules.
    If this happened,How can I detect this failure?

    Thanks for your reply!
    But I find no error however
    In Streams Replication Administrator's Guide,I find follow word's:
    If you perform administrative steps in the wrong order, you can lose LCRs. For example, if you add the rule to a capture process rule set first, without stopping the capture process, then the propagation will not propagate the changes if it does not have a rule that instructs it to do so, and the changes can be lost.
    I think it is the matter "lose LCRs",but how could I know whether LCRs are losing ?
    thanks again!
    Message was edited by:
    xyz_hh
    Message was edited by:
    xyz_hh

  • [svn:osmf:] 13538: Modified the RTMP dynamic streaming sample to use the new SMIL plugin.

    Revision: 13538
    Revision: 13538
    Author:   [email protected]
    Date:     2010-01-15 16:26:36 -0800 (Fri, 15 Jan 2010)
    Log Message:
    Modified the RTMP dynamic streaming sample to use the new SMIL plugin.
    Modified Paths:
        osmf/trunk/apps/samples/framework/DynamicStreamingSample/.actionScriptProperties
        osmf/trunk/apps/samples/framework/DynamicStreamingSample/src/DynamicStreamingSample.mxml
    Removed Paths:
        osmf/trunk/apps/samples/framework/DynamicStreamingSample/src/org/

    But DynamicStream.as is part of the code base and the does get executed.   Jody, which version of DynamicStream.as is more current?   The one that ships with FMS 3.5 or the one in tools?
    Can anyone answer my original question (I think) which is: should I be able to switch source = http://dynamicStream1.smil -> source = http://dynamicStream2.smil and back and forth etc.  It seems to work.    Are there any caveats?  I am not switching back and forth between flv-s and smil-s
    It turns out that there are a couple of lines of code in NCManger.as::bitrateMatch() which is concatenating the streamName and this results in 404 on the FMS side.   I'm not sure what this is supposed to do or if this is just a bug, but the upshot was that I could not specify source = http://dynamicStream.smil on a remote server.  The uncanny part of this issue is if I serve the same smil locally, referencing remote remote smil and media, it works.  Maybe this has something to do with the bit rate.    Bottom line is that this cost me 3 days, becuase I was under the incorrect impression that you could not reference *.smil directly and I blindly followed the handrail provided by the the FMS videoPlayer sample.  Shame on me for trying to leverage working code shipped with a production version.
    NCManger.as::bitrateMatch()
    if  
    (_streamName != null
    ) {_streamName += _streams[whichStream].src;
    My incling is to change the += above to an = and get on with it.
    If someone at adobe or anywhere can have a look and give me some other guidance, it would be much appreciated.
    Thanks to Sean for the kind and detailed responses and giving me the green light that source=http://dynamicStream.smil _should_ work.
    Thanks to all.

  • Bursting with multiple data sources

    Hello all,
    I am working in a retail environment and we are building reports for the stores. There are several reports and they all receive the same reports. We are using BIP Entreprise with the bursting feature and it works very well.
    The problem is that there are too many reports and we would like to combine all reports of the same store within the same PDF. We use the multiple data source feature and was able to concatenate all reports together.
    Using this new report and template, we can not make the bursting functionality to work properly: the bursted report do not contain all the required report components.
    For example, I have 2 queries A and B each producing reports for 3 stores: 2, 4 and 5. Without bursting, the output is as is:
    Query A - Store 2
    Query A - Store 4
    Query A - Store 5
    Query B - Store 2
    Query B - Store 4
    Query B - Store 5
    With bursting into a file using the store number, I get the following:
    File 1 - Store 2 - Query A
    File 2 - Store 4 - Query A
    File 3 - Store 5 - Query A
    + Store 2 - Query B
    + Store 4 - Query B
    + Store 5 - Query B
    I would like to have the following output:
    File 1 - Store 2 - Query A
    + Store 2 - Query B
    File 2 - Store 4 - Query A
    + Store 4 - Query B
    File 3 - Store 5 - Query A
    + Store 5 - Query B
    The main question is: can this be done using BI Pub Enterprise? We using version 10.1.3.3.2
    If it is, can you provide me with help on how to configure either/or the requests and template to accomplish this task?
    I create an SR and Oracle Support does not have an answser and suggested that somebody in the Forum might help.
    Thanks in advance,
    Minh

    I would like to have the following output:
    File 1 - Store 2 - Query A + Store 2 - Query B
    File 2 - Store 4 - Query A + Store 4 - Query B
    File 3 - Store 5 - Query A + Store 5 - Query B
    the bursting level should be give at
    File 1 - Store 2 - Query A + Store 2 - Query B
    so the tag in the xml has to be split by common to these three rows.
    since the data is coming from the diff query, and the data is not going to be under single tag.
    you cannot burst it using concatenated data source.
    But you can do it, using the datatemplate, and link the query and get the data for each file under a single query,
    select distinct store_name from all-stores
    select * from query1 where store name = :store_name === 1st query
    select * from query2 where store name = :store_name === 2nd query
    define the datastructure the way you wanted,
    the xml will contain something like this
    <stores>
    <store> </store> - for store 2
    <store> </store> - for store 3
    <store> </store> - for store 4
    <store> </store> - for store 5
    <stores>
    now you can burst it at store level.

  • Configure a single ODI install for multiple Data Sources in ERPI

    I am setting up multiple data sources in ERPI to point to different EBS instances. How would I go about setting up ODI to support that without multiple installations of ODI? or is multiple installs the best way to go, from an 'ease of management' perspective?
    Thanks!

    First off - Have no knowledge of ERPi - Just googled it.
    If its any help, we have multiple instances of EBS on the same box, we have seperate DWH (and ODI Work / Master Repos) environments aligned to these instances. An ODI Agent can only communicate with one ODI Work repository, hence we have Multiple Agents so we can use the EBIZ -> DWH pairs simultaneasouly.
    Maybe someone will come along and tell us how it could work differently, until then - its works for us!

  • Multiple xml source file loading ?

    Hi,
    I've already managed to set some multiple flat file as source, but the question is :
    How to set some multiple XML source files ? (to read ally xml files stored in a folder for instance)
    I link the XML file directly in topology instead of doing it in my model. So how can I change the file name dynamically ?
    Any advice ?
    Thanks
    Pierre-Henri

    Hi,
    all right I followed the explanation on this link :
    Looping a folder for pattern files
    The set up is ok, but I generate this error message :
    The scenario did not end properly.
    When I'm trying to run the interface alone (without v_FileName obviously), I get this error :
    java.sql.SQLException: Table not found: D in statement ...
    I created my XML model, then I defined it's ressource model as D:\mypath\001.xml. Into the interface, as my model uses XML technology, I can only use LKM SQL to SQL knowledge model.
    When I look at operator, I can see it tries to run this following SQL code :
    select     
    attribute 1,
    attribute 2,
    from     schema.D:mypath001.xml CD
    where     (1=1)
    schema.D:mypath001.xml is probably the wrong part :)
    Do you have an idea to get your example (on txt files) running with some xml files ?
    thanks for your time

  • Radio Streaming with FMS (aac, mp3, ogg, wma)

    Hi
    I use a program that encodes in many audio format (acc, wma,
    ogg, mp3, etc) and connects to shoutcast, icecast, windows media
    server, live365, to distribute the web radio.
    Willing to use FMS as the distribution server, I tried to
    send the stream to FMS port but without succes. Online docs doenst
    treat the argument.
    Is it correct to say that FMS is not set up to accept a
    Windows Media, AAC+,MP3 or Ogg incoming stream and redistribute the
    radio to swf players?
    Best
    Jo

    I've done a similar setup before for a radio station
    (x1fmradio.com)
    What we did was setup 2 computers on the studio, one computer
    receives the input from console and encodes output to shoutcast and
    also outputs audio to the second computer running Flash Media
    Encoder 2, which publishes audio to Flash Media Server.
    If you want an all-in-one solution I would recommend using a
    Digital Rapids system, which is not free, but you only need one
    computer and you can publish audio/video to several servers at the
    same time, including Flash Media Server.

  • Archiving live stream at FMS and injecting metadata: VP6 good h264 not

    When I record a live stream at FMS, one in which I've injected  metadata in my main.asc file, the archived file plays back fine.  The  metadata plays back too.  I'm able to retreive it just fine - if I  encode VP6.
    If I encode h.264 the file plays back but  the metadata does not.  The fact that the archived file is created and  plays back tells me things are wired correctly.  The only thing I  changed is the format.
    According to FMS docs (http://help.adobe.com/en_US/FlashMediaServer/3.5_SS_ASD/WS5b3ccc516d4fbf351e63e3d11a11afc9 5e-7e42.html#WS5b3ccc516d4fbf351e63e3d11a11afc95e-7f35)
    ..."The recording format is determined by the filename you pass to the Stream.get()
    method."
    So my record code looks like the following:
    application.onPublish = function(client, stream) {
         trace("onPublish");
         s = Stream.get("mp4:streamname.f4v");
         if(s){
             s.record();
         this.doRepublish(this.nc, stream);
    My code that injects the data in to the stream looks like this:
    Client.prototype.sendDataEvent = function(data) {
         trace("Call to sendDataEvent...");
         this.newStream = Stream.get("mp4:streamname.f4v");
         this.newStream.send("onTextData",data);
    All must be wired  correctly because the metadata comes through during the live stream.  On  play back of the archive though, the metadata doesn't appear to be  there.
    Any thoughts?
    Thanks

    My apologies on the s.play() confusion.  I had been trying different versions of the code and posted the one without it.
    Whether I include s.play() or not the file gets created.  Here are the various versions of the onPublish() function I've tried (differences in red):
    1.
    application.onPublish = function(client, stream) {
        trace("onPublish");   
        s = Stream.get("mp4:streamname.f4v");
        if(s){
            s.record();
            s.play("mp4:streamname.f4v");
        this.doRepublish(this.nc, stream);
    2.
    application.onPublish = function(client, stream) {
        trace("onPublish");   
        s = Stream.get("mp4:streamname.f4v");
        if(s){
            s.record();
            s.play(stream);
        this.doRepublish(this.nc, stream);
    3.
    application.onPublish = function(client, stream) {
         trace("onPublish");   
         s = Stream.get("mp4:streamname.f4v");
         if(s){
             s.record();
         this.doRepublish(this.nc, stream);
    All produce the same result - an archived file called mp4:streamname.f4v in my streams folder.  This file plays back fine but does not play back the commands.
    On your other question, about things working fine for VP6, it works fine for FLV.  A file called streamname.flv is produced.  This file plays back fine and does indeed play back commands baked into the file as well.  This is what makes me believe the code is not the problem.  If it works perfectly for one format, there would seem to be very little I could do in my code to break things for the other.
    Can you try this using the record() code snippets in the live docs Stream.record() section?
    http://help.adobe.com/en_US/FlashMediaServer/3.5_SS_ASD/WS5b3ccc516d4fbf351e63e3d11a11afc9 5e-7e42.html#WS5b3ccc516d4fbf351e63e3d11a11afc95e-7f35
    All you'd need is the code snippets there to record your live stream and another server side function to inject commands into that live stream. Here is that function:
    Client.prototype.sendDataEvent = function(data) {
        trace("Call to sendDataEvent...");
        this.newStream = Stream.get("mp4:streamname.f4v");
        this.newStream.send("onTextData",data);
    Do something simple like call onTextData and pass some text in the data parameter.  Then on the client side viewer, handle the onTextData method.  It will receive the text.  Display it in a text area or something.
    If you record while injecting this text into your stream, the text should display on playback of the archived file.  It will if you encode VP6/FLV, but not if you encode H.264/F4V.
    Let me know what you discover.

Maybe you are looking for