Caching in FMS 2.0.4

Hi,
We have set up FMS 2.0.4 and want to find out if caching
capability is available in FMS and information regarding cache
settings. Please let me know if this information is already
available somewhere.
Any help on this topic would be helpful.
Thanks!

Try looking into the Edge configuration guide. Its a pdf that
comes with the FMS. Configure Edge and Origin server to check the
caching capabilities

Similar Messages

  • Necessity of Media Server?

    Greetings everyone. Yes, I'm one of those 1 post, 1 question
    newbies, but look forward to contributing more in the future.
    I've recently been tasked by my company to research our
    options for streaming Flash videos. I've got some experience with
    video conversion and web-hosting, but delivering Flash video is new
    to me. I've downloaded the FMS 2.0 app and found it less than
    intuitive. I've also been told that presenting a client with a
    simple FLV Player (including parameters that point to an FLV file)
    is a solid option. My initial thought has always been that for a
    production environment, you need to use the enterprise-class
    application. However, if similar results can be yielded with less
    effort, I'm always game. Without boring you with our business needs
    surrounding this project, would someone be able to help me
    understand the benefits, disadvantages, pitfalls...etc of choosing
    one method over the other. Thanks in advance...great forum!
    BrianR

    Progressive download (serving the flv via http) is a
    perfectly sensible option,
    and lots of enterprise level sites use it (like Fox, NBC, The
    NYT, Discovery,
    and many others).
    The key differences are:
    1. With progressive, the video is stored lin the users
    cache, where FMS
    streams are discreded as they are played.
    2. You can't seek through a progressive download. you can
    only seek to the
    furthest point that has downloaded.
    3. You lose some stat tracking ability with progressive.
    Beyond that, there's not a whole lot of difference... so (as
    I see it),
    progressive is a perfectly reasonable solution, even for
    enterprise level
    deployments

  • Breaking FMS Caching For Specific Video(s)

    We occasionally run into a condition that appears to require cache breaking. If a user rotates a video that has been recently played and the video is currently in the FMS cache, subsequent requests for the video will continue to show the unrotated video.
    Is there a way to break the FMS cache for a specific video? If not, I would be equally curious for a way to clear the cache completely, though this is going to cause a much larger performance hit than I would hope for.

    AVI is a wrapper... what is inside your wrapper?
    Codec & Format information, read both links in reply #1 http://forums.adobe.com/thread/1270588
    Report back with the codec details of your file, use the programs below... A screen shot works well to SHOW people what you are doing
    http://forums.adobe.com/thread/592070?tstart=30 for screen shot instructions
    For PC/Mac http://mediaarea.net/en/MediaInfo/Download

  • How can I improve my FMS performance?

    Hi...
    I have two FMS 3.5 streaming servers... Both have Windows Server 2003 x64 with 16 GB of RAM...
    I'm streaming from a common storage and my Application.xml file is like this:
    <Application>
      <StreamManager>
        <VirtualDirectory>
          <!-- Specifies application specific virtual directory mapping for recorded streams.   -->
          <Streams>/;L:\media</Streams>
        </VirtualDirectory>
      </StreamManager>
      <DisallowedProtocols>rtmp,rtmps,rtmpt</DisallowedProtocols>
      <!-- Settings specific to runtime script engine memory -->
      <JSEngine>
        <!-- This specifies the max size (Kb.) the runtime can grow to before -->
        <!-- garbage collection is performed.                                 -->
        <RuntimeSize>20480</RuntimeSize>
      </JSEngine>
      <Client>
        <Bandwidth>
          <!-- Specified in bytes/sec -->
          <ServerToClient>2500000</ServerToClient>
          <!-- Specified in bytes/sec -->
          <ClientToServer>2500000</ClientToServer>
        </Bandwidth>
        <MsgQueue>
          <Live>
            <!-- Drop live audio if audio q exceeds time specified. time in milliseconds -->
            <MaxAudioLatency>2000</MaxAudioLatency>
            <!-- Default buffer length in millisecond for live audio and video queue. -->
            <MinBufferTime>2000</MinBufferTime>
          </Live>
          <Recorded>
            <!-- Default buffer length in millisecond for live audio and video, value cannot be set below this by Flash player. -->
            <MinBufferTime>2000</MinBufferTime>
          </Recorded>
          <Server>
            <!-- Ratio of the buffer length used by server side stream -->
            <!-- to live buffer.  The value is between 0 and 1.  To    -->
            <!-- avoid break up of audio, the ratio should not be more -->
            <!-- than 0.5 of the live buffer.                          -->
            <BufferRatio>0.5</BufferRatio>
          </Server>
        </MsgQueue>
         <!--OVERRIDE APPLICATION LEVEL-->
         <!-- Specifies the RTMP chunk size to use in all streams for this     -->
         <!-- application.  Stream content breaks into chunks of this size     -->
         <!-- in bytes.  Larger values reduce CPU usage, but also commit to     -->
         <!-- larger writes that can delay other content on lower bandwidth     -->
         <!-- connections.  This can have a minimum value of 128 (bytes) and     -->
         <!-- a maximum value of 65536 (bytes) with a default of 4096 bytes     -->
         <!-- Note that older clients may not support chunk sizes largee than     -->
         <!-- 1024 bytes. If the chunk setting is larger than these clients can     -->
         <!-- support, the chunk setting will be capped at 1024 bytes.          -->
         <OutChunkSize>3072</OutChunkSize>
         <!--OVERRIDE APPLICATION LEVEL-->
         <!-- An application can be configured to deliver aggregate messages to       -->
         <!-- clients that support them by setting the "enabled" attribute to "true". -->
         <!-- The server will attempt to send aggregate messages to these supported   -->
         <!-- clients based whenever possible.                                        -->
         <!-- When this setting is disabled, aggregate messages will always be broken -->
         <!-- up into individual messages before being delivered to clients.          -->
         <!--  The default is "true".                                         -->
         <AggregateMessages enabled="false"></AggregateMessages>
         <!--OVERRIDE VHOST LEVEL-->
         <AutoCloseIdleClients enable="true">     
              <CheckInterval>60</CheckInterval>
              <MaxIdleTime>1200</MaxIdleTime>
         </AutoCloseIdleClients>
      </Client>
    </Application>
    The Server.xml and fms.ini have default settings.
    My RAM usage is always low... 1,1 GB... and also my CPU usage is low. The FMSCore.exe process reaches 630 MB usage and then stays at this level.
    How can I use my server's RAM or have you any tips or suggestions to improve FMS performance with some special settings?
    I tried to change this in fms.ini:
    SERVER.FLVCACHE_MAXSIZE=500
    to 1000 but the application crashes after it reaches 2GB of RAM.
    Thanks in advance
    best,
    Marco

    Hi,
    Thanks for trying the different settings...
    When we talk of tuning for the best performance, different settings are required for different scenarios, for example, a live broadcast would require aggregation of messages (if latency is OK) but a live conferencing solution might need to disable it. So unless the use case is little briefed it is tough to conclude on any generic settings to improve performance.
    I would also like to comment on the FLVCache size. I recommend it to be set to 1/4 the size of your RAM. And you can safely tweak only the SERVER.MAXFLVCACHESIZE variable without worrying on the other variable (which is in percentage). This is supposed to take priority over all other settings.
    If your use case is a vod, have 1/4 RAM as cache size, and also tweak the video buffer settings for mp4 (if you have mp4 content as well). OutchunkSize is another variable that you may want to tweak (at the cost of CPU and latency). You can aggregate the messages.
    Also, you need to make sure of the client side buffer settings to match your FMS settings as well as your use case requirements.
    Hope it all helps.
    Thank you !

  • FMS 4.5 and FMLE errors (hds-live is not defined).

    I came across this thread, http://forums.adobe.com/message/4929789, because I am testing a new FMS 4.5 server and I'm having several problems with live streaming.
    Issue 1: Server does not stream after FMLE is stopped.
    I set up a test FMLE 3.2 stream last week that we hope to use for an event 4 days from now. When I initially set up the FMLE live stream everything worked fine, so I stopped the encoder and started to design a site to play the live stream. When I restarted the FMLE stream today nothing worked, and looking in the corelog I found this error: "Restarting the recording after 2.000000 days is not allowed". That error led me to the thread linked above and to several others.
    I have tried the various suggestinons in this thread, http://forums.adobe.com/thread/959974, including:
    Forum Post 15: changing livestream and liveevent names: changing the names works, but this is not a good solution since I am building web pages to publish these streams and that would require changing the links on the pages everytime we want to live stream.
    Fourm Post 18. using query paramter: livestream?adbe-live-event=liveevent&adbe-record-mode=record (does not work).
    Finally, I deleted all of the previous entries that were created in the following folder:
    H:\Program Files\Adobe\Flash Media Server 4.5\applications\livepkgr\events\_definst_\
    I restarted FMLE and the streams worked again. What can I do to fix this? As I mentioned above, using the "record" query parameter in FMLE did not work. I would hate to have to delete all of the old events every time that I want to start a new stream.
    Issue 2: hds-live streaming does not work. I set up a multi-bit rate live streaming page following these diretions, http://help.adobe.com/en_US/flashmediaserver/devguide/WSd391de4d9c7bd609-52e437a812a3725df a0-8000.html, but I cannot get hds-live streaming to work. Every connection is rejected and the edge.log file has the following error: Connection rejected by server Reason (hds-live) is not defined. I tried the suggestions posted by Manish on this thread, http://forums.adobe.com/message/4929789, (post no. 8: deleting the entries livepkgr/streams, restarting the server, clearing the browser cache), but I cannot get hds-live streaming to work. I think this problem might be related the the <MaxRestartGap> issue described above, but the steps that resolve that problem only work to enable hls-live streaming and have not solved the hds-live issues.
    What should I do?
    Thank you for you help.

    Issue 1: "...please change the <streamsynchronization> enabled to true in FMLE config.xml."
    This was one of the first steps in the Adobe help document that I followed to set up live streaming. Setting synchronization to true has not resolved the issue.
    The Apache error log is humongous, so I will try to narrow down the issue so that I can provide the relevant errors sometime next week. It seems that changing the names of the live stream events (or deleting the old ones) is a temporary solution for now. I won't have time to really work on this until next week so I'll come back and give you an update of my progess then.
    Thank you for the help. 

  • Install fms 4 in Windows 7 and access from a webserver in different domain

    Hi,
    I have installed fms 4 in windows 7 in my computer, but i cant get it work with a flex application that i have in a server.
    I added the port in my router's settings
    2
    fms
    all(udp/tcp)
    19350
    65535
    xxx.xxx.xxx.xxx
    19350
    65535
    3
    fms
    all(udp/tcp)
    1935
    1935
    xxx.xxx.xxx.xxx
    1935
    1935
    hope someone can help me.
    thanks,
    Javier

    thanks for the response Jay,
    i havent done that, what settings is needed to change?
    this is my fms.ini
    # fms.ini contains substitution variables for Flash Media Server          #
    # configuration files. Lines beginning with '#' are considered comments.  #
    # A substitution variable is in the form <name>=<value>. Everything up to #
    # the first '=' is considered the name of the substitution variable, and  #
    # everything after the first '=' is considered the substitution value. If #
    # you want a substitution variable to have leading or trailing spaces,    #
    # enclose the value around double quotes. For example, foo=" bar "        #
    # This section contains configurable parameters in Server.xml #
    # Username for server admin
    # For example:
    #    SERVER.ADMIN_USERNAME = foo
    SERVER.ADMIN_USERNAME = foo
    # Password for server admin
    # For example:
    #    SERVER.ADMIN_PASSWORD = bar
    SERVER.ADMIN_PASSWORD = bar
    # IP address and port Flash Media Admin Server should listen on
    # For example:
    #    SERVER.ADMINSERVER_HOSTPORT = :1111
    SERVER.ADMINSERVER_HOSTPORT = :1111
    # User id in which to run the process (Linux Only)
    # For example:
    #    SERVER.PROCESS_UID = 500
    SERVER.PROCESS_UID =
    # Group id in which to run the process (Linux Only)
    # For example:
    #    SERVER.PROCESS_GID = 500
    SERVER.PROCESS_GID =
    # License key for Flash Media Server
    # For example:
    #    SERVER.LICENSEINFO = FMD200-XXXXX-XXXXX-XXXXX
    SERVER.LICENSEINFO =
    # LIVE_DIR denotes the full path of sample "Live" application's
    # folder for storing any live stream recorded by server. 
    # For example:
    #    LIVE_DIR = <FMS_Installation_Dir>\applications\live
    LIVE_DIR = C:\Program Files\Adobe\Flash Media Server 4\applications\live
    # VOD_COMMON_DIR denotes the full path of sample "VOD" application's
    # folder for storing onDemand and Progressive Download .flv/.mp3 files.
    # File stored in this folder can be streamed and are also PD-able.
    # Note : If you are using the default installation of Apache as a webserver,
    # and if you modify VOD_COMMON_DIR, please change the document root
    # accordingly in httpd.conf.
    # For example:
    #    VOD_COMMON_DIR = <FMS_Installation_Dir>\webroot\vod
    VOD_COMMON_DIR = C:\Program Files\Adobe\Flash Media Server 4\webroot\vod
    # VOD_DIR denotes the full path of sample "VOD" application's
    # folder for storing onDemand only .flv/.mp3 files. Files stored in
    # this folder are not PD-able
    # For example:
    #    VOD_DIR = <FMS_Installation_Dir>\applications\vod\media
    VOD_DIR = C:\Program Files\Adobe\Flash Media Server 4\applications\vod\media
    # The maximum size of the FLV cache, in megabytes.
    # The default is 500MB.
    SERVER.FLVCACHE_MAXSIZE=500
    # Whether to start and stop the included HTTP server along
    # with FMS.
    SERVER.HTTPD_ENABLED = false
    # This section contains configurable parameters in Adaptor.xml #
    # IP address and port(s) Flash Media Server should listen on
    # For example:
    #    ADAPTOR.HOSTPORT = :1935,80
    ADAPTOR.HOSTPORT = :1935,8000
    # IP (address and) port that Flash Media Server should proxy
    # unknown HTTP requests to. Leave empty to disable proxying.
    # With no address, specifies a localhost port.
    # For example:
    #    HTTPPROXY.HOST = webfarm.example.com:80
    HTTPPROXY.HOST = :8134
    # This section contains configurable parameters in Vhost.xml #
    # Application directory for the virtual host
    # For example:
    #    VHOST.APPSDIR = C:\myapps
    VHOST.APPSDIR = C:\Program Files\Adobe\Flash Media Server 4\applications
    # This section contains configurable parameters in Application.xml #
    # List of semi-colon delimited paths in which to search for script to load
    # For example:
    #    APP.JS_SCRIPTLIBPATH = C:\scripts;C:\Program Files\Foo\scripts
    APP.JS_SCRIPTLIBPATH = C:\Program Files\Adobe\Flash Media Server 4\scriptlib
    # This section contains configurable parameters in Logger.xml #
    LOGGER.LOGDIR =
    # This section contains configurable parameters in Users.xml #
    # Enable or disable using HTTP requests to execute admin commands.   
    # Set to "true" to enable, otherwise it will be disabled.  The          
    # actual commands permitted for server admin and virtual host admin  
    # users can be set in Users.xml.                                      
    USERS.HTTPCOMMAND_ALLOW = true
    thanks,
    Javier

  • FMS edge hybird mode

    I need help to setup FMS edge can stream video from a FMS-core (or from other FMS-edge). configuration diagram:
    FMLE ==> FMS-core ==> FMS-edge ==> users.
    on FMS-edge i have a application on
    C:\AMS\applications\myapp
    if i did not change anything in Vhost.xml file (path: C:\AMS\conf\_defaultRoot_\_defaultVHost_\Vhost.xml). The myapp application is ok, but can not see the video stream rtmp://FMS-edge/live/livestream.
    if i change Vhost file:
    <Proxy>
                        <Mode>remote</Mode>
    <RouteTable protocol="">
                                  <RouteEntry>FMS-edge:1935;FMS-core:1935</RouteEntry>
    Then video stream is ok but application don't.
    In this case, setup FMS-edge hybird mode. 1 Vhost setup as local mode to serve myapp application, and 1 Vhost setup as remote mode to serve streamming video from FMS-core, right?
    Tony

    hey one541_,
    i believe for you to be gettiing .proxy files you must be having disk caching enabled. These are created to handle process mutex.  These files get removed as soon as fms shuts down. If these are not getting deleted maybe you are not shutting the edge server (in the edge origin configuration) down properly or you are not shutting down at all.

  • What if I want to LET USER CACHE videos streamed using FMS3?

    For my new video website I want the users TO BE ABLE TO CACHE
    but at the same time I want them to have the benefit of jumping
    anywhere on the timeline to see only the part they are interested
    in without downloading complete video (which can be done only
    through streaming IMHO)
    Is it possible in FMS3? any other solution?

    On Fri, 29 Feb 2008 02:18:29 +0000 (UTC), "anshulag"
    <[email protected]> wrote:
    >For my new video website I want the users TO BE ABLE TO
    CACHE but at the same
    >time I want them to have the benefit of jumping anywhere
    on the timeline to see
    >only the part they are interested in without downloading
    complete video (which
    >can be done only through streaming IMHO)
    The answer is "HTTP Streaming". In fact you don't need FMS if
    you wish
    to allow users to cache videos. You can use any webserver
    with
    PHP/MySQL. AFAIK, Google Video works just in this way. You
    can find
    some brief description of how HTTP Streaming works for
    example here:
    http://home.openworldpresenter.com/flash/index.php?pid=43
    Sorry, it's not an advertizing, but just a link. Of course,
    you'll
    need to create some special SWF movie (pretty simple though)
    to let
    your viewers to see such videos. Fast navigation is
    guaranteed.

  • Cache issue coming in Start Process for Employee iView under MSS

    Hi,
    Navigate to MSS -> Team -> HCM Process and Forms -> Start Process for Employee
    In Start Process for Employee iView, when I clicks on Refresh link at the bottom right of the table the Direct Reports got removed from the table (which is correct) but when I navigates to some other screen and comes back then again the previous data comes back. It seems to be cache level issue. Even I logs off and login the same data comes back which should not happen.
    I have checked the forum [Team=>Personnel Developent=>Employee Search; and found it that Refesh property will work if I set the parameter of iview Cache Lifetime = -1 then it will disable the caching at all.
    And I wants the same behaviour for Start Process for Employee iView. But I am not able to find the similar property in Start Process for Employee iView.
    Anyone have an idea of What is the resolution for this issue?
    Regards,
    Deep

    Hi Deep,
    now I understand your problem )
    To me it sounds like an OADP cache issue rather than one in Portal. The iview uses OADP which again uses the cache which does not reflect on the actual current org-structure.
    One possibility would be enhancing the WD4A and call FMs
    HRWPC_OADP_DELETE_TGTOBJCACHE
    HRWPC_OADP_DELETE_SRCHOBJCACHE
    HRWPC_OADP_DELETE_NAVOBJCACHE
    HRWPC_OADP_DELETE_DATAVWCACHE
    dependent on what you want to delete to refresh.
    I would probably try to enhance HookMethod WDDOINIT in Component Controller and call them there, but that's just a guess; could be complete nonesense.
    Another possibility would be trying to add the application parameter "sap.xss.req.crt.cachelifetime=0" to the iView.
    Links for reference:
    http://help.sap.com/saphelp_ppm50/helpdata/en/21/1ac5ca5cad46528d4f970cc03b8e8f/content.htm
    Web dynpro abap and OADP cache
    http://help.sap.com/saphelp_dimp50/helpdata/DE/97/7f754067025537e10000000a1550b0/content.htm
    hope this helps a bit now
    regards, Lukas

  • Record from webcam to f4v on FMS

    I'm trying to build / modify an application to record from webcam and microphone, in a web browser and save it to an FMS 5.4.2 server to stream via web and iOS
    recording as a flv file works fine and it plays back just fine in firefox / any browser
    I can steam f4v files over http as filename.f4v.m3u8 and that works fine with the samples that come with FMS from my record folder (/opt/adobe/fms/applications/record/streams/)
    My flash web application can record to the FMS server, the file it records has the .f4v file extension, has content (i see the file size), and has time in quicktime (4 or 5 seconds - just a test) but it doesn't play - the screen is black and never starts.
    I know i'm right on the edge of figuring this out, I just don't know what I'm missing or whats wrong (i'm a php programmer, not action script)
    any ideas ?
    here is the code i'm working with:
    package com
        import fl.controls.ProgressBar;
        import fl.controls.ProgressBarMode;
        import flash.display.MovieClip;
        import flash.events.Event;
        import com.NetConnector
        import flash.events.MouseEvent;
        import flash.events.TimerEvent;
        import flash.media.Camera;
        import flash.media.Microphone;
        import flash.media.Video;
        import flash.net.navigateToURL;
        import flash.net.NetConnection;
        import flash.net.NetStream;
        import flash.net.URLLoader;
        import flash.net.URLLoaderDataFormat;
        import flash.net.URLRequest;
        import flash.net.URLRequestMethod;
        import flash.net.URLVariables;
        import flash.text.TextField;
        import flash.utils.setTimeout;
        import flash.utils.Timer;
        import flash.media.H264Level;
        import flash.media.H264Profile;
        import flash.media.H264VideoStreamSettings;
        import flash.media.VideoCodec;
         * @author Alexander (flash2you) < >
        public class Recorder extends MovieClip
            private var dataHolder:DataHolder = DataHolder.getInstance()
            public var layer:MovieClip
            public var activityLevel_pb:ProgressBar
            public var aguja:MovieClip
            public var aguja2:MovieClip
            public var publishButton:MovieClip
            public var timer_txt:TextField
            public var recordStatus:MovieClip
            public var recordBtn:MovieClip
            private var netStream:NetStream
            private var microphone:Microphone = Microphone.getMicrophone()
            private var camera:Camera = Camera.getCamera()
            public var  video:Video
            private var timer:Timer = new Timer(100)
            private var clockTimer:Timer = new Timer(1000)
            public var published:Boolean = false
            private var isRecording:Boolean = false
            private var minutero = 0;
            private var crono = 0;
            private var records = 0;
            public var settings_mc:MovieClip
            public static var recorder:Recorder
            public var settings_icon:MovieClip
            private var limitTimer:Timer
            public function Recorder()
                Recorder.recorder = this;
                timer.addEventListener(TimerEvent.TIMER, on$timer)
                clockTimer.addEventListener(TimerEvent.TIMER, on$clockTimer)
                //visible = false
                recordBtn.buttonMode = true
                recordBtn.addEventListener(MouseEvent.CLICK , recordBtn$click)
                recordBtn.addEventListener(MouseEvent.MOUSE_OVER, recordBtn$over)
                recordBtn.addEventListener(MouseEvent.MOUSE_OUT, recordBtn$out)
                addEventListener(Event.ADDED_TO_STAGE, onAddedToStage)
                limitTimer = new Timer(dataHolder.timelimit * 1000);
                limitTimer.addEventListener(TimerEvent.TIMER, onLimitTimerHandler)
            private function onLimitTimerHandler(e:TimerEvent):void
                 stopPublish()
             *  when we comes to second frame
            private function onAddedToStage(e:Event):void
                removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
                init()
             *   function for set up camera from settings module
            public function setCamera(_camera:Camera) {
                camera = _camera
                addCameraSettings()
                video.width = 1280;
                video.height = 720;
                video.attachCamera(camera)
                if (netStream){
                    netStream.attachCamera(camera)
            public function setMicrophone(mic:Microphone) {
                microphone = mic;
                if (netStream){
                    netStream.attachAudio(microphone)
                addMicSettings()
            private function addMicSettings() {
                microphone.setUseEchoSuppression(true);
                microphone.setSilenceLevel(1)
            private function addCameraSettings():void
                camera.setMode(1280, 720, 25);
                   camera.setLoopback(true);
                   camera.setQuality(0, 100);
            public function init() {
                startConnect()
             *  main function for connection
            private function startConnect() {
                visible = true
                timer_txt.htmlText = "<b>00:00</b>";
                initCamera()
                initMicropone()
                var nc:NetConnection = new NetConnection()
                nc.connect(null)
                netStream = new NetStream(nc)
                netStream.attachAudio(microphone)
                video.attachCamera(camera)
                layer.visible = false
                publishButton.gotoAndStop(1);
                activityLevel_pb.mode = ProgressBarMode.MANUAL;
                recordStatus.gotoAndStop("noRecord")
                timer.start()
                connection.addEventListener(NetConnector.CONNECTED, connectionComplete)
                connection.startConnection()
            public function get connection():NetConnector {
                return dataHolder.connection
            private function on$timer(e:TimerEvent) {
                activityLevel_pb.setProgress(microphone.activityLevel, 100)
             *  when connection to your stream server done
            private function connectionComplete(e:Event = null) {
                netStream = new NetStream(connection)
                netStream.attachAudio(microphone)
                netStream.attachCamera(camera)
             *   add 0 if less then 10secs
            private function addLeading(nbr) {
                if (nbr<10) {
                    return ("0"+Math.floor(nbr));
                } else {
                    return (Math.floor(nbr).toString());
             *   update visible clock, rotate arrows
            private function updateTimer() {
                timer_txt.htmlText = "<b>"+addLeading(crono/60)+":"+addLeading(crono%60)+"</b>";
                aguja.rotation = aguja.rotation+6;
                if (addLeading(crono/60)>minutero) {
                    aguja2.rotation = aguja2.rotation+6;
                    ++minutero;
                // end if
                ++crono;
            private function on$clockTimer(e:TimerEvent):void
                updateTimer()
            private function startClockTimer() {
                clockTimer.start()
             *  update graphics and start recording
            private function recordBtn$click(e:MouseEvent):void
                if (!isRecording) {
                    startRecording()
                    recordStatus.gotoAndStop("record")
                    recordBtn.visible = false
            private function recordBtn$over(e:MouseEvent):void
                if (!isRecording) {
                    this.gotoAndPlay(65);
            private function recordBtn$out(e:MouseEvent):void
                if (!isRecording) {
                    this.gotoAndPlay(61);
            private function startRecording() {
                if (connection.connected){
                    netStream.publish("mp4:" + dataHolder.filename + ".f4v", "record");
                isRecording = true
                startClockTimer()
                publishButton.gotoAndPlay(2)
                publishButton.buttonMode = true
                publishButton.addEventListener(MouseEvent.CLICK, publishButton$click);
                limitTimer.start()
             *  redirect to finishURL that was passed via flashvars
            private function publishButton$click(e:MouseEvent):void
                stopPublish()
                var request:URLRequest = new URLRequest(dataHolder.finishURL)
                navigateToURL(request, "_self")
            private function stopPublish():void
                netStream.close();
                connection.close();
                limitTimer.stop();
                clockTimer.stop();
                isRecording = false
                recordStatus.gotoAndStop("recordEnd")
                updateTimer();
             *  init microphone
            private function initMicropone():void
                microphone = Microphone.getMicrophone()
                addMicSettings()
             *  init camera
            private function initCamera():void
                camera = Camera.getCamera()
                addCameraSettings()

    Hi,
    Thanks for the details
    First, the quality of the feed we get to the flash player and FMS is highly limited by the capabilities of the webcam that the users have beyond which we cannot improve the quality.
    Next, flash player can encode good quality and hence you should probably find more stuff related to how best you can ingest video from a webcam on to the flash player.
    - Does recording from server side with asc script will increase the quality ?
    No, FMS does not do any type of transcoding/re-encoding stuff. All it does is to 'transmit' and in your case, to flush bits to the disk. So, unless FMS recieves 'Quality', it cannot do much.
    - what configurations files on the server can i adjust to increase the recording quality ?
    From above, it flows that, there are no configurations on the server that can make your quality grow. The configurations are more to do with delivery. It can be tweaked to improve streaming, reduce latency, quick start and more.
    - is there a way to cache locally the stream if the bandwith is not high enough, and when the user stops recording, upload it to the server (it doesn't have to be live or broadcast).
    I don't think flash player can do this.
    Thank you !

  • Analytics based on FMS access logs

    Hi,
    We are building an analytics application for Flash Media Server located in a content distribution network. We obtain access logs from the FMS server and use the log entries to display metrics.
    We would like to know if there is any way to determine the cache status from access logs.
    Also, are there any scenarios where a stop event does not follow play event?
    When we monitor the logs, the "x-file-name" field sometimes contains two extensions (filename.flv.flv). Is this the expected behavior?
    We have also noticed that multiple log entries for a single seek action has been generated. Is this an error with our configuration or is this expected?
    Thanks in advance,
    Keerthana

    Keerthana,
    Curious to know if you ever got a workable solution for getting analytics from your media server? Could you share your story?
    Thanks,
    Justin Lee
    Atlanta, Ga.

  • Video protection measures enabled by FMS 3

    This post is in reference to the "Video content protection
    measures enabled by Flash Media Server 3" document by Kevin Towes
    and Tom Green. (Link at the bottom.)
    The document lists the different ways that video and audio
    content can be captured and lists protections against those method
    in terms of FMS 3. It lists Screen Capture as a vulnerability but
    completely ignores it on the list of possible protections.
    Perhaps some one can point me to documentation on the Screen
    Capture protection or the lack there of. I am looking to answer a
    few questions:
    I would like to know if it is possible to display original
    content in full quality while preventing screen capture. If it is
    not a possibility, I would like to see any Adobe views on the
    subject. Perhaps screen capture is not capable of copying the full
    quality of the file. An example would be a person taking a video
    camera to the movie theater. Any official Adobe documentation on
    the subject would be appreciated.
    Thanks in advance!
    Link to document:
    http://www.adobe.com/devnet/flashmediaserver/articles/protecting_video_fms.pdf

    Howdy,
    I have done some further investigations and I have so far concluded that:
    - in the cases where the service does NOT work, the following is happening:
    I watch a video (video 1), then close the window. I start a new window with a new video (video 2). However, despite closing a window and opening a new window, the TCP session for video 1 remains open. So when I start video 2, the crossdomain.xml request is sent on the old TCP session.
    Instead of getting an "OK" reply, I simply get an "ACK" reply and the process is halted.
    - in the cases where the service does work, the following is happening:
    I watch a video (video 1), then close the window. I start a new window with a new video (video 2). For each window, a new TCP session is set up/ synchronised, and the crossdomain.xml request receices an "ACK".
    - it seems that the failure scenario happens when there are no files in the cache.
    Any ideas of what this could be?

  • Can storing a live stream using actionscript fail by the cache filling up with overhead?

    Hi,
    Lately we have been seeing a problem with the archives of live streams we create using FMS. We use FMS for live streaming and concurrently store the stream in a file using ActionScript. We use the following code to record:
    var s2 = Stream.get('mp4:' + mp4name);
    application.publishedStreamMP4= s2;
    application.publishedStreamMP4.record();
    application.publishedStreamMP4.play(application.publishedStream.name,-1,-1);
    (some lines have been removed that are used for logging, etc).
    Sometimes some of these functions fail and return false. In these cases FMS's core log shows that the cache is full:
    2013-06-11 11:45:55        13863   (w)2611372      The FLV segment cache is full.  -
    In investigating this issue I have not yet been able to recreate this exact situation. By lowering the cache to 1MB I have however been able to create a situation where storing a stream can stop because the cache is full. The situation occurs as follows:
    * The server is restarted, the cache is empty.
    * A live stream is started, which is also recorded.
    * Via the Administration API the cache values <bytes> and <bytes_inuse> show to be exactly the same as the <overhead> of the object that relates to the file being saved. The <bytes> and <bytes_inuse> values of the object are 0.
    * This continues in the same way untill the cache is full.
    * When the limit of the cache is reached the message
    2013-06-11 12:07:35        13863   (w)2611372      The FLV segment cache is full.  -
    is shown in the core log and storing of the file stops. The instance log also show status changes:
    2013-06-11 12:07:35        13863   (s)2641173      MP4 recording status for livestream.mp4: Code: NetStream.Record.NoAccess Level: status Details:         -
    2013-06-11 12:07:35        13863   (s)2641173      MP4 recording status for livestream.mp4: Code: NetStream.Record.Stop Level: status Details:     -
    In the filesystem I can confirm that the last change of the file is on this moment (in this case 12:07). The live stream continues without problems.
    I have reproduced this several times. Though I can understand that caches can fill up and this can cause trouble I feel like this situation is a bug in FMS. The cache fills up with overhead, which is apparently reserved untill writing the file ends.
    I hope someone here can help out. Has anyone seen a situation like this and is there any remedy for it? Or even a workaround where this overhead in the cache can be released so the cache does not fill up?
    We use FMS version 4.5.1.

    You can use an XML socket, but the FMS application will need to initiate the connection, as FMS has no support for listening for anything other than RTMP and HTTP requests.
    Stream switching can happen on the FMS side. In your FMS application, you'll create a server side stream, and use the Stream.play method for playing other sources (live streams or recorded flv/h.264 files) over that stream. Your subscribers will connect to the server side stream
    See the FMS docs for the Stream class and the XMLSocket class.

  • FMS edge server tmp files issue

    I have a few edge servers connecting to an origin server and over time the FMS's tmp directory in the edge server is filled with .proxy files like
    MTA0MDAxMDE2Ng=.proxy
    MTA0MDAxMjg1MQ=.proxy
    MTA0MDU2MzAyOA=.proxy
    MTA0MDYzNDU2MA=.proxy
    MTA0MTE4MjgyNw=.proxy
    MTA0MTM3OTcwNg=.proxy
    MTA0MTM4NjIzNQ=.proxy
    MTA0MTMzNzE2Nw=.proxy
    MTA0MTYxNjUyNQ=.proxy
    Over time this becomes millions of files, which then considerably slows down the system and the performance of FMS. I have to restart FMS and delete all the files in the tmp directory regularly and this makes my cluster very difficult to manage.
    Can anyone help me on how to remove all these files automatically? Or if there is any config that I am missing which might cause this issue?

    hey one541_,
    i believe for you to be gettiing .proxy files you must be having disk caching enabled. These are created to handle process mutex.  These files get removed as soon as fms shuts down. If these are not getting deleted maybe you are not shutting the edge server (in the edge origin configuration) down properly or you are not shutting down at all.

  • FMS Origin-Only Clustering.

    Hi,
          I was successfully able to setup FMS edge-origin cluster but Origin-only clustering is the one we wanted for our live applications.
    Can someone please provide any material / pointer about setting up Multiple Origin clustering. The only place I found was 'Large Scale Deployment with FMIS'.
        I guess for Origin Only Clustering, we need to have our own caching system. Can someone what does get cached in a Live AV Chat? How do I propagate it to other Origins?
       What kind of plugins would I need for cache managing? What should the plugin do ?
       In the attached Origin Only Architecture,  what does the Primary Origin do and Secondary Origin do ?   I thought Origin is the place where the application is actually running and Edges do proxy. Is it the same here in Origin-only clustering also?
       Are there any tools which can measure the lag in AV ? (like performance measuring tools or load testing tools for FMS).
       What kind of software Load Balancer can we use for FMS clustering? ( like Nginx, Zeus or something ?) ?
       Kindly help on this FMS Origin-only clustering.
    Thanks
    Karthik.

    Hi,
         Thanks for responding,
          I ve setup this way,
                               _____  Origin1  ___  -----------  ( Application runs only here )
                              /              |               \            \
                             `               |               |               \
                        edge1           edge2          edge3     edge4 ....     ( Applications dont run here, they ll route the traffic to Origin1 )
                              |               |                 |            /
                              \               |               ./           /
                                   Load Balancer.    -------------'                    Load balancer sends the traffic to edg1, edg2 and so on.
               ,`````````````````````` /                \
    User1                User2                     User3           .....
    I am using FMIS 4. Our application is Live AV chat.
    For setting up the Origin-Only cluster should we write our our c++ plugin to implement the caching system?? How do I start ?
    Can you please explain a small workflow of the  Origin-Only Clustering please like how does clustering happen and how failovers work and how to use Primary and Secondary Origins and  how Edges, Intermediate nodes work please ?

Maybe you are looking for

  • HOW DO I GET IT BACK

    So, a bunch of people have been using my computer lately, which I usually don't like, and this is why. Usually, when using Safari, lets say I have a google window open. When I hit tab, it goes from the google search area, to the address bar, to the g

  • Clearity reagarding table which used in report..

    Hi Everyone, I have one querry regarding one report of material available in stock.My question is that to check material available in stock for only a prticular month which table i have to used, and my selection screen is only storage location and mo

  • Separating presentation from business logic.

    I recently wrote an article on how to separate JSP presentation from the business logic without a complicated framework. http://labs.revision10.com/?p=16 I haven't seen this exact approach taken before, but believe it works fairly well for most simpl

  • No unicode region window

    Hi I install the new photoshop CC and without problems and i am working now, but when i download illustrator CC appers a window with the following text. Change the idiom region to a no unicode region i changed to a another region but the window still

  • Power PC software with Intel Chips

    Hi, I am looking at purchasing the Adobe Creative package, and it says the required hardware is a G4 or G5 PowerPC processor. That works with my iBook, but I don't want the software to be useless when I get a new computer. Is the older software compa