What is a reliable way to keep FMS from broadcasting streams when recording to disk fails?


howdy,

 

we're running fms 4.5.3 on linux box.

 

we've got video conferencing system streams out video records .flv files.  both operations, can imagine, critical.

 

today, discovered number of videos streamed out individuals not saved on disk.  can't quite explain happened, though know found instances of:

 

the flv segment cache full

 

in core.00.log.  can tell, issue relates recording of streams, not broadcasting them.

 

is there strategy can use insure under no circumstances broadcast stream without recording it? i'd rather have whole process fail find out after fact recording has failed.

 

some further details our process:

 

on server side, i'm using default fms behavior.  our "application" consists of nothing more directory (say "foo") in applications directory.  in directory application.xml contains:

 

<?xml version='1.0'?>

<application>

  <streammanager>

    <live>

      <assumeabsolutetime>true</assumeabsolutetime>

      <queue enabled="true">

                                <aggregatemessages enabled="false"/>

      </queue>

    </live>

  </streammanager>

</application>

 

there's main.asc file, it's empty (as in 0 bytes length).

 

on client side, i'm using small 2 custom flash applications.

 

the first publisher. opens netconnection http://myserver.com/foo. use netconnection instantiate netstream invoke publish("somename.flv", "append").

 

the second player. opens netconnection http://myserver.com/foo. use netconnection instatiate netstream invoke play("somename.flv").

 

any suggestions?

 

thanks in advance!

 

-ben

not sure if best answer, here's i've figured out:

 

1. changed server.flvcache_maxsize 1 (meg).

 

2. confirmed if start number of streams publishing, , number of streams playing published streams, it's possible trigger flv cache full error. confirmed recording stops, yet clients have invoked play on stream continue see updated video.

 

3. further noted when recording stops 2 events issued publishing flash client: netstream.record.stop , netstream.record.stop

 

my fix therefore add code such following:

 

ns.addeventlistener(netstatusevent.net_status,

                      function(evt:netstatusevent):void {

                        if(evt.info.code == 'netstream.record.stop' ||

                           evt.info.code == 'netstream.record.noaccess') {

                          ns.close();

                        }

                      });

// use netstream normal

 

in other words, detect these recording related events , stop stream.

 

with code in place, when recording issue happens clients playing stream receieve unpublish event , can no longer play stream.

 

not sure if best approach, *an* approach.

 

by way, upgrading 4.5.5 doesn't impact of following. i'm still getting flv cache full issue.



More discussions in Adobe Media Server


adobe

Comments

Popular posts from this blog

how to devide a circle into equal parts

"Could not fill because there are not enough opaque source pixels" - not solved by any other thread

Why can't I change the billing info for my account?