Live stream buffer shrinking

We're encountering a problem with live audio streams going
through FMS. We play back the streams with a generous buffer on the
client to smooth out any hiccups in the end-user's connection. But
over long periods of time (10-30 minutes) the amount of data in the
listener's buffer (monitored with NetStream.bufferLength) gradually
shrinks until it hits 0, pauses to buffer again, and refills. This
occurs on several different internet connections, and there appears
to be plenty of bandwidth available to refill the buffer even if
momentary network problems occur.
Is there anything we can configure in FMS or the client
players to prevent this? Thanks in advance for any
suggestions.

No problems here viewing CNN live streams.  According to CNN FAQ, you need Flip4Mac to view their live streams/videos.
"You may watch live video using the Flip4Mac plugin and Quicktime 7.1.2+"
http://www.cnn.com/help/live.html

Similar Messages

  • Live stream - buffer and replay

    Hi,
    i have this issue, which i'm pretty sure isn't feasible, but my boss insists that i give it a try, so here we go:
    i've developed a video player being used by a commercial TV channel, both for its VOD and live stream.  all the video content - live & VOD - is supplied via external CDN, over which i have little (or even no) control.
    what we're trying to achieve now, is while the channel's live stream goes on commercials break, to display our own (website's) ads.  we can tell when the break begins and when it ends, but we cant' know in advance how long it'll last.
    so our plan is to start running our own ads as the break begins, and when it ends - in case the ad is still running, buffer and 'record' the live stream, so when the ad ends the player will display the live stream, but from when its commercials break ended, with a short delay.
    is such a thing even possible?  i mean displaying live stream with a deliberate delay?
    thanks in advance for any thought or idea,
    eRez

    Hi,
    One way you can do this is to use php script to identify the user agent of the client (http://php.about.com/od/learnphp/p/http_user_agent.htm) and then generate dynamic webpages based on the client (HLS for iOS based clients and HDS for flash based clients). As Apache can only serve static webpages, you'll need to use CQ/MySQL/something else. I've personally not attempted to do so, but this may be a good starting point : http://www.ibm.com/developerworks/linux/tutorials/l-php/
    Hope this helps.
    Thanks,
    Apurva

  • FMS server buffer delay 5-6 sec live stream ?

    FMS server buffer delay 5-6 sec live stream ?

    To reduce the delay you can try disabling aggregate messages.
    You need to set Streams/EnableAggMsgs in Server.xml and Client/AggregateMessages in Application.xml to false.
    See more about Aggregate messages here : http://help.adobe.com/en_US/flashmediaserver/configadmin/WS5b3ccc516d4fbf351e63e3d119f2925 e64-7ff0.html#WS5b3ccc516d4fbf351e63e3d119f2925e64-7feb
    Hope this helps.
    Thanks,
    Apurva

  • Clearing application buffer after a live stream ends

    Hi there, I'm sure this has been asked and answered a million times, but searching for "application" "buffer" "cache" "live" and "hls" isn't giving me any answers, so let's get to it...
    After I end a live stream (which I do using FMLE 3.2 and FMS 4.5) and I then start a new live stream with the same application name, the HLS stream just loops the last 30 seconds of the old stream. To prevent this, after I end a stream, I have to go to applications\livepkg\streams\_definst_\ and delete the buffered data there. Only then can I start a new stream with the same name as the old stream. Now... that can't be normal, can it? Is there a switch somewhere I can set to tell FMS to cut it out and stop buffering old streams?
    Thanks,
    Raul

    You can use "record" mode rather than default mode of "append". You just need to publish using streamname - livestream%i?adbe-live-event=liveevent&adbe-record-mode=record.
    Though "append" should also work - can you let me know what do you see in FMS core logs / application logs. Also are you changing encoding settings when you republish/restart?

  • Playback of low bitrate flv or f4v from live stream in FMS causes player buffer to empty

    We are experiencing a consistent issue when playing a low bitrate (300kbps or less) flv in a live stream from FMS.  Basically, the player will will start off with the appropriate buffer, say 5 seconds, then begin dropping until it empties out, and will have to rebuffer.  We've tried with a variety of flv and f4v files, all that are 300kbps or less, and we consistently get the issue.  Is this something Adobe can investigate in FMS?  Or are there any suggestions on how we can get around the issue?

    hey, i got the similar problem, logging like this
    2012-11-12
    18:50:12
    23434
    (e)2661034
    Connect failed ( , 5779212 ) : Connect failed: Connection refused (111)
    2012-11-12
    18:50:54
    23434
    (e)2661034
    Connect failed ( , 5779212 ) : Connect failed: Connection refused (111)
    2012-11-12
    18:51:36
    23434
    (e)2661034
    Connect failed ( , 1166880400 ) : Connect failed: Connection refused (111)
    2012-11-12
    18:54:14
    23434
    (e)2661034
    Connect failed ( , 1175301776 ) : Connect failed: Connection refused (111)
    2012-11-12
    18:54:55
    23434
    (e)2661034
    Connect failed ( , 1164775056 ) : Connect failed: Connection refused (111)
    2012-11-12
    18:55:37
    23434
    (e)2661034
    Connect failed ( , 16 ) : Connect failed: Connection refused (111)
    2012-11-12
    19:13:08
    23434
    (e)2661034
    Connect failed ( , 1158459024 ) : Connect failed: Connection refused (111)
    it seems that the port number is invalid, but we never use such ports.

  • When I want to watch live stream, the buffer comes on all the time. I have 32bit, server is wildblue, highest option

    32 bit laptop, wildblue, highest speed. Live stream is choppy. it doesn't run smoothly

    I had this exact same problem- Found a suggestion on a simular thread that fixed it. Right Click anywhere on your screen to get to Display Properties. Find out the make and model of your video card(in my case it was Nvidia). Go to their website and to the driver download link. Download the updated driver for your card and follow the instructions to install.

  • How do I create a variable video delay of a live stream...

    I have a live video feed from my webcam in my Flash Application. I have a second video window next to it that I want to place a variable delayed video of the live stream. Therefore, I need to save the video stream in memory/disk and create this variable delay, say 5-60 seconds. As well as, continue to capture the live stream. The camera I am using suppots H.264 encoding.
    How do I create a variable length queue or buffer to hold the video stream coming into the flash application. Do I create a memory variable or write this to disk ? I have been looking over the ActionScript 3.0 documentation and I can not figure out how to code this either way ( as a memory variable or write to disk queue ).
    I want to be able to change the delay, view the delay stream in slow motion and scrub through the delayed stream.
    I would like to do this with out having to use Flash Media Server.
    Thanks,
    Bob

    I am sure it is practically impossible to accomplish that on the client side. Although theoretically it is conceivable to use NetStream.appendBytes() but it requires an extremely complex implementation.
    I suggest you look into FMS DVR capacities:
    http://help.adobe.com/en_US/flashmediaserver/devguide/WS236AE81A-5319-4327-9E44-310A93CA09 C6Dev.html

  • About Flash P2P live streaming from non-webcam sources

    Hello, I am a university student. Our lab is attempting to work on a p2p live streaming using flash p2p features. The media source is not from a webcam but a file from a certain server, which is not directly supported by any of the 4 methods flash player offers(posting, direct routing , object replication,and multicast.) As some of the forum threads mentioned, our method is to use NetStream.publish() a stream and use send("callbackname", data)  to all subscribers that have joined in a NetGroup. So we can use p2p transmission. Now here are our questions:
    1. We know from MAX 2009 that flash p2p camera video multicasting implements pull-push mechanism inside which makes full use of p2p features like buffer map exchange. If we use NetStream.send() API to send non-webcam source data, will it also make use of this pull-push mechanism to spread data among all peers(subscribers) with proper data exchange?
    or more detailedly,
    I saw the P2P Gaming Libs at flashrealtime.com. It uses DIRECT_CONNECTIONS when creating publish-used NetStream in order to send data with lowest latency. My question is if I do not use DIRECT_CONNECTIONS, than when the NetGroup grow large (1000), will those peers that are not direct neighbors to the publisher in the same group relay data to each other using pull-push via buffer map?
    2. I have written a sample app and use send() to deliver data only (NetStream.bufferTime = 0) without camera video and audio. When the publisher sends the data  in a "for()" stantence for 20 times, the subscribers can only receive about 8 of them. But when I set a timer and periodically send them(e.g., 500ms), the subscribers can receive them correctly. My questions are: Is the packet loss caused by UDP unreliability? Can this be solved by setting the NetStream.dataReliable = ture? Can this totally be solved by setting a timer? How to set the delaytime property in timer? Are all data sent are orderedly received?
    I'm very appreciated if you can answer my questions? thanks.

    1. NetStream.send() data is delivered in the order it was sent, whether in client-server, DIRECT_CONNECTIONS, or multicast mode.
    2. the lowest latency will be achieved with DIRECT_CONNECTIONS.  however, that isn't scalable to large numbers of recipients.  the P2P multicast system trades low latency for scalability.
    3. there are no plans to support a natural NetStream streaming source that's not a camera/microphone.  Flash Media Server can perform that function.
    4. you should never need to implement "bitmap exchange"; the object replication system handles all the communication needed to accomplish its function. typically you will divide a file into segments, giving each one an index number. object replication uses ranges internally, so the index numbers should be contiguous.  nodes that have indices use NetGroup.addHaveObjects().  nodes that want indices they don't have use NetGroup.addWantObjects().  nodes that have objects will send them to nodes that want the objects.  when a node receives an object, it's automatically removed from its "want" set; once the node decides the object is acceptable, it adds it to its "have" set, at which point it can answer requests from other nodes who still "want" it.  eventually every node will have all the pieces and not want any.  for an example, please see Tom Krcha's articles on using object replication:
       http://www.flashrealtime.com/file-share-object-replication-flash-p2p/
       http://www.flashrealtime.com/video-on-demand-over-p2p-in-flash-player-101-with-object-repl ication/
    5. please see Tom Krcha's articles.  for VOD you will probably want to use the "LOWEST_FIRST" replication strategy, as that may allow you to start playing earlier.  for general file replication you'll get better sharing if you use RAREST_FIRST.

  • Debugging live streaming ingest protocol

    Hi everyone,
    I posted a separate question last week about live streaming protocols. I had been searching for documentation on fmp4 live streaming ingestion and found nothing, but afterward I found the Smooth Streaming protocol specification (MS-SSTR-- the forum won't
    let me link to it directly), which seems to apply to my use case. Now I've spent a few days trying to make it work and so far haven't been able to do so.
    I'm not looking for a canned solution; I'm looking for resources to help me debug the problem.
    According to the specification, I should be able to make a long-lived, chunked http POST request to my ingest endpoint, sending the fragmented mp4 data as the request body. I've tried to implement this without success-- I open the request stream and
    write 1000 byte chunks at a time, but the connection is reset after only one or two chunks. I can't tell if the problem is the data or the chunk size or something else.
    And if I mimic Expression Encoder 4, which seems to diverge from the spec and not send its data chunked at all, the connection isn't reset no matter how much data I send, but the video never makes it to the preview stream on the Azure portal.
    So the question is, how can I debug this? Is there any error log or diagnostic output I can access? Each time I try something new, it doesn't work, but I have no way of knowing whether I am getting closer to or further from a working solution. I'm a bit
    lost here, so help would be greatly appreciated.

    Hi Jason, and thanks for getting back to me.
    The IP security thing is a good thought, but I think I have that part taken care of already. I saw the option to restrict ingest to the IP I used to configure the channel from in the Portal, and I made sure to set it to Off. Also, I can stream successfully
    from Expression, which would have the same source IP.
    As for why I want to use Smooth Streaming, basically there are two reasons. First, it seems like the simpler protocol conceptually. I'm already generating fragmented mp4 files (though I think they might be packaged wrong; I can't really tell which part is
    causing problems), and it seems simple enough that I could implement it without turning to a third-party library (the part that's feeding the stream is written in C#, though I'd be willing to rewrite in C++ if necessary, and there's no RTMP client
    that seems trustworthy-- FluorineFX, for instance, seems to have ceased development years ago now).
    Second, while reading the RTMP spec, I realized that even if I had such a library it isn't clear how I would need to use it with Azure. It allows creating objects or invoking methods on the server, but I couldn't find any guide to which objects and methods
    might be supported. And the spec also doesn't define specifically what video format, codec options, or packaging method I need to use; essentially I would seem to have all the same problems I'm having with Smooth, only with the added difficulty of needing
    a third-party library to implement the spec properly.
    I guess the main problem is that I don't really know how close or far I am from success. Like I said, I think I am doing something wrong in how the video is encoded, but for all I know I'm being dropped because I'm feeding the data too quickly
    or slowly. (I can't find any documentation on how much data Azure can buffer or how it handles underruns when the video to be streamed live is generated on the fly and not tied to strictly realtime output). If there's more documentation on specifically how
    Azure uses or expects data from these protocols, it'd be very helpful.

  • Start/stop/restart live stream - do stream files need to be removed first?

    When streaming a live event if something happens and we need to stop our encoder and then restart it again.
    Do we need to delete the stream files created in the 'application/event/' directory and also delete the f4f stream,bootstrap, etc... files too?
    If we don't delete the stream files before restarting the live stream. It will only play about 10 seconds of the stream then just hang buffering.
    What is causing this?
    My application log shows no access when I restarted the stream.
    2013-09-04
    09:02:21
    3960
    (s)2641173
    onPublish : cfhsstream4
    2013-09-04
    09:02:21
    3960
    (s)2641173
    Stream name is: cfhsstream4 and live event is: cfhs
    2013-09-04
    09:02:21
    3960
    (i)2611173
    Event level recording configuration: General[flags: 3, keyframe interval: 60000, max size: -1, max length: -1, io buffer size: 0], Fragment[frag duration: 4000, seg duration: 0, duration precision: 0, allowed drift: 1000, frame rate: 0.000000, frames per interval: 0, intervals per frag: 1, frame precision: 1, disk management duration: 0.000000], ContentProtection[enabled=false(overridable)]
    2013-09-04
    09:02:21
    3960
    (s)2641173
    f4f:cfhsstream4 - NetStream.Publish.Start
    2013-09-04
    09:02:21
    3960
    (s)2641173
    f4f:cfhsstream4 - NetStream.Play.Reset
    2013-09-04
    09:02:21
    3960
    (s)2641173
    f4f:cfhsstream4 - NetStream.Data.Start
    2013-09-04
    09:02:22
    3960
    (s)2641173
    f4f:cfhsstream4 - NetStream.Record.Start
    2013-09-04
    09:02:23
    3960
    (s)2641173
    f4f:cfhsstream4 - NetStream.Record.NoAccess
    2013-09-04
    09:02:23
    3960
    (s)2641173
    f4f:cfhsstream4 - NetStream.Record.Stop
    2013-09-04
    09:02:23
    3960
    (s)2641173
    f4f:cfhsstream4 - NetStream.Record.NoAccess
    Thanks,
    Dave

    I have a similar issue like Mr Dave explained. If need to stop, start, stop and restart again, the encoder is sending, but in player not shows nothing. Then we need to stop and disconnect in encoder, and remove the stream file in /event and the cache files in livestream folder for after then restart the streaming. Only after this action, the streaming works fine and the streaming shows again in player.
    Have other way to solve this issue without need all that actions? Note that I use the Adobe FME to live streaming and encoding in HDS http streaming
    I hope for a help
    Thanks
    Pedro
    Message was edited by: asaweb2013

  • Realtime delay of 'live' stream

    Hello,
    I'm speccing a job for a client who wants to use live streams
    and have cutomers phoning in to direct the show as it happens in
    the studio. One consideration is how 'live' is live streaming in
    flash. Does anyone know roughly what the delay from studio camera
    to end users machine is? I intend using a high-spec machine with
    good video card, flash media encoder, and Limelight Networks as the
    server provider.
    Thanks in advance
    Mike

    yes, we too have a very small delay in distributing the
    signal.
    But remember the buffer settings in the client. Typically
    that would be 3 seconds and anything smaller than that may result
    in a jiggly video stream.
    The internet itself was not meant as areal-time delivery
    medium, so delays may vary, opposite to classic media like tv or
    radio, where there were no varying delays (until dvb-t came up (=
    jan

  • 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

  • IOS RTMP live stream audio

    Hi guys hopefully some of you will be able to help me.
    I am trying to stream audio from a live RTMP feed using the NetConnection and NetStream classes. I've managed to get my app running no problem on Android, however I am having some major difficulties getting it to play the audio back on iPad. Interestingly it works in the device emulators when debugging, however I'm assuming this is not really an accurate representation. I've tried streaming the RTMP in both AAC and MP3, but with no luck from either. I can verify through debug that it has connected to the stream, however I just get no audio playing.
    Everything I've read about seems to suggest that this is possible on IOS as I'm only interested in audio and not video. Can anyone help?
    Code sample below (it's quick and dirty! ).
    THanks in advance!
    <?xml version="1.0" encoding="utf-8"?>
    <s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
                        xmlns:s="library://ns.adobe.com/flex/spark" title="Audio" creationComplete="init()">
              <s:layout>
                        <s:VerticalLayout paddingLeft="10" paddingRight="10"
                                                                  paddingTop="10" paddingBottom="10"/>
              </s:layout>
              <fx:Script>
                        <![CDATA[
                                  import flash.media.Video;
                                  import flash.net.NetConnection;
                                  import flash.net.NetStream;
                                  import mx.core.UIComponent;
                                  private var vid:Video;
                                  private var videoHolder:UIComponent;
                                  private var nc:NetConnection;
                                  private var defaultURL:String="[STREAM]";
                                  private var streamName:String="[STREAMNAME]";
                                  private var ns:NetStream;
                                  private var msg:Boolean;
                                  private var intervalMonitorBufferLengthEverySecond:uint;
                                  private function init():void
                                            vid=new Video();
                                            vid.width=864;
                                            vid.height=576;
                                            vid.smoothing = true;                           
                                            //Attach the video to the stage             
                                            videoHolder = new UIComponent();
                                            videoHolder.addChild(vid);
                                            addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
                                            grpVideo.addElement(videoHolder);
                                            connect();
                                  public function onSecurityError(e:SecurityError):void
                                            trace("Security error: ");
                                  public function connect():void
                                            nc = new NetConnection();
                                            nc.client = this;
                                            nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
                                            nc.objectEncoding = flash.net.ObjectEncoding.AMF0;
                                            nc.connect(defaultURL);      
                                  public function netStatusHandler(e:NetStatusEvent):void
                                            switch (e.info.code) {
                                                      case "NetConnection.Connect.Success":
                                                                trace("audio - Connected successfully");
                                                                createNS();                
                                                                break;
                                                      case "NetConnection.Connect.Closed":
                                                                trace("audio - Connection closed");                
                                                                //connect();
                                                                break; 
                                                      case "NetConnection.Connect.Failed":
                                                                trace("audio - Connection failed");                
                                                                break;
                                                      case "NetConnection.Connect.Rejected":
                                                                trace("audio - Connection rejected");                                  
                                                                break; 
                                                      case "NetConnection.Connect.AppShutdown":
                                                                trace("audio - App shutdown");                                 
                                                                break;         
                                                      case "NetConnection.Connect.InvalidApp":
                                                                trace("audio - Connection invalid app");                                   
                                                                break; 
                                                      default:
                                                                trace("audio - " + e.info.code + "-" + e.info.description);
                                                                break;                                                                                                    
                                  public function createNS():void
                                            trace("Creating NetStream");
                                            ns=new NetStream(nc);
                                            //nc.call("FCSubscribe", null, "live_production"); // Only use this if your CDN requires it
                                            ns.addEventListener(NetStatusEvent.NET_STATUS, netStreamStatusHandler);
                                            vid.attachNetStream(ns);
                                            //Handle onMetaData and onCuePoint event callbacks: solution at http://tinyurl.com/mkadas
                                            //See another solution at http://www.adobe.com/devnet/flash/quickstart/metadata_cue_points/
                                            var infoClient:Object = new Object();
                                            infoClient.onMetaData = function oMD():void {};
                                            infoClient.onCuePoint = function oCP():void {};        
                                            ns.client = infoClient;
                                            ns.bufferTime = 0;   
                                            ns.play(streamName);  
                                            ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
                                            function asyncErrorHandler(event:AsyncErrorEvent):void {
                                                      trace(event.text);
                                            intervalMonitorBufferLengthEverySecond = setInterval(monPlayback, 1000);
                                  public function netStreamStatusHandler(e:NetStatusEvent):void
                                            switch (e.info.code) {
                                                      case "NetStream.Buffer.Empty":
                                                                trace("audio - Buffer empty: ");
                                                                break;
                                                      case "NetStream.Buffer.Full":
                                                                trace("audio - Buffer full:");
                                                                break;
                                                      case "NetStream.Play.Start":
                                                                trace("audio - Play start:");
                                                                break;
                                                      default:
                                                                trace("audio - " + e.info.code + "-" + e.info.description);
                                                                break;
                                  public function monPlayback():void {
                                            // Print current buffer length
                                            trace("audio - Buffer length: " + ns.bufferLength);
                                            trace("audio - FPS: " + ns.currentFPS);
                                            trace("audio - Live delay: " + ns.liveDelay);
                                  public function onBWDone():void {
                                            //Do nothing
                                  public function onFCSubscribe(info:Object):void {      
                                            // Do nothing. Prevents error if connecting to CDN.    
                                  public function onFCUnsubscribe(info:Object):void {    
                                            // Do nothing. Prevents error if connecting to CDN.    
                        ]]>
              </fx:Script>
              <s:Group id="grpVideo">
              </s:Group>
    </s:View>

    Just an update on this for anyone coming along after me.
    I've managed to get this working on MP3 but not AAC (I guess AAC just isn't supported?).
    My problem was the buffertime. The docs seemed to indicate it shoudl be set to 0 for live streaming, however switching it to "1" solved my problem on the particular stream I was pointing at.
    So essentially justchanged the above line:
                                            ns.bufferTime = 0;  
    to
                                            ns.bufferTime = 1;  
    Would be great to find out if anyone has gotten AAC working however...

  • Live stream problem with FMS 4.5 + FMLE

    Hi,
    I've got a live stream (and DVR) setup using FMS 4.5 and FMLE.
    The hardware for the FMS server we use is 2x Xeon E5645 2.4GHz, 32GB RAM, OCZ RevoDrive R3 X2 PCI-e SSD. Installed OS is CentOS 5.8.
    We have 6 workstation PCs, each equiped with 4 BlackMagic Intensity PRO capture cards and FMLE 3.2. Using these PCs we stream Live video to FMS server.
    Video stream is grabbed from HDMI cable, to BlackMagic Cards, which are encoding by FMLE using H.264 format, 700kbps bitrate per stream.
    Video stream is published to server through RTMP stream, which is later saved for DVR in RAW format. We only keep 3 days of recording and delete the old ones.
    Server and Encoder PCs are in the same network, connected by gigabit managed switch.
    The problem I'm having is that after 10-15 hours FMLE starts to drop frames, because video buffer is increased. What I observed is that this happens immediately when Server CPU load increases above 60%.
    Based on the above observation I decreased the number of channels streamed by the server to 10, which reduced CPU load. But the problem still persists.
    Whenever I restart FMS and delete all DVR data, the CPU load (when streaming 10 live channels) is only 1%, but after 2 days CPU load increases to 50-60%.
    Whenever I restart FMS and don't delete DVR data, the CPU load is 5-10%, and after 2 days it still increases to 60-70%.
    Another thing I observed is that there is only single fmscore process running, but it has lots of threads which are switched on and off in split seconds. These threads are launched on different CPU cores, but at any given point in time the distribution of the load isn't equal among CPU cores. This leads certain CPU cores being loaded by more than 60% and frame drops start to occur.
    For the moment there are just 10 users watching this service, so I don't think this load accounts for the problem.
    Has anybody had similar problem, or know how can I optimize or finetune the system to run without problem? I would appreciate any suggestions.
    Another thing I noted through last couple of days:
    When I was restarting FMS the CPU load was reduced to 30%, but after 1 week past when I restart it CPU load only goes down to 75%. Everything is the same, nothing has been changed and there is no disk IO issues involved.
    P.S. I've modified application.xml using these values:
    <Scope>vhost</Scope>
    <Distribute numprocs="5">app</Distribute>
    <LifeTime>
    <RollOver></RollOver>
    <MaxCores></MaxCores>
    </LifeTime>

    Hi
    How many channels are you publishing?
    If there are too many channels, it is recommended to have one  FMSCore process start for each of them. To do so, you will have to change the scope to app.
    ---snippet---
    <Application>
    <Process>
        <Scope>app</Scope>
       <Distribute numprocs="3">inst</Distribute>
    </Process>
    </Application>
    Also, to delete older content, you will have to enable disk management. Refer http://help.adobe.com/en_US/flashmediaserver/devguide/WSeb6b7485f9649bf23d103e5512e08f3a33 8-8000.html#WSec225f632fa00875-23954b6f1300b641158-8000 for more info.

  • Detect live stream

    Can somebody please answer this question to me:
    With the Flash Media Streaming Server (not the interactive
    version), is it possible to detect if a live stream is running?
    I want to show an overview of several live streams on one
    page.
    The ones that are not running should show as "offline". The
    others should show an online thumbnail.
    I don't want the visitors to have to go to all of the pages
    only to see that the stream is offline.

    Hmmm...  I've been searching for an answer to this too.  Want to put a "Not Broadcasting" swf up there when not streaming but FMS doesn't give the necessary messages.  Would think this would be a pretty standard thing to want to do.
    Here are the messages FMS 3.5 fires when I pull up my client app and start and stop my encoder a few times:
    NetStream.Play.Reset (Playing and resetting stream)
    NetStream.Play.Start (Started playing stream)
    NetStream.Play.PublishNotify (stream is now published)
    NetStream.Buffer.Full
    NetStream.Buffer.Empty (15 secs or so after stopping the encoder)
    NetStream.Buffer.Full (15 secs or so after starting the encoder)
    NetStream.Buffer.Empty
    and so on...
    FMS should broadcast messages to the effect "Stream stopped" and "Stream started".
    There are so many other messages broadcast.  Wonder why these aren't implemented?

Maybe you are looking for

  • Embedded font not appearing...

    If you run the following code provided you have a MC on stage with "ball" as instance name, the text appears as intended. However if you uncomment the line that embeds the font, it does not display at all. I have a Font symbol in my library with the

  • "Repair Disk Permissions" leaves sytematcally unfinished work...

    ... althought it reports they are repared. This is about the same 16 entries, all in the same folder: System/Library/CoreServices/RemoteManagement/ Today's "Repair" run (extract): 2012-01-15 14:53:43 +0100: Repairing permissions for "Macintosh HD" 20

  • FRM-40039 error post 32 bit to 64 bit migration. Please help.

    Hello, I'm facing the a problem where during runtime I get error: 'FRM-40039: Cannot Attach library Ofgtel while opening Form XXX' I'm facing this issue post migration of my environment from 32 bit server to 64 bit server. One more thing I noticed is

  • How to generate barcode?

    Hi, am new to adobe and have only used adobe acrobat reader. I want to know is it possible to generate and read barcode using adobe or any of its products and store the barcode value? If it is possible can anyone please guide me or provide step by st

  • How add new field in layout in RDF using XML report definition

    Hi, ALL Do you know how add new field in layout of existing report in RDF using XML report definition. If I try change anything in RDF layout, layout which defined in XML override report layout.