Protecting rtmp stream

recently, i found that 'streamtransport' makes use of IE browser to capture rtmp/rtmpe/rtmps transport data stream.   how is Adobe's suggestion to bypass this s/w?

you don't bypass it you build security code in you main.asc file which protects your content its almost impossible to 100% protect content anyway so alot of sites don't bother with it. but it is a good idea to make the instance part of the stream a random alpha-numeric string   such as videoname+new Date().valueOf(); make it 50 or more characters this will make it much harder to consume the stream with rouge .swf

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

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

  • Decompose multiple videos in single RTMP stream

    Hello,
    Our back-end developer is using GStreamer to stream videos, which are then translated from an RTSP stream to an RTMP stream via Wowza.  GStreamer is combining three videos and an audio track into a single stream with metadata about each video and the audio track.  At the moment, when the stream is opened, the three videos play overtop one another.  Is it possible to decompose the three videos into individual videos/streams and play them in three separate video players? (they will be controlled together, but need to appear in separate locations onscreen.  Any help/advice would be greatly appreciated.

    Whatever you do , DON'T CROSS THE STREAMS !

  • 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

  • Reports of 17.0.0.169 with garbled sound and vid on rtmp streaming w/jwplayer?

    Hello Adobe,
    I run a website that uses live streaming rtmp to the jwplayer6 video player.  Starting today, some viewers who downloaded Adobe Flash player 17.0.0.169 are getting very garbled sound and video that speeds up/slows down.  This is happening on a number of users on various platforms: Win 7, Win 8.1, Linux and various browsers; Firefox, Safari, Opera, and IE (reported so far).  Some folks are reporting it happens only on Firefox and not Chrome.  Thoughts?  How to proceed?  We are telling our users, unfortunately, uninstall the latest version of Flash and rollback.
    Frank P.

    Hi Jeromie,
    I'm and end user getting disastrous garbling and speeding via Ustream Streams.One broadcaster I watch was able to almost elimate the issue by reducing the quality of the outgoing content I believe.  It would be beneficial if you contacted Ustream yourself so they can notify their subscribers of a work around.
    Laurence
    Sent from Yahoo Mail on Android
    From:"Jeromie Clark" <[email protected]>
    Date:Mon, Apr 20, 2015 at 15:01
    Subject:[Installing Flash Player] Reports of 17.0.0.169 with garbled sound and vid on rtmp streaming w/jwplayer?
    Reports of 17.0.0.169 with garbled sound and vid on rtmp streaming w/jwplayer?
    created by Jeromie Clark in Installing Flash Player - View the full discussion
    Hi Simon,
    I'm really sorry to hear that your event may be impacted.  I'd highly recommend that you reach out to Ustream.  We would be more than happy to share technical details with them on how to configure the streams to work around the issue.  We will have a public beta available for download before your event at http://www.adobe.com/go/flashplayerbeta/, but realize that this is a sub-optimal solution.
    Ustream employees can send me a private message via the forums (just click my name), and I'll be more than happy to put them in contact with an engineer that can offer guidance.
    Thanks,
    Jeromie
    If the reply above answers your question, please take a moment to mark this answer as correct by visiting: https://forums.adobe.com/message/7455939#7455939 and clicking ‘Correct’ below the answer
    Replies to this message go to everyone subscribed to this thread, not directly to the person who posted the message. To post a reply, either reply to this email or visit the message page:
    Please note that the Adobe Forums do not accept email attachments. If you want to embed an image in your message please visit the thread in the forum and click the camera icon: https://forums.adobe.com/message/7455939#7455939
    To unsubscribe from this thread, please visit the message page at , click "Following" at the top right, & "Stop Following"      
    Start a new discussion in Installing Flash Player by email or at Adobe Community
    For more information about maintaining your forum email notifications please go to https://forums.adobe.com/thread/1516624.

  • 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

  • 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

  • FLVPlayback issue loading RTMP stream

    Hi, I'm currently having a problem with FLVPlayback refusing to play a stream from a certain site. The flvplayback was playing streams from a different remote site fine, the stream that it is attempting to play work in other AS2 FLVPlayback components on different sites using the same skin, and the stream is pointing to the right file. When tracing the FLVPlayback streams, the streams that work show the states buffering, playing while the stream that doesn't work only hits the state "loading." During the entire process no errors are thrown. When I run the FLVPlayback locally it has no trouble loading from either remote rtmp site.
    Thanks,
    Ed

    Updated the FLVPlayback component with the very latest.
    Updated my project from Flash 9 to Flash 10.
    It's working like a charm !

  • Rtmp streaming on demand video on my website problem

    I set up my ams server to stream ondemand rtmp video to stream on server all is well on that side but cant get it to stream to my website need some help please.

    It is hard to say why it is not working but here are couple of things you can try:
    - check if swf verfication is incorrectly configured Adobe Media Server 5.0.3 * Configuring security features
    - check your port configurations to verify if RTMP port 1935 is open. RTMP by default uses port 1935. Refer to Troubleshooting connection issues with Adobe Media Server | Adobe Developer Connection, and Ports and firewalls | Flash Media Server

  • Not Found RTMP streams and Buffering Message

    I'd like to provide our clients with something that indicates that a VOD file isn't found when requested via RTMP.
    Using the Strobe player, the default behavior from FMS 4.5 is to throw up a continuous "Buffering" message when the file isn't found.
    When it's a live stream, we can control the return a response with FCSubscribe; so if it's not there, we can send back a response. HTTP (HDS/HLS) do return a file not found when requesting a missing file.
    I tried this from a stock version of FMS using the /vod directory and any time that I place in a vod rtmp location that doesn't exist I get a buffering message.
    I know that I could add a timeout to the client side - but I'm trying to stick to stock OSMF and make it work from the server side with multiple players.
    Is there server side actionscript /or c++ plugin that I can add that will check the presence of the file and return a "not found" when the play is requested?
    How/where would I exactly add that? Seems realitively simple, but not seeing any reference or information about how to set it up.
    Much thanks in advance.
    -Will

    Thank you for the response.
    Not getting that response from the stock version of FMS 4.5:
    1320069319931: *** NetConnection.Connect.Success ****)
    1320069319936: Manual switching enabled
    1320069319936: buffer length: 5
    1320069319937: play() called. isLive = false, is multibitrate = false
    1320069319938:     PlayArgs:[object DynamicStreamBitrate]
    1320069319940: Set rate limit to 1 kbps
    1320069319940: Starting with stream index 0 at 1 kbps
    1320069319941: Transition complete to index 0 at 1 kbps
    1320069319942: ***_ NetStream.Play.TransitionComplete ***
    1320069320138: *** onNetStatus: NetStream.Play.Reset
    1320069320139: *** onNetStatus: NetStream.Play.Start
    This is using an OVP player base - the strobe player just spins as well.
    The issue appears with a stock version of FMS, and the stock OSMF Strobe Playback.
    So should I report this as an FMS 4.5 and OSMF issue?
    Thanks.

  • I am new to this. How do I get OSMF player to handle RTMP streams? It's not in the docs.

    Hello all,
    I want to stream RTMP or RTMPE using the OSMF player on my website and although the using_fmp_smp_post1.0.pdf file SAYS this player can be configured for RTMP, NOWHERE in this file does it say HOW to do so. Keep in mind, not all of us are software engineers. Some of us save every penny to buy software like FMIS (which I did) and I want to use OSMF player to deliver the goods.
    So...
    Tell us HOW to deliver the goods vis RTMP!!!
    Please.
    Cheers,
    wordman

    WriterDonna,
    Thank you for listening! As a tech writer myself, I am always finding places in documentation that miss some crucial point. I respect the fact that OSMF is in pre-release stage and I am grateful for all the work required to get such a project off the ground.
    All I ask, and what I believe should always be included in documentation is this: If you mention a feature, address it and explain it. That simple. For example, the page regarding the player's installation in one's htdocs folder on their web server is concise, but it's also too little. It tells us how to check that the installation works by playing the sample video, but it offers NOTHING about how to troubleshoot the installation if the sample does not play.
    Please keep in mind that not everyone is a software engineer and there are people out there who are struggling along to not only learn a new technology, but are also having to implement it, almost simultaneously, as well. I appreciate that ideally, we'd all read tutorials, take classes and get up to speed FIRST. But as a one-man developer shop, I often have to learn and implement simultaneously. I have no choice. (I did so with PHP and MySQL).
    If your documentation can be technically concise while speaking in a tone that is understandable to people of modest skill levels (this is where the REOPS docs fail miserably) then, in my opinion, you will have succeeded. In turn, the users will be empowered and become your greatest champions.
    Again, thank you for listening!
    Sincerely,
    wordman

  • Flash Media Server 5 - VOD RTMP Streaming Failing in Subfolders

    I've setup a default install of FMS5 and can get the sample.flv file to stream with no issues.  I can take my FLVs I wish to stream and put them in the /vod/media folder and stream those.  The problem I'm having is when I create a subfolder I can no longer access the file for streaming.
    The Path looks like this:
    /VOD/media/subfolder/lecture1/mediafile.flv
    I've tried
    rtmp://domain.com/VOD/_definst_/subfolder/lecture1/mediafile.flv
    rtmp://domain.com/VOD/subfolder/lecture1/mediafile.flv
    Neither seem to work, I've read through several threads that seem indicate _definst_ solves this problem but I can't seem to get that to work.
    Any ideas or help would be great.
    Thanks in advance.

    Thanks, still can't seem to get it to stream here's what I have:
    The sample.flv file is in this path:
    C:\Program Files\Adobe\Adobe Media Server 5\applications\vod\media\sample.flv
    My File is:
    C:\Program Files\Adobe\Adobe Media Server 5\applications\vod\media\CPAExam\AUD.v18\MonB_020613_08\MonB_020613_08.flv
    These calls work:
    rtmp://lme-bisk.thomsonreuters.com/vod/_definst_/CPAExam/AUD.v18/MonB_020613_08/sample
    rtmp://lme-bisk.thomsonreuters.com/vod/_definst_/CPAExam/AUD.v18/MonB_020613_08/sample.flv
    rtmp://lme-bisk.thomsonreuters.com/vod/sample.flv    (basically any URL seems to find sample.flv)
    Some sample calls that are not working:
    rtmp://lme-bisk.thomsonreuters.com/vod/_definst_/CPAExam/AUD.v18/MonB_020613_08/MonB_02061 3_08.flv
    rtmp://lme-bisk.thomsonreuters.com/vod/CPAExam/AUD.v18/MonB_020613_08/MonB_020613_08.flv
    rtmp://lme-bisk.thomsonreuters.com/vod/_definst_/CPAExam/AUD.v18/MonB_020613_08/MonB_02061 3_08
    rtmp://lme-bisk.thomsonreuters.com/vod/CPAExam/AUD.v18/MonB_020613_08/MonB_020613_08
    I can't find any URL that will call the MonB_020613_08.flv succesfully.  I can however move that file to the vod/media folder and it works fine.  We have hundrends of videos in subfolders as indicated above so moving them all too the root media folder won't work as some filenames may repeat.
    Thanks again for the help.

Maybe you are looking for

  • Dual Booting with Windows 8 and 7 Pro in a G6 - 2235us Notebook

    I have a G6 - 2235us Notebook 64 bit  that came with Windows 8.0  installed. I would like to install Windows 7 Pro and make it dual book with Windows 8.0 with 7 as the default to start. Would you please give me steps as to how to proceed and also the

  • Logic mountain lion

    Hi, after the upgrade to Mountain Lion, I have some problems with Logic Pro expecially with its plug-ins.. Every time I open one Logic's plug-in it doesn't answer to my command and I can't change parameters.. I can't also Stop the song and I must wai

  • SAP WM Certification

    I want to know how to go about getting certified with SAP WM? I have about 8 years of on hands dealing with deliveries, shipments, transfer orders, Transfer requiements, Managing material bins, setting up control cycles, dealing with all types of cog

  • Can I use operator to view a scenario started with startscen.sh

    Can a scenario started with startscen.sh be seen within operator? I run the scenario and the execution does not show up in operator.

  • QRFC with ALE for outbound interfaces

    I'm working on a client that is using ERP 4.7 (R/3).  We would like to use the ALE qRFC addition to utilize the serialization concept.  In the partner profile, I see a check box that says "queue processing". To our understanding, it enables qRFC  wit