RTmP Streaming to a flash server

Hey guys,
I was wondering if you know of an application that allows you to lets say watch a video, and stream it via rtmp to a flash server, like adobe lash server or red5
thanks in advance.
Last edited by 3nd3r (2010-02-12 02:09:41)

If you need to stream out, you'll probably want to use FFserver. I have no real experience there, so I can't help much.

Similar Messages

  • Is Flash Server required to incrementally "stream" audio?

    I need the ability to jump forward through an mp3 file
    without downloading
    the entire file.
    Do I need Flash Server to do this?
    Thank you

    "David Stiller" <[email protected]> wrote in
    message
    news:ggjt48$29r$[email protected]..
    > Tim,
    >
    >> I need the ability to jump forward through an mp3
    file without
    >> downloading the entire file.
    >> Do I need Flash Server to do this?
    >
    > Yes. Flash Media Server gives you RTMP, which is the
    protocol you need
    > for that sort of streaming. Without FMS, you're using
    HTTP -- the same
    > protocol the browser uses to download HTML, JGPs, CSS
    files, and nearly
    > everything else.
    >
    >
    > David Stiller
    > Adobe Community Expert
    > Dev blog,
    http://www.quip.net/blog/
    > "Luck is the residue of good design."
    >
    Thank you. It would be nice if a watered down version of
    Flash Server
    existed for people who only need to incrementally stream
    audio.

  • Urgent Help Required for streaming video on Flash Media Server  3.5

    Please follow the link for the detailed question. As im not getting any replies so that is why attaching a link
    http://forums.adobe.com/thread/559567?tstart=0

    before running my application ( HelloWorld )
    i always start FMS & FMAdministratorServer ( also checked in system services that they are running )
    allow them in vista firewall
    PLEASE LET ME KNOW
    > is any problem with apache server ? how i figure out that it is running by FMS
    > any port issues ?
    package {
    import flash.display.MovieClip;
    import flash.net.Responder;
    import flash.net.NetConnection;
    import flash.events.NetStatusEvent;
    import flash.events.MouseEvent;
    public class HelloWorld extends MovieClip {
      // Represents a network connection.
      private var nc:NetConnection;
      // Responder for call to server's serverHelloMsg -- see onReply() below.
      private var myResponder:Responder = new Responder(onReply);
      // Constructor.
      public function HelloWorld() {
    // Set display values.
    textLbl.text = "";
    connectBtn.label = "Connect";
    // Register a listener for mouse clicks on the button.
    connectBtn.addEventListener(MouseEvent.CLICK, connectHandler);
    // When button is pressed, connect to or disconnect from the server.
    public function connectHandler(event:MouseEvent):void {
    if (connectBtn.label == "Connect") {
    trace("Connecting...");
    nc = new NetConnection();
    // Connect to the server.
    nc.connect("rtmp://localhost/HelloWorld");
    // Call the server's client function serverHelloMsg, in HelloWorld.asc.
    nc.call("serverHelloMsg", myResponder, "World");
    connectBtn.label = "Disconnect";
    } else {
    trace("Disconnecting...");
    // Close the connection.
    nc.close();
    connectBtn.label = "Connect";
    textLbl.text = "";
    // Responder function for nc.call() in connectHandler().
    private function onReply(result:Object):void {
                trace("onReply received value: " + result);
    textLbl.text = String(result);
    ======================
    HelloWorld.asc
    application.onConnect = function( client ) {
    client.serverHelloMsg = function( helloStr ) {
    return "Hello, " + helloStr + "!";
    application.acceptConnection( client );

  • Audio not streaming correctly from Flash Media Server

    Our company has a Flex application (3.0.2) that is having a problem with audio dropping out in Windows 7.  The problem appears worse with a wireless connection, but it can’t be consistently reproduced there, either.  The only thing known for sure is that the problem has not been seen on any other version of Windows.
    The application thinks the audio is playing, because it is calling the appropriate event listeners triggered when the audio completes and when any audio cue points are hit.  The majority of our audio is streaming via Flash Media Server (3,0,2,201), but the problem was also seen using embedded sound effects.  In one instance, several clicks of a button triggered an error saying the sound effect could not be loaded, and then about a minute later, all the sound effects played at once and the user could then continue with the application.
    The problem has been repeated in IE 8, Firefox 3 and Chrome.

    Thanks for your details. But i need more info.
    Server:
    FMS      3.0.2 ?
    FMS installed in which platform Linux/windows? more details about it.
    Client:
    IE          7
    Flash Player version     ?
    WIndows 7
    Wireless connection - Was the client placed in poor bandwidth.
    Can you get the NetStream status info when u play the audio file.? We can check for the rebuffering happening at the client side.
    Can you run your audio file through flvCheck Tool to check if the media file is in good form. It is available at "\$Root|Flash Media Server\tools\flvcheck.exe"
    Now our intention should be to check the same media file with simpler application (since your production app is complicated) to ensure that the media streaming over 'client to server' is working fine.
    Regards,
    Janaki L

  • Timecode/TimeStamp in RTMP live streaming using Adobe Media Server and FMLE

    HI There,
    Am trying to stream a video on to Adobe media server(using RTMP) through FMLE and play it on my web site using JWPlayer. i could stream the video successfully, but know i want to get the timestamp/timecode on the stream. does Adobe media server and FMLE support this kind of use-case ? if not is there any other way to achieve the same. any comments/suggestion/pointers appreciated .
    Thanks in Advance
    Regards
    Deepak

    If you're talking about nonstop, continuous streaming, your subscribing client will need to close and reconnect the stream every couple of days, as the server will run out of timestamps for the stream.

  • 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!!!

  • Live video stream to both Flash and iOS problem

    Hi everyone, I'm Lucas. I Have learnt how to deliver a single live video stream to both Flash and iOS from this video
    But after that I got a problem with the ".f4m" file and ".m3u8" file (I think)  like this video below here. I don't know what happen with the server because my camera is still working perfectly.
    I now using Flash Media Server 4.5
    Does anyone know how to fix it?

    Try this :
    1: stop any stream.
    2: go to  root_install\applications\livepkgr\events\_definst_\liveevent and delete any .stream file that is in there
    3: Go to   root_install\applications\livepkgr\streams\_definst_ any livestream folder that is in there for example if you streamed with name livestream12 there should be a folder with the name livestream12, delete it.
    4: Then try streaming a single bitrate stream by adding to the FMLE the following parameters 
    FMS Url :  rtmp://localhost/livepkgr
    Stream: livestream?adbe-live-event=liveevent
    5: go to sample player and add this url to the field : http://localhost/hds-live/livepkgr/_definst_/liveevent/livestream.f4m
    *If you have a public IP do the following :
    1: go to http://www.osmf.org/configurator/fmp/#
    and add this url  : http://public_ip/hds-live/livepkgr/_definst_/liveevent/livestream.f4m (replace localhost with your public IP)
    and from the advanced tab say that it is live.
    Give it a try!

  • Buffering pauses and audio/video out of sync, single RTMP stream w/ simple embed

    Hello,
    I am running Flash Media Server on my dedicated CentOS host, and finally connected a single RTMP stream fine and am able to embed and play back the stream, but I am getting constant buffering pauses (approx every 5 secs) and audio/video out of sync by at least 5 seconds. My CPU with Flash Live Encoder is a powerhorse, never over 25% processor or ram usage while streaming, and my upload internet speed is averaging 6-8 mbps which should be more than adequate. I fear the issue is server side, however port 1935 is open and in use, not firewalled on CPU nor the host.
    Any suggestions would be great.

    Hello,
    Thanks for the reply, I am using embed code generated with Flash Media Playback, as follows:
    <object width="640" height="480"> <param name="movie" value="http://fpdownload.adobe.com/strobe/FlashMediaPlayback.swf"></param><param name="flashvars" value="src=rtmpt%3A%2F%2F50.62.40.55%3A1935%2Flive%2Fchristmastime&poster=http%3A%2F%2Fsq uarestream.ca%2Fpics%2Fframe.jpg&autoPlay=true&streamType=live&optimizeInitialIndex=false" ></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://fpdownload.adobe.com/strobe/FlashMediaPlayback.swf" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="480" flashvars="src=rtmpt%3A%2F%2F50.62.40.55%3A1935%2Flive%2Fchristmastime&poster=http%3A%2F% 2Fsquarestream.ca%2Fpics%2Fframe.jpg&autoPlay=true&streamType=live&optimizeInitialIndex=fa lse"></embed></object>

  • RTMP Streaming Works, HTTP Streaming Does Not

    I am using the following to stream video live:
    - Windows Server 2008 with Flash Media Server 5.
    - Flash Media Live Encoder 3.2
    - This tutorial step by step to setup the manifests: Stream live multi-bitrate video over HTTP to Flash and iOS - YouTube
    - In FMLE the following settings:
         - H264 Format, Main Profile, Level 3.1, Keyframe freq 4, 150, 500 and 1000 kpbs bit rates.
         - FMS URL: rtmp://<my-static-ip>/livepkgr
         - Stream: livestream%i?adbe-live-event=liveevent
    - The liveevent.f4m and liveevent.m3u8 files are saved in the webroot folder
    - Built in administrator console OSMF video player, with the following URL: http://<my-static-ip>/livepkgr/liveevent.f4m
    FMLE is saying it connects without issue and that it publishes, and the server shows that the stream is connecting in the admin console. The one thing that does not appear to work is playing the stream back itself. I've tried any number of different  URLS to play the stream, none work, they just give me a generic "We are having problems with playback. We appologize for the inconvenience." I know the stream connects because when I replace http://<my-static-ip>/livepkgr/liveevent.f4m with rtmp://<my-static-ip>/livepkgr/liveevent it plays the rtmp version.
    Is there some further configuration I am missing on the server side? Something else I am missing?

    Still nothing I can verify the embedded player is trying to access the stream URL I setup. I can still verify stream publishing in the admin console, but I cannot embed the video, still getting the same generic error.. I am streaming to my private server running Windows Server 2008 R2 that I host multiple sites with. I am beginning to think the URL doesnt recognize that I am trying to access the webroot folder for the manifests, but I don't know how to tell if this is the case or how to change this setting. Can anyone provide me an example of a proper html code to embed a video using the FMLE stream I am publishing that they can verify works with a similar setup to what I have?
    Dustin Rogers
    [email protected]
    (780) 250-0200

  • VideoDisplay  rtmp stream - error 1000 on replay

    Hi,
    I am unable to restart my video after it plays once all the way through.  I keep getting error
    error: 1000: Unable to make connection to server or to find FLV on server.
    when I call  videoDisplay.play() after the video is done playing. Obviously it can find becasue it found it the first time through, Could this be due to the fact its an rtmp stream?  what else could be the issue?
    thanks in advance...
    <mx:Canvas  id="myCanvas"  visible="true"  rollOver="showControls()" rollOut="hideControls()">
            <mx:VideoDisplay   rewind="onRewind(event)" visible="false"  ready="onVideoReady(event)" id="videoDisplay" source="rtmp://myserver.com/flash/Desertrace.f4v" autoPlay="true" playheadUpdate="videoDisplay_playheadUpdate(event)" />
            <mx:HBox visible="false" id="controls" styleName="controllerStyle" alpha="0.0">
                <mx:Button id="playPauseButton" styleName="playPauseStyle" toggle="true" selected="{videoDisplay.playing}" click="playPauseButton_click(event)" />
                <mx:Button id="stopButton" styleName="stopStyle" click="stopButton_click(event)" />
                <mx:Spacer width="100%" />
                <mx:Label id="time" styleName="timeStyle" />
            </mx:HBox>
             <mx:ProgressBar  id="myProgress" indeterminate="true" minimum="0" maximum="100" label="Loading Movie..." fontSize="12" fontFamily="Arial" fontWeight="bold" color="#080808">
           </mx:ProgressBar>
        </mx:Canvas>

    You will get a better luck if you post this question on media server forum:
    http://forums.adobe.com/community/adobe_media_server?view=discussions

  • How do you auto reconnect a live video stream broadcast in flash action script 3?

    how do you auto reconnect a live video stream broadcast in flash action script 3?
    so i don't have to ask people to refresh the page if the connection drops
    i copy pasted the live video stream broadcast files and script from here;
    http://www.adobe.com/devnet/adobe-media-server/articles/beginner_live_fms3.html
    http://www.adobe.com/content/dotcom/en/devnet/adobe-media-
    server/articles/beginner_live_fms3/_jcr_content/articlePrerequistes/multiplefiles
    /node_1278314297096/file.res/beginner_live_fms3.zip
    i don't know what i'm doing

    Why don't you use several layers with appropriate alpha properties, and move these layers according to the mouse events?

  • Audio Output to Flash Server

    Hi,
    I am in the early stages of designing a web application that
    will have live streaming audio. Most of the application will be
    hosted on a public web/Java EE/Linux server and I am considering a
    hosted FMS solution to handle the streaming of the audio to users.
    Now for the tricky part - the audio will be generated by
    software on our server that was originally designed to just send
    its output to an audio device on the machine it is installed on. Is
    there some sort of driver I can install that will accept the output
    from this software as if it were a speaker and instead send it to a
    remote Flash server?
    Thanks in advance for any help,
    Marc

    MarvUK wrote:
    I want to play audio from my MacBookPro (13inch) through my Roberts stereo which has a standard USB port, which can be selected as the source for playing through the speakers. Does anyone know of a cable I can use to connect the audio output on my MacBook to the USB input on my stereo?
    I would have thought this was a pretty standard conversion but cant find anyone selling something with a 3.5mm jack on one end and a USB jack on the other?
    Thanks in advance!
    Why don't you use the USB port on your computer to get the audio out? USB to USB.
    Message was edited by: BobTheFisherman

  • How to embed an adpcm format audio stream to rtmp stream?

    I am a flex developer, i encounted a problem when i develop a flash program for my ipcamera,
    i add a adpcm format audio stream to the rtmp stream, but the specification says that only 5.5k,11k,22k and 44k is supported,
    but my device can only generate an audio stream which has a 8k sample rate, can any one help me to do some thing.

    It's possible.
    Did some experiments with this about a year ago using both HSound and JMF, it works but the results were not very good but probably today's boxes do it better. The problem is that it's heavy for a box to play a long or a looped clip with the result that the overall performance of your application goes down dramatically.

  • RTMP Stream Not Found Error

    I am having difficulty with some RTMP streams and my OSMF implementation. I am attempting to play a series of RTMP streams, but for some reason, I cannot play them with OSMF (Stream not found). They play fine in JWPlayer, but I am unable to get them to play in Strobe or my OSMF Player. However, my OSMF player does play other streams. I cannot figure out what the difference is. Here is what I have:
    Demo streams:
    rtmp://cp67126.edgefcs.net/ondemand/mp4:mediapm/ovp/content/demo/video/elephants_dream/elephants_dream_768x428_24.0fps_408kbps.mp4
    rtmp://cp67126.edgefcs.net/ondemand/mediapm/strobe/content/test/SpaceAloneHD_sounas_640_500_short
    rtmp://cp67126.edgefcs.net/ondemand/mediapm/osmf/content/test/akamai_10_year_f8_512K
    Problem stream:
    rtmp://flash.delmar.cengage.com/DLvideo/00/03/32/33218.mp4
    OSMF and Strobe players CAN play the demo streams.
    OSMF and Strobe players CANNOT play the problem stream.
    JWPlayer CAN play the problem stream and the demo streams.
    I have tried setting the URLIncludeFMSApplicationInstance flag, I have tried removing the extension, and generally fiddling with the URL itself. I can change the protocol of the problem stream to 'http', and I get a progressive download which works in all players. Can anyone point me in a useful direction?

    http://osmf.org/dev/latest/debug.html?src=rtmp://flash.delmar.cengage.com/DLvideo/mp4:00/0 3/32/33218.mp4
    Lots of dropped frames and rebuffers. Is that a very high bitrate or wide ranging VBR? You might want to consider re-encoding.

  • Using your own AMS, how can you use BitmapData.draw() on an RTMP stream with no security exception?

    We have an Adobe AIR app written in AS3 that can view live video streams from other parties.  That being said, when trying to call BitmapData.draw() on one of those remote video streams (technically we're calling ImageSnapshot.captureImage()), we're getting a 2123 error - a security sandbox exception.  I've seen a lot of people refer to a real simple configuration in the AMS that will allow this to work for RTMP streams, but they keep posting broken links, links to posts that only vaguely mention this configuration, etc.  The one thing I did find is something that I'm having trouble applying:
    http://help.adobe.com/en_US/FlashMediaServer/3.5_SS_ASD/WS5b3ccc516d4fbf351e63e3d11a11afc9 5e-7ec3.html#WS5b3ccc516d4fbf351e63e3d11a11afc95e-7fcb
    Please don't just give me another link, unless it's to a quick, clear explanation.  How do you configure the AMS to allow people to capture screenshots from RTMP video streams?  For the above article, I've tried setting videoStreamAccess and audioStreamAccess both to "/", and even it didn't work.  We also need to be able to do this for P2P RTMFP streams, but that's really a different question.  Thanks.

    You will get a better luck if you post this question on media server forum:
    http://forums.adobe.com/community/adobe_media_server?view=discussions

Maybe you are looking for