How to secure publishing of live streams

Hi,
I have installed Flash Media Server on our server.  When I load up the application home page, I see the demo video of a train.
Then I click on the "Interactive" tab on the right hand side.  I was SHOCKED to see that I can create a live stream from my local camera without any  credentials at all.  Anyone who visits this webpage can publish a live video stream on our Flash Media Server?
Please tell me there is a simple configuration change I can make to close up this gaping security hole.
Thanks

jephperro,
The advised operation for this is a combination of SWF Verification for your general content to ensure that unintended SWFs cannot perform undesired actions on your FMS installation.  If you make use of live publishing then the FMLE authentication plugin is a necessary component as well.
All this information will be forthcoming in the FMS hardening guide - but for now I can help detail for you the solution you'll need to make sure that only your intended targets are using your FMS installation.  Tell me a little about your setup, or email me offlist to do so @ [email protected] and we'll get you sorted.
Asa

Similar Messages

  • How to publish http live stream

    When I use Adobe Flash Media Server 4.5  publish http live stream. I found a message from Server Log of Manage Servers of Adobe Flash Media Administrator Console. It says that "Failed to record live stream (disk quota exceeded)."  How can I do to solve the question?

    I didn't get your query. Are you looking for the restrictions/time limits on different versions ?
    http://www.adobe.com/products/flashmediaserver/compare/

  • How to handle the shared LIVE stream on Facebook that already became a VOD streaming file?

    Hi all,
    I can share a embedded MP4 file on Facebook with facebook OG tag so that people can view the video with inline video player.
    Streaming from FMS 4.5, the embedded LIVE streaming link can be http://<mydomain>/VideoID.f4m
    When internet user viewing/sharing the same link on their facebook, the view the link stream as well.
    When the LIVE event has been completed, the recorded MP4 file would be work as VOD streaming, link like http://<mydomain>/hds-vod/VideoID.f4m
    The problem is that when people click on the previously shared link on facebook, the embedded link is the "http://<mydomain>/VideoID.f4m" that do not exist.
    How can i redirect the f4m to the VOD f4m address? Thanks.

    You could use the Flash server Administrator API getLiveStreams() and read the xml the server throws you with actionscript on your flash
    http://localhost:1111/admin/getLiveStreams?auser=username&apswd=password&appInst=application
    http://help.adobe.com/en_US/flashmediaserver/configadmin/WS5b3ccc516d4fbf351e63e3d119f2926 33e-7ff8.html
    I would thow something like this.
    <result>
    <level>status</level>
    <code>NetConnection.Call.Success</code>
    <timestamp>7/13/2011 10:52:05 AM</timestamp>
    <name>_defaultRoot_:_defaultVHost_:::_1</name>
    <data>
    <_0>live1</_0>
    <_1>live2</_1>
    </data>
    </result>
    Then read the data node and get the number of streams. use some actionscript if data# >= 100
    then trace a message.
    I haven't tried this. but i think is posible.

  • How to find metrics for live streams?

    Hi there,
    We have installed FMS and have used it for a live streaming video event.  The event lasted an hour and FMS worked great.
    How can I get statistics on that live stream?  I'd like to know how many people saw the video, and how many people were watching at one time.
    Can you please tell me where to find this?
    Thanks

    One way to check this is to use the FMS logs. The access logs in <FMS install>/logs folder contains all such information regarding events with time. With default logger configuration it records only certain events like connect, disconnect, etc.  and fields related to them. To enable more logging make changes to the following tags in conf/Logger.xml
    tag 1. Modify <Events> value under <access>. The value of this tag controls which events will be logged in access.00.log. Select the ones which you need. The information of all events have been provided.
    tag2: <Fields> under <access> Similarly you can configure what fields you want to be logged for each event.
    I understand this is not very straight forward as this log may get very large. So you may also consider using file parsers which may be available and use them to parse this file.
    Another way is to use admin API commands. You can check the list of admin APIs listed in FMS documentation. These APIs may give you some information too and you can use the most suitable ones for your purpose.
    Thanks,
    Abhishek

  • How to create encrypted HTTP Live Streaming Videos?

    Does Compressor4 have any features (or scripts that can be run post-compression) to create encrypted HTTP Live Streaming Videos?
    It works great for creating UNencrypted ones, but I need to make some encrypted ones also.

    I found it out: You have to use "New Batch From Template" and choose “HTTP Live Streaming". Then you have to create a new folder where the output goes to in the "Information" window. There is also a checkbox which instructs Compressor to create a "readme.html".
    Then a folder for every quality setting is created, where all the .ts files go to and the playlist files as well. Works like a charm, as soon as you found out how to do it.

  • Simple HTML example on how to display a live stream?

    Hi all
    Is there anyone who has a HTML example (or can give an URL with a page) that has the Adobe Flash player displaying a live stream (and not a file)?
    There is one in the installation under "Flash Media Server Start Screen" but it was too complex for me to understand. I just need a simple example on how to display a live flash stream in Adobes own web player.
    Thank you very much :-)

    Hi,
    Here is the html code.
    <html>
    <head>
    <title>Flash Media Player</title>
    </head>
    <object width="550" height="400">
    <param name="movie" value="player.swf">
    <embed src="somefilename.swf" width="550" height="400">
    </embed>
    </object>
    </body>
    </html>
    And here is the action script code of player.swf.
    import flash.net.NetConnection;
    import flash.events.NetStatusEvent;
    import flash.net.NetStream;
    import flash.media.Video;
    import flash.events.MouseEvent;
    import flash.media.Camera;
    startBtn.addEventListener(MouseEvent.CLICK,mouseHandler);
    var nc:NetConnection;
    var ns:NetStream;
    var vid:Video;
    var cam:Camera=Camera.getCamera();
    function mouseHandler(evt:MouseEvent){
        nc=new NetConnection();
        nc.addEventListener(NetStatusEvent.NET_STATUS,statusHandler);
        nc.connect("rtmp://localhost/sample");
    function statusHandler(evt:NetStatusEvent){
        trace(evt.info.code);
        if(evt.info.code=="NetConnection.Connect.Success"){
            ns=new NetStream(nc);
            ns.addEventListener(NetStatusEvent.NET_STATUS,streamHandler);
            ns.play("LiveStream");
            vid=new Video();
            vid.attachNetStream(ns);
            vid.height=400;
            vid.width=600;
            addChild(vid);
    function streamHandler(evt:NetStatusEvent){
        trace(evt.info.code);
    Please do the following before using the actionscript code:
    Add a button called start in fla and keep its instance name startBtn.
    create an application called sample in FMS and publish a live stream called "LiveStream".

  • How to copy recorded live stream to new drive

    I was wondering if anyone out there knows how to copy a recorded live stream to a new drive on the server?  I can copy the file within the virtual app directory but not to another drive.
    The only solution i found was to edit the application.xml:
    <StreamManager>
            <StorageDir>e:\Sync\</StorageDir>
        </StreamManager>
    But unfortunately i need to rename the file once its recorded, and i'm having a hard time accessing that drive/directory where the file is located.
    Any help is greatly appreciated.
    thanks

    Hi,
    What I understood from your query I am providing you a solution:
    1. You can use the below to copy recorded live stream to new drive/directory in Application.xml
    <StreamManager>
            <StorageDir>e:\Sync\</StorageDir>
    </StreamManager>
    2. By default, a script can access files and directories only within the application directory of the hosting application. A server administrator can grant access to additional directories by specifying virtual directory mappings for File object paths. This is done in the FileObject tag in the Application.xml file, as shown in the following example:
    <FileObject>
          <VirtualDirectory>/_definst_;e:\Sync\_definst_\</VirtualDirectory>
    </FileObject>
    3. Create one application folder suppose test and then create main.asc file inside that which will have the below code
    application.onConnect = function(client) {
    application.acceptConnection(client);
    var fileObj = new File("_definst_");
    var fl = new Array();
    trace("File name : " + fileObj.toString());
    if (fileObj != null)
      if (fileObj.isDirectory)
       fl = fileObj.list();
       for (i in fl)
        trace("Directory : " + fl[i].name);
        if (fl[i].isFile)
         trace("File : " + fl[i].name);
         trace(fl[i].renameTo("dvrstream"+i));
        }//if closes
       }// for closes
      }//if closes
    }//if closes
    }// application closes
    This server side application rename files but since the folder which we had to access was outside application directory of the hosting application we had to map it using step 2.
    If this solution does not answer your query please be more ellaborative on what exactly are you trying to achieve. That will help me to answer your query correctly.
    Regards,
    Amit

  • HTTP Live streaming test in Flash Player, HTML5 player, iphone, android and other smart phones.

    Hi,
    Can anyone please tell me how can I play http live streaming from FMLE 3.2 to Flash player, iphone, ipdad, HTML5 player, Android and other devices?
    I have tried my best to play live streaming usine FMLE 3.2 with help of "http://help.adobe.com/en_US/flashmediaserver/devguide/WSd391de4d9c7bd609-52e437a812a3725df a0-8000.html" but not able to play video using HTTP.
    When I tried to play url-  "http://localhost/hds-live/livepkgr/_definst_/liveevent/livestream.f4m" even in in Strobe Media Player it was showing "Buffering" that's it. But I can play same RTMP URL in Flash AS3 using the netstream very fine.
    Now I want to test the livepkgr content via HTTP to Flash Player, HTML5 Player (on Web browser and smartphones), iphone and other devices.
    Thanks
    Best regards,
    Sunil Kumar

    Hi Sunil,
    It's difficult to debug an issue when you don't have access to the machine and you can't see what's happening, so I request you to please have a little patience.
    For playback just check the following steps and make sure if you have followed them :
    1) Delete the streams folder and any .stream file in the livepkgr
    2) Restart FMS
    3) Make sure you have a crossdomain.xml under root_install/webroot
    4) Publish a stream from FMLE as 'livestream?adbe-live-event=liveevent'
    5) Use this player to playback the stream : http://osmf.org/dev/2.0gm/StrobeMediaPlayback.html?src=http://<your-ip>/hds-live/livepkgr/_definst_/liveevent/livestream.f4m
    If there is no playback, here are some checks you can do :
    1) Request for the http://<your-ip>/hds-live/livepkgr/_definst_/liveevent/livestream.f4m in your browser. You should receive an xml that looks something like this :
    <?xml version="1.0" encoding="UTF-8" ?>
         <manifest xmlns="http://ns.adobe.com/f4m/1.0">
              <id>livepkgr/events/_definst_/liveevent</id>
                      <mimeType />
              <streamType>live</streamType>
              <duration>0</duration>
              <bootstrapInfo profile="named" url="../../../streams/livepkgr/events/_definst_/liveevent/livestream.bootstrap" id="bootstrap7158" />
              <media streamId="livestream" url="../../../streams/livepkgr/events/_definst_/liveevent/livestream" bootstrapInfoId="bootstrap7158">  
                          <metadata>AgAKb25NZXRhRGF0YQgAAAAAAAhkdXJhdGlvbgBAJUUeuFHrhQAFd2lkdGgAQHQAAAAAAA=</m etadata>
                </media>
    </manifest>
    2) Check the access log under Apache to see if the .f4m, .bootstrap and Frag files have been requested and delivered. If a particular entry has a status code of 200 then the file has been served by FMS. You can confirm the same on the client side using a software like fiddler.
    Coming to the player issue, a playback of *f4v via the vod directive is a progressive download, whereas playback of an *f4m file via hds-vod is HTTP streaming. 
    I have personally used Spark VideoPlayer and hence suggested the same.
    You need to add a component like :
    <s:VideoPlayer width="100%" height="30%" chromeColor="#CCCCCC" color="#000000"
                     fontSize="12"
                     source="http://<your-ip>/hds-live/livepkgr/_definst_/liveevent/livestream.f4m"
                        symbolColor="#000000"/>
    Let me know if any of these suggestions help.
    Thanks,
    Apurva

  • Capture the live stream and than play it as vod

    Hi guys,
    Could anyone explain how can I record the live stream and than play it as a vod at later time?
    Is it possible to achive it?
    Can you give any tips guys?

    Hi Mark,
    You can record a livestream by doing a server side record in you application. For example :
    1. Create a folder called test under applications
    2. Within this folder create a main.asc in any text editor and add :
    var pubCount = 0;
    application.onConnect=function(clientObj){
              trace("          on connect ");
              return true;
    application.onDisconnect=function(clientObj){
              trace("          on disconnect "); 
    application.onPublish = function(clientObj,streamObj){
      trace("          in application publish : " + streamObj.name);
      if(pubCount <= 1)
           streamObj.record("record");
      else
           streamObj.record("append");
      pubCount++;
    application.onUnpublish = function(clientObj,streamObj){
    trace("on unpublish : " + streamObj.type + ":" + streamObj.name);
    streamObj.record(false);
    3. You can then publish a stream with the container. If you're using FMLE publish as : mp4:sample.mp4, then the stream sample.mp4 will be recored.
    You can then either host the recorded stream directly in AMS and use as vod file or run the post processor tool f4vpp and use it to play in vlc or other players.
    Hope this hepls. Let me know if you have any other query.
    Thanks,
    Apurva

  • Trying to find lowest latency setting for FMS 3.0 live streaming app

    Hi,
    I work for a technology company in the agricultural industry,
    and we recently bought Adobe FMS 3.0 for live streaming of an
    online auction application. Initially the tests were ok, but the
    stream latency is becoming a real issue. It starts at around 1s
    delay, which is barely acceptable, but an hour into the sale it
    stretches to 2-3s, and more. This is becoming a real deal breaker
    for the Flash solution that looked very promising at the beginning.
    We need to find the absolute lowest latency setting for the
    live streaming application supplied with FMS3.0.
    Low latency (1s max) and stable latency has highest priority,
    more important than picture quality or uninterrupted streaming.
    How can we achieve this? Are there any settings where I can
    tweak the stream latency?
    I am not a Flash expert, but I can find and modify the
    configuration files on the FMS Windows 2003 server.
    Any help would be immensely appreciated.

    On server side:
    FMS installs itself with default configurations optimized for
    Max CPU efficiency. Reducing/shutting-off FMS publisher queues
    using Application.xml config should help in removing the delay that
    you experienced.
    <Application>
    <StreamManager>
    <Live>
    <Queue enabled="true">
    </Queue>
    </Live>
    </StreamManager>
    </Application>
    Changing default setting to <Queue enabled="false">
    disables live publisher queues & aggregate messages ad
    therefore "the delay". (the delay should be reduced to <100 ms
    for a perfect kind of network or LAN)
    --> On client side: Do NOT use NetStream.setBufferTime API
    at all ! i.e. do not set any buffer on client side.; Flash player
    (upto 10, the current version) would try its best to keep the
    buffer around 0.1 seconds, which is the default value.
    OmicronPersei8,
    Which publisher are you using to publish the live stream?
    Sometimes , it is possible that a some fault at stream publisher
    may make buffer at flash player grow.
    I hope this would help !

  • Protecting Live Stream Encoding URL

    We set up a Flash Media Server and we are trying to figure out how to protect our live encoding url. Seems like anyone with a Flash Media Encoder and who knew the location of our server could publish a live stream. Can we password protect this in any way?

    Asa,
    Are you able to share details of what the solution being developed by Adobe will involve, and which versions of FMS it will apply to (an update for 3.0, 3.5 or just a feature of 4.0)
    Thanks,
    Michael

  • Remove Lag from Live Streams

    I am publishing 2 live streams from a computer with 2 video capture cards in it and I get a lag every 30 seconds or so on the subscribers side. I have tried adjusting the camera quality and setMode properties but still the lag persists inside and outside the LAN, is there a way to create a buffer on the server or adjust the way the live stream is received on the subscribers side so there is no noticeable lag? I saw something about editing application.xml to adjust the queue and a suggested bitrate but not sure if this is applicable, here is the link:
    http://www.adobe.com/devnet/flashmediaserver/articles/dynstream_live.html
    Here is my setup:
    The publishing computer:
    2 PCI-e x1 cards, one takes S-Video (480i) and the other DVI (720p)
    Windows 7 64bit
    Intel i7
    6 GB RAM'
    GB NIC and Switch
    From the switch is one hop to a GB router and out to a 10 MB pipe which leads to our datacenter 30 miles away. The swf on this side just gets the 2 cameras, sets the quality to (0,80) and mode to (640,480,25,false) (I have played with these settings a little) and creates 2 lives streams on the FMS.
    The FMS:
    I am running Flash Media Interactive Server 3.5 on my own server with two 3.6 Dual Core Xeon processors and 4 GB RAM. This server resides in a Datacenter and has a 100 MB burstable pipe. From the FMS administration console I am barely using 4MB total bandwidth, 1% CPU usage, 2% RAM.
    The subscribing computer:
    I have used many different types of hardwired PC's within the same LAN and outside the LAN, results are the same.
    The swf on this side just creates 2 new video instances and attaches the 2 netstreams to them. They are placed side by side and the height and width of these videos are undefined.
    Does anyone know where this lag could be coming from, is there any settings I can adjust to improve performance while maintaining a minimum S-Video quality level?
    Thanks

    Hi,
    Thanks for the detailed information in your first post.
    Coming to the latency... It gets affected by various factors. The stream bitrate, FMS server side settings, subscriber's client side setting and on top of these the network bandwidth.
    I need to know the NetStream.bufferTime set at the subscriber's application. Try setting it to 3 when you issue the play, later you can increase it to 8 or so to stabilize the play back.
    Also can you try to subscribe to single stream and check if your client bandwidth is able to play back isngle stream?
    The link which you have mentioned below is a good reference to tune your server side settings.
    Regards,
    Janaki L

  • Online Radio live streaming

    hi
    I've come across an app, paiSARA in android. I want to develop a similar app for Windows Phone. I think AudioStreamer can be used for playing the streams but my main concern is how to get urls of live streaming of various radio stations. If anyone can help
    on this.

    Hello,
    >>but my main concern is how to get urls of live streaming of various radio stations.
    You will need to use your favor search engine to find more radio stations. This forum is to discuss windows phone development, it’s out of our support range.
    Please feel free to post here if you have any dev problem.
    Regards,
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place. Click HERE to participate
    the survey.

  • Trouble connecting to live streams

    Hi,
    I've been using FMS for a few weeks, and feel relatively comfortable with it, but am currently having some trouble connecting to a live stream in a a video conferencing-type application.
    I suspect I'm leaving some small step out, but am having trouble seeing what that step is.
    I have one client application open the video camera, connect to the FMS, and publish it's live camera stream to the server. Something like this:
    Connect to the FMS
    nc.connect("rtmp://<ip addr>9/chat_test/");
    In my connection (success) handler:
    cam = Camera.getCamera();
    cam.addEventListener(StatusEvent.STATUS, statusHandler);
    ns = new NetStream(nc);
    ns.client = new CustomClient();
    ns.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
    ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, onAsyncError);
    ns.attachCamera(cam);
    ns.attachAudio(mic);
    ns.publish("user1");
    This should publish the live stream named "user1" on my FMS instance. Indeed, using the administration console shows that this connection has been established, and a "Live" stream exists with name "user1".
    My problem is when I try to open to this stream with a second client:
    nc.connect("rtmp://<ip addr>9/chat_test/");
    remoteStream = new NetStream(nc);
    remoteStream.client = new CustomClient();
    remoteStream.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
    remoteStream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, onAsyncError);
    vidPlayer = new Video(cam.width, cam.height);
    vidPlayer.attachNetStream(remoteStream);
    remoteStream.play("user1", 0);
    addChild(vidPlayer);
    However, I keep getting "NetStream.Play.StreamNotFound" errors. This seems relatively straightforward, but I'm clearly missing a small step somewhere. Maybe a second pair of eyes can help me find my problem?
    Thanks.

    Replace
         remoteStream.play("user1", 0);
    by
         remoteStream.play("user1");
    the second parameter in play() is start time with default value of -2. Zero means play a VOD from start.
    Check out FMS documentation for details and list of valid values.

  • How to secure Flash Media Streaming Server 3.5 (live stream connection)

    I have Flash Media Streaming Server 3.5 (not Interactive) running on RHEL5.5 x86_64 Linux.
    All is working well, however how do I prevent unauthorized access to connecting to the live stream and streaming content?
    How can I setup the server to require a user and password to stream live media to the server?
    Any help would be great, I am new to this product and I have been reading some documentation but I have not found a clear cut answer on how to force a username and password to connect to the server to stream live content only.
    I am using the Adobe FMS Apache install, what files need changing?
    I have the following files:
    /opt/adobe/fms/applications/live
    total 44
    -rwxr-xr-x 1 fms fms 1035 Jul 27 14:52 allowedHTMLdomains.txt
    -rwxr-xr-x 1 fms fms  992 Jul 27 14:52 allowedSWFdomains.txt
    -rwxr-xr-x 1 fms fms 1550 Jul 27 14:52 Application.xml
    -rwxr-xr-x 1 fms fms 4371 Jul 27 14:52 main.far
    -rwxr-xr-x 1 fms fms 2292 Jul 27 14:52 readme.txt
    I want to lock down a person from connecting to the server on the public internet and starting a live stream?
    Can this be done with a user name and password?

    If you are concerned about anyone starting publishing to your stream then we have security update on this. Please upgrade to 3.5.4 and now you can use FMS Authentication Add-in (used with FMLE as publisher). If you are facing problems with publisher which are not FMLE, please enable SWF Verification so that only valid SWF's connect to your FMS.
    You can find 3.5.4 update here : http://www.adobe.com/support/flashmediaserver/downloads_updaters.html
    You can find FMS Authentication Add-in on FMLE Download page: https://www.adobe.com/cfusion/entitlement/index.cfm?e=fmle3 (when you click on Agree - it will prompt for your Adobe ID - then when you reach Download page - you will get Optional Download of Authentication Add-in)

Maybe you are looking for

  • IPod will not restore in iTunes

    when i turn on my iPod it shows a screen that sais "connect iPod to computer, use iTunes to restore." When i connect the iPod to my computer to restore, it sais there was an unknown error and that it could not restore the iPod. How can i overcome thi

  • "The application PubSubAgent quit unexpectedly"

    Can't open Safari. I get this message every time I try to open it. The application pubsubagent quit unexpectedly. I already tried clearing and deleting pubsubagent and that didn't do anything. I don't have a mobile me .mac account. When I try to open

  • Highest values

    Can any one help me in coding ,to find the 3 highest values from an array.

  • WAD drop-down box and commands on Set Variable values/ Set Filter Values

    Hello to all I am confused in WAD and Help online couldn't clarify my concerns. Thus here following issue: I am using a WAD, where the data provider (query)  is set dynamically. I would like that 1 user selects company in  drop-down-box 1 2 I use com

  • Basic java program wont quit

    I'm in a java class and I'm stuck on this issue. I cant figure out where I went wrong. Any help will be most welcome. I found two examples on how to do this. I used a little from both in order to make mine. The program is suppose to loop back and min