Application.xml file

The Application.xml file contains the settings for Flash Media Server applications.

The Application.xml file in the virtual host directory configures the default settings for all applications within the virtual host. If you want to have different settings for a particular application, copy an Application.xml file to the application’s registered application directory (/applications/app_name) and edit it to include the settings you want.

In most cases, the settings in the Application.xml file in the application directory override settings in the Application.xml file in the virtual host directory, but not always. You can add an override attribute to certain elements in a virtual host’s Application.xml file, as in the following:

<LoadOnStartup override="no">false</LoadOnStartup>

The server uses the following rules when applying the override attribute:

  • When the override attribute is included in an element and set to no, application-specific Application.xml files cannot override that element’s setting.

  • If an element has the override attribute set to no, then all subelements also cannot be overridden.

  • If an Application.xml file is located in the application directory and specifies a different value than the default for an element that cannot be overridden, it is ignored, and the default is used.

  • If the default Application.xml file is missing or invalid, the server will not start.

  • If the user-specified Application.xml configuration file is invalid, it is ignored.

  • All subelements under the LoadOnStartup element cannot be overridden.

  • If you omit the override attribute, the LoadOnStartup element can be overridden.

  • To change an element so it cannot be overridden, set the override tag to no in the uppermost tag.

Note: By default, the Bandwidth and BandwidthCap container elements include an override parameter set to yes, which allows the values for the ClientToServer and ServerToClient elements nested in these sections to be overridden. The Client element in this XML file includes an override="no" attribute by default.

To see the element structure and default values, see the Application.xml file installed with Flash Media Server in the RootInstall/conf/_defaultRoot_/_defaultVhost_ directory.

Access

Container element.

The Access plug‑in consists of the libconnect.dll file. It intercepts and examines each connection request to Flash Media Server to determine whether the connection should be accepted or rejected.

Contained elements

FolderAccess

Access (Logging)

Container element.

Contains elements that configure logging in the Access log.

Contained elements

Checkpoints

AccumulatedIFrames

Container element.

The elements in this section specify the maximum size and duration of intermediate frames a live stream can hold in the buffer.

AdaptorId

Availability

Flash Media Server 4

Description

Important: Do not change the value of this element.

Specifies an identifier for an adaptor to the server-side script engine. The default script adaptor is <AdaptorId>as1</AdaptorId>.

The ScriptAdaptors element in the Server.xml configuration file contains an element for each adaptor. The default adaptor is as1:

<ScriptAdaptors> 
    <as1 lib="libasc"/> 
</ScriptAdaptors>

See also

ScriptEngine

AggregateMessages (Client)

Specifies whether or not to send aggregate messages to clients. When the enabled attribute is set to true, the server will deliver aggregate messages to clients that support them. When this setting is disabled, aggregate messages are broken up into individual messages before being delivered to clients. The default is false.

AggregateMessages (Queue)

Container element; contains an element that control the size of the aggregate messages.

This element also specifies, when queuing is enabled, whether messages in the queue can be combined to form aggregate messages. When the enabled attribute is set to true (the default value), the server creates aggregate messages.

The server attempts to send aggregate messages to supported clients whenever possible. When this setting is disabled, aggregate messages are always broken up into individual messages before being delivered to clients.

Example

<AggregateMessages enabled="false"><\AggregateMessages>

Allow

Specifies whether or not to allow the "following and Location:" header that is sent with redirection of an HTTP header. The default is true, allowing HTTP redirects.

Example

<Allow>true</Allow>

AllowDebugDefault

Specifies the default value for application.allowDebug. This is an opening that allows debug connections on a per application basis. The default value is false.

Example

<AllowDebugDefault>false</AllowDebug Default>

AllowHTTPTunnel

This element configures the server to allow HTTP tunnelling connections into this application.

By default, Flash Player communicates with the server using the RTMP protocol over port 1935. If that fails, it will try again over ports 443 and 80 in an attempt to get around firewall settings, which prevents TCP/IP connections over nonstandard ports.

In some cases, Flash Player has to negotiate a connection to Flash Media Server through an edge server, or use the HTTP protocol to transmit RTMP packets (called HTTP tunnelling) if there is a firewall that allows only HTTP content to be sent out to public servers.

The values for this element are described in the following table.

Value

Description

true

Allows tunnelling connections.

false

Disallows tunnelling connections.

http1.1only

Allows HTTP 1.1 connections only.

keepalive

Allows HTTP 1.0 and 1.1 keepalive connections.

Example

<AllowHTTPTunnel>true></AllowHTTPTunnel>

See also

Allow

Application

AssumeAbsoluteTime

Determines whether an incoming live stream has timestamps that are based on an absolute clock. An example of an absolute clock is an SMPTE time signal that is contained within the encoder’s input source.

The default value is false.

Example

<AssumeAbsoluteTime>true</AssumeAbsoluteTime>

Availability

Flash Media Server 4

Audio

Container element.

The elements in this section specify the settings for audio streams on the server.

Contained elements

CombineSamples, SendSilence

AutoCloseIdleClients

Container element.

Contains elements that determine whether or not to close idle clients automatically.

Set the enable attribute to true to close idle clients. If the enable attribute is omitted or set to false, the feature is disabled. The default value is false.

A client is active when it is sending or receiving data. Use the AutoCloseIdleClients element to specify how often the server should check for idle clients. When a client has been idle longer than the maximum idle time (60 seconds by default), the server sends a status message to the NetConnectionobject (the client). The server closes the client connection to the server and writes a message to the access log. The server also writes a message such as “Client x has been idle for y seconds” in the core and event logs.

To configure the closing of idle connections, you must enable the feature in the Server.xml file. Once you enable the feature in the Server.xml file, you can disable the feature for individual virtual hosts in the Vhost.xml files or for individual applications in Application.xml. The values defined in the Vhost.xml configuration file apply to all clients connected to the Vhost, unless values are defined in the Application.xml file. The Application.xml values override the Vhost.xml values. (Subsequently, the values defined in the Server.xml configuration file apply to all clients connected to the server, unless the values are defined in the Vhost.xml file. The Vhost.xml values override the Server.xml values.

Example

<AutoCloseIdleClients enable="false"> 
    <CheckInterval>60</CheckInterval> 
    <MaxIdleTime>600</MaxIdleTime> 
</AutoCloseIdleClients>

AudioSampleAccess

Allows the client application to access the raw uncompressed audio data in a stream. By default, this element is disabled. To enable it, set the enable attribute to true. In the tag, specify a list of semicolon-delimited folders to which client applications have access. When this element is enabled, all clients can access the audio data in streams in the specified folders. To enable access to all audio data streamed by the server, specify / in the tag.

The folder path is restricted to the application’s streams folder or folders, so do not use absolute paths in the list of folders.

While you can also enable access through Server-Side ActionScript, this element allows access to the data without requiring Server-Side ActionScript. You can also override this element with the Access plug‑in or Server-Side ActionScript.

Example

If an application is configured to store streams in folders C:\low_quality and C:\high_quality, the configuration to allow access to sample those streams is as follows:

<AudioSampleAccess enabled="true">low_quality;high_quality</AudioSampleAccess>

AutoCommit

Specifies whether shared objects are automatically committed when they have been changed. Setting this element to false disables Flash Player function for all shared objects within this instance.

Note: If the AutoCommit function is disabled, the server-side script has to call the save function or the SharedObject.commit command for the shared object to persist; otherwise, all data will be lost when the application is shut down.

Example

<AutoCommit>true</AutoCommit>

Bandwidth

Container element.

The elements nested in this container specify the bandwidth settings for upstream (client-to-server) and downstream (server-to-client) data.

By default, the Bandwidth element includes an override parameter set to yes, which allows the values for the ClientToServer and ServerToClient elements to be overridden as well.

BandwidthCap

Container element.

The elements in this section specify the bandwidth settings that a user can set. By default, this element includes an override parameter set to yes, which allows the values for the ClientToServer and ServerToClient elements nested in this section to be overridden, too.

BandwidthDetection

Container element.

This element contains settings for how the server detects bandwidth. Set the enable attribute to true or false to turn this feature on or off.

The server can detect client bandwidth in the core server code (native) or in a server-side script (script-based). Native bandwidth detection is enabled by default and is faster than script-based because the core server code is written in C and C++.

The server detects bandwidth by sending a series of data chunks to the client, each larger than the last. You can configure the size of the data chunks, the rate at which they are sent, and the amount of time the server sends data to the client.

The following table lists the values available for the BandwidthDetection element.

Element

Description

BandwidthDetection

Set the enabled attribute to true or false to turn this feature on or off.

MaxRate

The maximum rate in Kbps at which the server sends data to the client. The default value is -1, which sends the data at whatever rate is necessary to measure bandwidth.

DataSize

The amount of data in bytes that the server sends to the client. To detect the client’s bandwidth, the server attempts to send a series of random blocks of data to the client, each time sending this much more data. For example, x bytes are sent, followed by 2x bytes, followed by 3x bytes, and so on until MaxWait time has elapsed.

MaxWait

The number of seconds the server sends data to the client. Increasing this number provides a more accurate bandwidth figure but also forces the client to wait longer.

Example

<BandwidthDetection enabled="true"> 
    <MaxRate>-1</MaxRate> 
    <DataSize>16384</DataSize> 
    <MaxWait>2</MaxWait> 
</BandwidthDetection>

Bits

This element contains the settings for Flash Player on the Windows and Macintosh platforms.

Example

<Bits from="WIN 6,0,0,0" to="WIN 7,0,55,0">0x01</Bits> 
<Bits from="MAC 6,0,0,0" to="MAC 7,0,55,0">0x01</Bits>

See also

UserAgent

BufferRatio

Specifies the ratio of the buffer length used by server-side stream to live buffer.

Example

<BufferRatio>0.5</BufferRatio>

See also

Server

Cache

Container element; contains elements that configure the cache setting for SWF verification.

CachePrefix

Specifies the cache prefix that is passed from the origin server to the edge server.

This element is set on the origin server. The edge server uses the value of this element as a relative path to locate the cache file defined in the CacheDir element.

The type attribute provides additional specification for the cache prefix. The type attribute can be set to path or sname. The default is path.

Examples

<CachePrefix type="path"></CachePrefix> 

When the attribute type is path, the server appends the physical path of the recorded stream to the prefix.

<CachePrefix type="sname"></CachePrefix> 

When the attribute type is sname, the server appends the stream name to the prefix.

The cache prefix is any text with or without preset parameters. The prefix can be any name without special characters, such as \, :, *, ?, ", <, >, |. All parameters are surrounded by “?”. The server substitutes the actual names for everything specified within the “?”.

By default, the prefix is set to ?IP?.

Cache prefix

Actual name

?IP?

IP address of the server

?APP?

Application name

?APPINST?

Application instance

?VHOST?

vhost name

You can include the IP address in the prefix to avoid file collision. For example, the edge server might be connecting to two different origin servers with the same file in c:\data\foo.flv. Adding the IP to the prefix for these files points each file to the appropriate server.

If you want more than one origin server to share the cache file, do not include the IP as a parameter. Remember the cache prefix is a relative path used by the edge server to look up the cache stream file.

Examples

The cache prefix creates a relative path in the edge’s CacheDir. All parameters are separated by \ or /.

<CachePrefix type="path">c:\fms\flvs\foo.flv. data/?IP?</CacheDir>

resolves to:

data/xxx.xxx.xxx.xxx/c/fms/flvs/foo.flv 
<CachePrefix type="path">?APPINST?/data</CacheDir>

resolves to:

app1/inst1/data/c/fms/flvs/foo.flv  
<CachePrefix type="path">origin1/data/</CacheDir>

resolves to:

origin1/data/c/fms/flvs/foo.flv

CacheUpdateInterval

This element defines the wait interval for updating cache streaming in the edge server. The interval is defined in milliseconds. The default value is 10 minutes. The minimum interval is 10 seconds. The maximum interval is 24 hours.

Example

<CacheUpdateInterval>10</CacheUpdateInterval>

Checkpoints

Many companies use statistics from the access log to bill customers. If your programming includes live events or 24/7 programming, the events you use to calculate billing might not occur within a billing cycle. To solve this problem, you can enable checkpoint events. Checkpoint events log bytes periodically during an event. The following are available as checkpoint events: connect-continue, play-continue, and publish-continue.

Logging checkpoint events to the Access log is enabled in the Vhost.xml file by default. You can disable logging checkpoints for this application, or change the checkpoint interval of this application. If the checkpoint interval is not specified in the Application.xml file, or if the value is invalid, the server uses the value set in the Vhost.xml file.

Contained elements

LogInterval

Client

Container element.

The elements nested within this container configure the client.

By default, the Client element includes an override="no" parameter. Individual applications cannot override how the elements in the Client section are configured.

Client (RPC)

Lets you list methods allowed for client RPCs. If a method is not listed then it cannot be called.

To add methods, use a comma-delimited list of method names in the <Method><Allow> sub-elements.

The default is to not allow any methods for client RPCs.

Contained elements

Method

Example

<Client> 
    <Method> 
        <Allow></Allow> 
    </Method> 
</Client>

Availability

Flash Media Server 4

ClientToServer (Bandwidth)

Specifies the bandwidth the client can use for sending data upstream to the server. The default bandwidth is 1,250,000 bytes per second.

You can configure this value in the Bandwidth section of XML and in the BandwidthCap section of XML. The values in the Bandwidth section can be overridden, but the values in the BandwidthCap section are not. This allows ISPs to host applications for customers and ensure that no customer abuses the bandwidth limit. For example, a customer can set any bandwidth limit for their applications, but cannot exceed the caps set by the ISP.

Example

<ClientToServer>1250000</ClientToServer>

ClientToServer (BandwidthCap)

Specifies the maximum bandwidth a client can send to the server. The default bandwidth is 100,000,000 bytes per second.

You can configure this value in the Bandwidth section of XML and in the BandwidthCap section of XML. The values in the Bandwidth section can be overridden, but the values in the BandwidthCap section are not. This allows ISPs to host applications for customers and ensure that no customer abuses the bandwidth limit. For example, a customer can set any bandwidth limit for their applications, but cannot exceed the caps set by the ISP.

Example

<ClientToServer>100000000</ClientToServer>

CombineSamples

Container element.

The server conserves system resources by combining sound samples. This strategy saves the CPU and bandwidth overhead when transmitting individual audio packets only.

Note: Use this strategy of combining sound samples advisedly during periods of high CPU usage, as it can cause latency.

Contained elements

LoCPU, HiCPU, MaxSamples, Subscribers

ContentProtection

The enabled attribute can be set to "true", "false" or "allow". Content protected is enabled when the attribute is set to "true", and disabled when set to "false". If enabled is set to "allow", settings in the Event.xml ContentProtection section can override the ContentProtection section in the Application.xml file.

<HDS> 
    <!-- This section controls the behavior of HTTP live recording --> 
    <Recording> 
        <ContentProtection enabled="allow"> 
        </ContentProtection> 
    </Recording> 
</HDS>

See also

Protected HTTP streaming

Connections

Container element.

The elements in this section configure the HTTP connections for this application.

DataSize

Specifies the amount of data in bytes that the server sends to the client. To detect the client’s bandwidth, the server attempts to send a series of random blocks of data to the client, each time sending this much more data. For example, x bytes are sent, followed by 2x bytes, followed by 3x bytes, and so on until MaxWait time has elapsed.

Example

<DataSize>16384</DataSize>

Debug

Container element.

The elements in this section configure debug connections, including the maximum number of connections and the value for application.allowDebug.

Diagnostic

Specifies whether diagnostic logging for the message queue is enabled. The default value is false.

See also

Enabled

DirLevelSWFScan

Specifies the number of levels of subfolders within a parent folder to scan for SWF files. The parent folder is specified in the SWFFolder element.

Specifying a positive value scans that number of subfolder levels. Specifying zero scans the parent folder and no subfolders. Specifying a negative value scans all subfolder levels. The default value is 1, which means that the server scans only one subfolder level.

DisallowedProtocols

Specifies which protocols cannot be used to connect to an application. Specify protocols in a comma delimited list. Any protocol not specified is allowed. For example, the following disallows rtmp and rtmps connections:
<DisallowedProtocols>rtmp,rtmps</DisallowedProtocols>

The default value is blank, which allows all protocols to connect to the server.

Distribute

Specifies how to distribute application instances to processes. The default value is insts, meaning each application instance runs in its own process. This tag contains a numprocs attribute, which specifies the maximum number of processes to run concurrently. The default value of the numprocs attribute is 3.

This feature is turned on by default. To use this feature, the numprocs attribute must be set to a value higher than 0 or 1. With the default configuration, for all your applications and application instances under a single virtual host, three core processes will run. Each virtual host is allotted three core processes, so systems that use multiple virtual hosts will generate more running processes.

Note: There is no limit to the value of the numprocs attribute, but you should never need more than 40.

Scopes have an enclosing relationship with a strict ordering: adaptors contain virtual hosts, which contain applications, which contain instances, which contain clients. The value of the Distribute tag must be a scope that is lower in order than the value in the Scope tag. In other words, if the value of Scope is adaptor, the value of Distribute can be vhosts, apps, insts, or clients. If the value of Scope is app, the value of Distribute can be insts or clients. By default, the server uses the value immediately lower than the one specified in the Scope tag.

The following table lists the values available for the Distribute element:

Value

Description

vhosts

All instances of applications in a virtual host run together in a process.

apps

All instances of an application run together in a process.

insts

Each application instance runs in its own process. This is the default value. If you choose this value, you must also set the Distribute numprocs attribute to a value greater than 1.

clients

Each client connection runs in its own process.

Use this value for stateless applications—applications that don’t require clients to interact with other clients and don’t have clients accessing live streams. Most vod (video on demand) applications are stateless because each client plays content independently of all other clients. Chat and gaming applications are not stateless because all clients share the application state. For example, if a shared chat application were set to client, the messages wouldn't reach everyone in the chat because they’d be split into separate processes.

Example

<Distribute numproc="1"></Distribute>

DuplicateDir

Note: This feature has been deprecated.

This is one of two DuplicateDir elements in the Application.xml file: one is in the SharedObjManager container and one is in the StreamManager container.

Specifies the physical location where duplicate copies of shared objects or recorded streams are stored.

This location serves as a backup for shared object files and recorded stream files. This location must already exist when a shared object is copied to it.

Example

To include the application name in the paths for the backup files, change the appName attribute to "true".

<DuplicateDir appName="true">c:\backupSharedObjects</DuplicateDir> 
<DuplicateDir appName="true">c:\backupStreams</DuplicateDir>

See also

StorageDir

Duration

This element instructs the server how long, in seconds, to wait before it notifies the client when the audio has stopped in the middle of a live or recorded audio stream.

The default wait time is 3 seconds. The minimum wait time is 1 second. There is effectively no maximum value (the maximum is the maximum value of a 32-bit integer).

Example

<Duration>3</Duration>

See also

Password

Enabled

Specifies whether diagnostic logging for the message queue is enabled. The default value is false.

See also

Diagnostic

EnhancedSeek

This element enables or disables fine-tuning of the seeking performance within streams by creating a keyframe.

Keyframes improve the visual display of video files while seeking. When set to true, a new keyframe is dynamically generated to provide smooth seeking to that index point.

Note: The server generates new keyframes for Sorenson Spark-encoded FLV files. For On2 VP6, the new keyframe is calculated and generated in Flash Player 9a or later. For H.264-encoded video, the new keyframe is calculated and generated in Flash Player 9 Update 3 or later.

The default value is true. The server does not insert keyframes and all seeks begin at the nearest existing keyframe.

Example

<EnhancedSeek>true</EnhancedSeek>

EraseOnPublish

When set to true, the server erases a recorded stream when a publisher starts publishing a live stream with the same name. By default, this setting is disabled and the server does not erase a recorded stream.

EventsDir

The element /StreamManager/EventsDir specifies the physical location where Event information for live streaming is stored, as in the following example:
<EventsDir>c:\myapp\events\</EventsDir>

See also

StreamManager

Exception

This element indicates that a specific user agent is an exception to authentication. Use the from and to attributes to indicate the lowest and highest versions to except. This is a string comparison with editing to make all numeric fields equal length.

For example, using a specific Flash Player will report WIN 9,0,28,0 as its UserAgent. Add To="WIN 9,0,28,0" and From="WIN 9,0,28,0" and only that version is an exception.

FileObject

Container element.

As of Flash Media Server 4.0, the FileObject element has an override attribute set to "no", by default. When override="no", the applcation-level Application.xml file cannot override the VirtualDirectory settings for the FileObject defined in a Vhost-level Application.xml file.

The VirtualDirectory element nested within this container configures the ScriptEngine file object settings.

Contained elements

VirtualDirectory

FinalHashTimeout

This element defines the maximum amount of time that a client can use to provide its final verification to the server.

FirstHashTimeout

This element defines the maximum amount of time that a client can use to provide its first verification to the server.

FlushOnData

Specifies whether the server flushes the message queue when a data message arrives. This element is important for streaming data-only messages, so the server can send out the messages immediately. The default is true.

FolderAccess

Configures the level of permission that the Access plug-in can set for accessing streams and shared objects. This allows two levels of permissions: file-level access (a value of false), which allow access to a particular file only, and folder-level access (a value of true), which allows access to a particular directory.

Example

<FolderAccess>false</FolderAccess>

See also

Access

GroupControl

Settings within the GroupControl section control server-side functionality corresponding to the server channel. A server channel is a channel that clients within a Flash Group can open to the server. The presence of a server channel depends on serverChannelEnabled=true for the GroupSpecifier used to generate the groupspec value to join a Flash Group.

HDS

Container for configurations for HTTP Dynamic Streaming.

Contained Elements

Recording (HDS)

ContentProtection

HiCPU

This element instructs the server to start combining samples when CPU utilization is higher than the specified percentage of CPU resources. The default percentage of utilization is 80.

Example

<HiCPU>80</HiCPU>

Host

This element identifies the HTTP proxy. The value of the Host element can be the host name or an IP address. The port number can also be specified in the Port element.

Example

<Host>www.example.com:8080</Host>

HTTP

Container element.

The elements in this section configure the HTTP connection settings for this application.

Contained elements

HTTP1_0, Verbose, Connections, Proxy, Redirect

HTTP1_0

This element determines whether or not the server can use the HTTP 1.0 protocol. The default is false, disallowing the use of the HTTP 1.0 protocol.

Example

<HTTP1_0>false</HTTP1_0>

HTTPTunnel

Container element.

The elements nested within this container configure the parameters for HTTP tunnelling (sending RTMP packets through HTTP).

The tunnelling protocol is based on the client continuously polling the server. The frequency of polling affects both network performance and the efficiency of the HTTP protocol. The IdleAckInterval and IdlePostInterval elements control the polling frequency on a per-client basis. Selecting too small a delay value for the above parameters will increase the polling frequency and reduce network performance and efficiency. Selecting too high values can adversely affect the interactivity of the application and the server.

The Application.xml configuration file offers three settings for these parameters. The following table presents these settings.

Acceptable Latency

IdlePostInterval

IdleAckInterval

Low

128 milliseconds

256 milliseconds

Medium

512 milliseconds

512 milliseconds

High

1024 milliseconds

2048 milliseconds

Example

<HTTPTunnel> 
    <IdlePortInterval>512</IdlePostInterval> 
    <IdleAckInterval>512</IdleAckInterval> 
    <MimeType>application/x-fcs</MimeType> 
    <WriteBufferSize>16</WritebufferSize> 
</HTTPTunnel>

IdleAckInterval

Specifies the maximum time the server may wait before it sends back an ack (acknowledgement code) for an idle post sent by the client.

The server may respond sooner than the value of this element if it has data to send back to the client or if some other client is being blocked by the current idle request.

This interval implies that the client may not be able to reach the server for the selected duration. The interval cannot be set to a negative value.

The default interval is 512 milliseconds.

Example

<IdleAckInterval>512</IdleAckInterval>

IdlePostInterval

Specifies how long Flash Player should wait before sending an idle post to the server.

Idle posts are sent when Flash Player has no data to send, but posting is necessary to provide the server with an opportunity to send data downstream to the client.

The interval for an idle post ranges from 0 to 4064 milliseconds. If the IdlePostInterval element is set to a value that lies outside of this range, the default value of 512 milliseconds is used.

Note: At times, the server will not be able to send any data to the client for the selected duration.

Example

<IdlePostInterval>512</IdlePostInterval>

Interface

This element defines the name to use as the outgoing network interface.

The name can be an interface name, an IP address, or a host name.

Example

<Interface>www.example.com</Interface>

Interval

Specifies the interval in milliseconds for sending silence messages when no audio is being published to a live stream.

Silence messages are used to support older versions of Flash Player. The server only sends the silence message to clients specified in the UserAgent element in the Client section. Bit-flag 0x01 is used to control the silence message.

The default interval is 3 seconds. Set this to 0 to disable silence message transmission.

Example

<Interval>3</Interval>

See also

SendSilence

JoinLeaveEvents

The JoinLeaveEvents element controls whether events for clients that join or leave a Group are dispatched to server-side script or handled internally. This element has a mode attribute with the following possible values:

None (default)—All Group join and leave events are handled internally at this Flash Media Server node.

All—All Group join and leave events are dispatched to the server-side script.

JSEngine

Availability

Flash Communication Server 1.

In Flash Media Server 4, this element is deprecated. See ScriptEngine.

Availability

Container element.

The elements nested within this container configure the JavaScript engine.

Inside the JSEngine element, you can define properties for the server-side Application object. Defining properties in the default Application.xml file creates properties available for all applications on a virtual host. Defining properties in an Application.xml file in an application folder creates properties available for that application only.

To define a property, create an XML tag. The property name corresponds to the tag’s name, and the property value corresponds to the tag’s contents.

Example

The following XML fragment defines the properties user_name and dept_name, with the values jdoe and engineering, respectively:

<JSEngine> 
    <config> 
    <user_name>jdoe</user_name> 
    <dept_name>engineering</dept_name> 
    </config> 
</JSEngine>

To access the property in server-side code, use the syntax in either of these examples:

application.config.prop_name  
application.config["prop_name"]
Note: The properties you define are accessible from application.config.property, not from application.property.

KeyFrameInterval

This element defines how often to generate and save keyframes in an FLV file.

The initial value is 60000, which is the recommended value. However, if this tag is unspecified or set to a value out of range, the server uses a default value of 1000. Setting this element to a higher value than the initial value reduces the number of keyframes added to the FLV file and thus reduces the file size. Setting a higher value for the interval, however, reduces the seeking accuracy. The value of this element is defined in milliseconds.

For example, a 15-second video with a file size of 76 KB is increased only to 89 KB when the KeyFrameInterval element is set to 5000, which is an increase of 13 KB, or 17%. The same video has a size of 109 KB with the KeyFrameInterval element set to 1000, which is an increase of 33 KB, or 43%.

Note: Be aware of the correlation between file size and accuracy of seeking when you set this value.

Example

<KeyFrameInterval>1000</KeyFrameInterval>

LifeTime

Container element.

This element determines the lifetime of core processes. To roll over such processes, set this element to a nonzero value.

Process rollover happens only when the Scope element is set to inst.

Contained elements

MaxCores, RollOver

Live (StreamManager)

Container element.

The elements nested within this container configure the intermediate frames in a live stream and the message queue, and the amount of time the server waits before allowing another publisher to take over a live stream.

Live (MsgQueue)

Container element.

The elements nested within this container configure live audio.

LoadOnStartup

This element determines whether or not the server loads an application instance when the server starts.

Having an application instance loaded at server start-up saves time when the first client connects to that application. The default value is false.

If you set this element to true, an instance of each application on the server will be loaded at start-up.

Example

<LoadOnStartup>false</LoadOnStartup>

LockTimeout

Specifies the timeout value before automatically unlocking a shared object if there is a client waiting for an update. The timeout value is specified in seconds. The default value is -1, which instructs the server to wait for an indefinite time.

Example

<LockTimeout>-1</LockTimeout>

LoCPU

This element instructs the server to stop combining samples when CPU utilization is lower than the specified percentage of CPU resources. The default percentage of utilization is 60.

Example

<LoCPU>60</LoCPU>

Logging

A container element.

Contains elements that control the server logs.

Contained elements

Access (Logging)

LogInterval

The interval at which the server logs checkpoint events.

See also

Checkpoints

Max

This element defines the maximum number of redirects allowed.

See also

Allow

MaxAggMsgSize

Specifies the maximum size in bytes of the aggregate messages created from the message queue, when aggregate messages are enabled. The default value is 4096.

MaxAppIdleTime

Specifies the maximum time an application instance can remain idle with no clients connected before it is unloaded from the server’s memory.

An application instance is evaluated as idle after all clients disconnect from it. If the application instance is loaded with no clients connected, it is not evaluated as idle.

The maximum idle time is specified, in seconds. The default is 600 seconds (10 minutes).

Example

<MaxAppIdleTime>600</MaxAppIdleTime>

MaxAudioLatency

Specifies that live audio should be dropped if audio exceeds the time specified. Time is expressed in milliseconds.

Example

<MaxAudioLatency>2000</MaxAudioLatency>

MaxBufferRetries

Specifies the maximum number of attempts to start buffering stream data. This configuration tag prevents the server from indefinitely trying to buffer data that is never delivered by the origin server. It is only applicable in edge servers. The default value of 128 is sufficient in most cases.

Example

<MaxBufferRetries>128</MaxBufferRetries>

MaxCores

The value of this element determines how many core processes can exist for an application.

By default, the MaxCores function is disabled. The default value is zero. For more information on setting the maximum number of core processes, see Configure how applications are assigned to server processes.

Example

<MaxCores>0</MaxCores>

See also

LifeTime, RollOver

MaxDuration

Specifies the maximum duration, in seconds, of a recorded file. The value 0 disables recording. The value -1 means there is no maximum duration. The default value is -1.

Set this parameter when you deploy a DVR application to prevent the disk from exceeding its capacity.

Note: The F_STREAM_RECORD_MAXDURATION field in the Authorization plug-in can override this value.

MaxDurationCap

Specifies the cap on the maximum duration (in seconds) of a recorded file. Values set in the MaxDuration element or in Server-Side ActionScript cannot exceed this value. Setting the value 0 disables recording. Setting the value -1 removes the maximum duration cap. The default value is -1.

This element allows ISPs to host applications for customers and ensure that no customer abuses the MaxDuration limit. For example, a customer can set any MaxDuration for their applications, but cannot exceed the MaxDurationCap set by the ISP.

Note: The F_STREAM_RECORD_MAXDURATION field in the Authorization plug-in can override this value.

MaxGCSkipCount

Specifies the maximum number of times that the server will skip garbage collection (GC) when the JS engine is busy. This element determines the frequency of the garbage collection process.

By default, the server only performs GC when the JS engine is not busy. However, the JS engine does not necessarily perform GC when it is busy, so in some cases you must force the server to perform GC regardless of the JS engine state. If MaxGCSkipCount is set to 0, the server forces a GC regardless of the JS engine state. If MaxGCSkipCount is set to a positive value, the server forces a GC when the skip count exceeds the value in MaxGCSkipCount.

Example

<MaxGCSkipCount>-1</MaxSGCSkipCount>

MaxFailures

The value of this element determines the maximum number of core process failures that can occur before a core process is disabled.

Once the core processes are disabled, the server does not launch a core process until some minimum recovery time has elapsed. Having a time lag for recovery avoids a denial-of-service action, which can happen when a faulty core consumes all CPU resources by repeatedly launching itself.

Example

<MaxFailures>2</MaxFailures>

MaxIdleTime

The maximum time a client can be idle before the server closes the connection. This value is set in the Server.xml file by default. You can set the value in the Vhost.xml file to override the value set in the Server.xml file. You can set the value in the Application.xml file to override the value set in the Vhost.xml file.

MaxInitDelay

The maximum number of seconds used to process SWF files. The default value is 5 seconds.

Example

<MaxInitDelay>5</MaxInitDelay>

MaxLatency

The maximum latency, in milliseconds, of incoming messages in a live stream. When a server-side script injects a data message into a live stream, this setting determines the timestamp of the message. If the injection time is larger than MaxLatency, the server adds the time difference between the last message time and the injection time to the timestamp of the data message. Otherwise, the timestamp is the last message time. The default value is 500. The minimum value is 0.

MaxMessageSizeLosslessVideo

Specifies the maximum size of messages for screen-sharing packets.

Example

<MaxMessageSizeLosslessVideo>0</MaxMessageSizeLosslessVideo>

MaxPendingDebugConnections

Specifies the maximum number of pending debug connections. The default is 50. (If the number is set to 0, debugging connections are disabled.)

Once the specified number is reached, the oldest pending debug connection is rejected to create space.

Example

<MaxPendingDebugConnections>50</MaxPendingDebugConnections>

MaxProperties

The maximum number of properties for each shared object. To specify unlimited, use -1.

Example

<MaxProperties>-1</MaxProperties>

MaxPropertySize

The maximum size in bytes for each property of a shared object. To specify unlimited size, use -1.

Example

<MaxPropertySize>-1</MaxPropertySize>

MaxQueueDelay

Specifies how often the server will flush the message queue, in milliseconds. The default value is 500 milliseconds.

MaxQueueSize

Specifies how often the server will flush the message queue, in bytes. A value of 0 disables queuing. The default value is 4096.

MaxRate

Specifies the maximum rate in Kbps at which the server sends data to the client. The default value of -1 sends the data at whatever rate is necessary to measure bandwidth without throttling.

Example

<MaxRate>-1</MaxRate>

MaxSamples

Specifies how many sound samples can be combined into one message.

The default number of samples is 4.

See also

Audio

MaxSize (AccumulatedIFrames)

Specifies the maximum size, in kilobytes, of intermediate frames that a live stream can hold in the buffer.

The buffer contains a history of the video messages up to the last keyframe. This enables clients to catch up to the latest message even if they join between keyframes. If the buffer size is larger than MaxSize, the server clears the messages. This setting prevents the buffer from growing too large and should be set larger than the total size of intermediate frames between keyframes. A default value of -1 means the size of intermediate frames is unlimited.

Example

<MaxSize>-1</MaxSize>

MaxSize (Recording)

Specifies the maximum size, in kilobytes, of a recorded file. The value -1 means there is no maximum size. The value 0 disables recording. The default value is -1.

Set this parameter when you deploy a DVR application to prevent the disk from exceeding its capacity.

Note: The F_STREAM_RECORD_MAXSIZE field in the Authorization plug-in can override this value.

MaxSizeCap

Specifies the maximum size cap, in kilobytes, of a recorded file. The value -1 means there is no maximum size. The value 0 disables recording. The default value is -1.

This element allows ISPs to host applications for customers and ensure that no customer abuses the MaxSize limit. For example, a customer can set any MaxSize for their applications, but cannot exceed the MaxSizeCap set by the ISP.

Note: The F_STREAM_RECORD_MAXSIZE field in the Authorization plug-in can override this value.

MaxStreamsBeforeGC

Specifies that garbage collection (GC) should be forced if the stream list grows over the set value. The default value is -1 (unlimited). GC occurs during the application GC interval.

Example

<MaxStreamsBeforeGC>-1</MaxStreamsBeforeGC>

MaxTime

Specifies the maximum duration, in seconds, of intermediate frames that a live stream can hold in the buffer.

The buffer contains a history of the video messages up to the last keyframe. This enables clients to catch up to the latest message even if they join between keyframes. If the duration in the buffer is larger than the MaxTime, the server clears the messages. This setting prevents the buffer from growing too large and should be set larger than the keyframe interval. The default value of -1 means the duration is unlimited.

Example

<MaxTime>-1</MaxTime>

MaxTimeOut (Connections)

This element defines the maximum time for a transfer to be completed. The default time is 60 seconds.

Operations such as DNS lock-ups may take more time. If the value of this element is too low, the risk of aborting correctly functioning operations increases.

Example

<MaxTimeOut>60</MaxTimeOut>

See also

Reuse, Interface

MaxTimeOut (JSEngine and ScriptEngine)

Note: In Flash Media Server 4, the JSEngine element is deprecated and replaced by the ScriptEngine element.

The maximum time, in seconds, a script can take to execute a JavaScript (Server-Side ActionScript) function. If its execution takes longer than the maximum allowed time, then the script is evaluated as a runaway script and its execution is terminated. Setting a maximum time to execute a script prevents infinite looping in scripts.

The default value is 0 and no checks are performed to detect runaway scripts. This setting may be useful in a debugging environment. In a production environment, after the applications and scripts have been thoroughly tested, you should set this element to a more realistic value that does not impose limits on the time scripts take to execute.

Example

<MaxTimeOut>0</MaxTimeOut>

MaxUnprocessedChars

Specifies how much data can be received from an XML server (without receiving an end tag) before XMLSocket closes the connection. This can be overridden by each XMLSocket by specifying the property XML.maxUnprocessedChars, but that number cannot exceed the number specified in this element.

Example

<MaxUnprocessedChars>4096</MaxUnprocessedChars>

See also

XMLSocket

MaxUrlLength

Defines the maximum URL lengths, in bytes. Most modern browsers support up to 64KB URLs. The default value is 32KB. The maximum allowable value is 1000KB.

Use this element to restrict the lengths of outgoing SSAS-initiated NetConnection URLs. For incoming requests, use the MaxUrlLength element in the Server.xml file.

Example

<MaxUrlLength>65536</MaxUrlLength>

See also

Security

MaxWait

This element specifies the number of seconds to wait before the server sends data to the client.

Increasing this number provides a more accurate bandwidth figure, but it also forces the client to wait longer.

Example

<MaxWait>4096</MaxWait>

See also

MaxRate, DataSize

MimeType

Specifies the default MIME (Multi-purpose Internet Mail Extensions) type header sent on tunnel responses.

The server generally uses the MIME type specified by the incoming requests. The server will use the entry for the MIMEType element only when it is unable to determine the MIME type from the incoming requests.

Example

<MimeType>application/x-fcs</MimeType>

MinBufferTime (Live)

Specifies the default buffer length in milliseconds for the live audio and video queue.

Example

<MinBufferTime>2000</MinBufferTime>

MinBufferTime (Recorded)

Specifies the default buffer length in milliseconds for audio and video. The value cannot be set below this by Flash Player.

Example

<MinBufferTime>2000</MinBufferTime>

See also

Recorded

MinGoodVersion

Specifies the minimum accepted version of SWF verification allowed by the server. The default value is 0, which allows the current and all future versions.

Example

<MinGoodVersion>0</MinGoodVersion>

MinQueuedVideo

The minimum number of video messages to queue at the start of a stream. Streams that use H.264 or any other pipelined codec need messages to begin playback. This setting ensures that regardless of the buffer setting there are enough messages to begin playback quickly. Setting this value to less than 64 may cause content with a low FPS to delay before starting. The default value is 64.

See also

Server

MsgQueue

Container element.

The elements nested within this container configure live and recorded audio.

Contained elements

Live (MsgQueue), Recorded, Server

NetConnection (ScriptEngine)

Container element.

The element nested within this container specifies object encoding to use for Server-Side ActionScript NetConnection.

Contained elements

ObjectEncoding

NetConnection (RPC)

Lets you list methods allowed for NetConnection RPCs. Any method not listed is blocked.

When a client creates a NetConnection object and attempts to call an SSAS Client class method with that object, the method must be explicitly allowed in this section for the call to succeed.

To add methods, use a comma-delimited list of method names in the <Method><Allow> sub-elements.

The default is to allow the onStatus method for NetConnection RPCs.

Contained elements

Method

Example

<NetConnection> 
    <Method> 
        <Allow>onStatus</Allow> 
    </Method> 
</NetConnection>

Availability

Flash Media Server 4

NotifyAudioStop

Container element.

The Duration element nested within this container determines whether or not the server is notified when an audio transmission ending on a stream is encountered.

Example

<NotifyAudioStop enabled="false"></NotifyAudioStop>

Contained elements

Duration

ObjectEncoding

Specifies the default object encoding to use for SSAS NetConnection. This can be AMF0 or AMF3. The default is AMF3.

The default can be overridden for each individual NetConnection by setting the NetConnection.objectEncoding property to either 0 for AMF0 or 3 for AMF3.

Example

<ObjectEncoding>AMF3</ObjectEncoding>

OutChunkSize

Specifies the RTMP chunk size in bytes to use in all streams for this application. The server breaks stream content into chunks of this size. Larger values reduce CPU usage but cause 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. The default value is 4096.

Note that older clients might not support chunk sizes larger than 1024 bytes. If the chunk setting is larger than these clients can support, the chunk setting is capped at 1024 bytes.

Example

<OutChunkSize>4096</OutChunkSize>

OverridePublisher

Deprecated; see the PublishTimeout element.

Specifies whether a second client is able to take over the ownership of a live stream when the stream is already published by another client. The default value is false. If set to true, add application logic to avoid stream name collision.

Example

<OverridePublisher>true</OverridePublisher>

Password

Specifies the password for connecting to the proxy.

PeerLookupEvents

In a peer-assisted networking application, use this element to configure how the server handles peer lookup events.

RTMFP clients establish direct peer-to-peer connections through the use of NetStream DIRECT_CONNECTIONS and peerIDs, or by using NetGroup to join a Flash Group where clients can be automatically bootstrapped to neighbors or can manually initiate connections to them. The process of establishing a peer-to-peer connection begins with the initiating client sending a peer lookup request to the server. These events are processed differently depending upon the mode attribute.

The following are possible values of the mode attribute:

Value

Description

None

The default value. Lookup events are handled by the server. You cannot use Server-Side ActionScript to distribute peer introductions or filter peer introductions.

Partial

The server automatically handles peer lookup events for clients connected to the same core process. Developers must handle other peer lookup events with Server-Side ActionScript.

All

Developers must handle all lookup events in Server-Side ActionScript.

To filter peer lookup requests, set <PeerLookupEvents mode> to All:

<Application> 
  ... 
  <RTMFP> 
    <PeerLookupEvents mode="All" /> 
  </RTMFP> 
  ... 
</Application>

To distribute introductions across multiple servers, set mode to Partial or All.

For more information, see Filter introduction requests and Build peer-assisted networking applications to run on multiple servers.

Port

Specifies the proxy port to connect to if the port is not specified as part of the host in the Host element.

Prioritization

Specifies whether outgoing messages are prioritized by message type when sending across a server-to-server connection. This setting is relevant for multi-point publishing. By default, prioritization is set to false, which is the correct setting to avoid possible latency when server-side NetStream objects are used to publish messages to remote servers. Messages are sent out through one channel and all messages have the same priority.

If the value is set to true, the server sends messages through multiple channels and prioritizes messages based on the message type, as follows (where 1 has the highest priority):

  1. Data

  2. Audio

  3. Video

See also

Server

Process

Container element.

The elements nested within this container determine how a core process is managed.

The following table lists descriptions of the contained elements.

Value

Description

Scope

Specifies the level at which application instances are assigned to core processes. Scopes have an enclosing relationship with a strict ordering: adaptors contain virtual hosts, which contain applications, which contain instances, which contain clients.

Distribute

Specifies how to distribute application instances to processes. The value of the Distribute tag must be a scope that is lower in order than the value in the Scope tag (for example, if the value of Scope is adaptor, the value of Distribute can be vhosts, apps, insts, or clients). Distribution may be turned off by setting numproc to 0 or 1.

LifeTime

Specifies the lifetime of core processes. Process rollover happens only when the Scope element is set to inst.

MaxFailures

The value for this element determines the maximum number of core process failures that can occur before a core process is disabled.

RecoveryTime

Specifies the recovery time for a core.

Proxy

Container element.

The elements nested within this container configure the HTTP Proxy settings.

Contained elements

Host, Port, Type, Tunnel, Username, Password

PublishTimeout

Specifies how long in milliseconds the server waits to receive a response from a publisher when another client tries to publish to the same stream.

If a client tries to publish to the same live stream that is being published by another client, Flash Media Server pings the first publisher and waits to receive a response. If the first publisher fails to respond within the time specified in this tag, the server allows the second publisher to take over the live stream. The default value is 2000 milliseconds. To prevent the server from pinging the first client, disable this setting by setting the value of the tag to -1.

This tag replaces the OverridePublisher tag.

QualifiedStreamsMapping

Enables mapping of virtual stream paths to different physical locations. This tag is applicable when using the Authorization plug‑in.

When a client requests to play a stream, an E_FILENAME_TRANSFORM event occurs in the Authorization plug‑in. You can map the stream differently for each client in the F_STREAM_PATH property of your Authorization plug‑in code.

For example, suppose client 1 and client 2 both request to play myStream.flv. You can remap the stream to c:\video1\myStream.flv for client 1 and c:\video2\myStream.flv for client 2.

Queue

Container element; contains elements that configure the settings of the message queue. A message queue is used to buffer incoming messages from the publisher so that the server can send messages in chunks to the subscribers. You can disable queuing so that individual messages are immediately sent to subscribers. To disable queuing, set the enabled attribute to false.

Recorded

Container element.

The element nested within this container specifies the ratio of buffer length used by the server-side stream to the live buffer.

Contained elements

MinBufferTime (Recorded)

Recording (HDS)

Container for configurations for HTTP Dynamic Streaming.

Contained Elements

ContentProtection

Recording (StreamManager)

Container element.

The elements nested within this container specify the duration and file size of files recorded by the server.

RecoveryTime

Specifies the recovery time for a core.

The server will not launch a core process until some minimum recovery time has elapsed. The time lag for recovery can avoid a denial-of-service action, which happens when a faulty core process consumes all CPU time by repeatedly launching itself.

The recovery time for a core process is specified, in seconds. A value of 0 disables any checking for process failures.

Note: Loading an application with Flash Media Administration Server tools or APIs bypasses this check.

Example

<RecoveryTime>300</RecoveryTime>

Redirect

Container element.

The elements nested within this container configure the settings for redirecting the HTTP connection.

Contained elements

Allow, Max, UnrestrictedAuth

ResyncDepth

This element instructs the server to resynchronize a shared object file. The shared object is resynchronized when its version number is greater than the head version minus the current version. The default value of -1 sends a resynchronized version of the file with every connection.

Example

<ResyncDepth>-1</ResyncDepth>

Reuse

This element configures whether or not the server explicitly closes the HTTP connection after each transfer. The default is to reuse connections. Set this to false to use a new connection after every transfer.

Example

<Reuse>true</Reuse>

RollOver

Specifies how many seconds a core process can be in use before the server creates a new core process.

After the time limit for a core is reached, a new core is instantiated. All subsequent connections are directed to the new core.

The rollover functionality is disabled by default. The default value is 0 (seconds). For more information on rollover processes, see Configure how applications are assigned to server processes.

Example

<Rollover>0</RollOver>

See also

MaxCores

RPC

Configures RPCs (remote procedure calls) for each class. By default, all methods are rejected. Only methods that are explicitly listed for each class are allowed. This whitelisting approach is more secure than a blacklist.

Availability

Flash Media Server 4

RTMFP

This section provides the means to control the behavior of application-specific RTMFP functionality.

Contained Elements

GroupControl

JoinLeaveEvents

PeerLookupEvents

RuntimeSize

Specifies the maximum size in kilobytes that an application instance can use to run Server-Side ActionScript code before the server removes unreferenced and unused JavaScript objects.

The default size is 1024 kilobytes, which is the equivalent of 1 megabyte. The lower limit is 10 kilobytes. There is no upper limit. The default value applies when the engine size lies outside of these limits.

If your application consumes a significant amount of memory, you must increase the engine size. If you create a new script object that will cause the runtime size of the application instance to exceed the value of this element, an out-of-memory error occurs and the application instance is shut down. In most cases, increasing the engine size to 30720 (30 MB) is sufficient to run intensive Server-Side ActionScript operations.

Example

<RuntimeSize>1024</RuntimeSize>

Scope

This element determines the level at which application instances are assigned to core processes.

Starting Flash Media Server starts a process called FMSMaster.exe (Windows) or fmsmaster (Linux). Application instances run in processes called FMSCore.exe (Windows) fmscore (Linux). The master process is a monitor that starts core processes when necessary. Only one master process can run at a time, but many core processes can run at the same time.

Settings in an Application.xml file in a virtual host folder apply to all applications running in that virtual host. Settings made in an Application.xml file in an application’s folder apply only to that application.

The following table lists the values available for the Scope element.

Value

Description

adaptor

All application instances in an adaptor run together in a process.

vhost

All application instances in a virtual host run together in a process. This is the default value.

app

All instances of a single application run together in a process.

inst

Each application instance runs in its own process. If you choose this value, you must also set the Distribute numprocs attribute to a value greater than 1.

Example

<Scope>vhost</Scope>

ScriptEngine

Availability

Flash Media Server 4

Replaces the JSEngine element.

Description

Container element.

The elements nested within this container configure the server-side script engine.

Inside the ScriptEngine element, you can define properties for the server-side Application object. Defining properties in the default Application.xml file creates properties available for all applications on a virtual host. Defining properties in an Application.xml file in an application folder creates properties available for that application only.

To define a property, create an XML tag. The property name corresponds to the tag’s name, and the property value corresponds to the tag’s contents.

Example

The following XML fragment defines the properties user_name and dept_name, with the values jdoe and engineering, respectively:

<ScriptEngine> 
    <config> 
    <user_name>jdoe</user_name> 
    <dept_name>engineering</dept_name> 
    </config> 
</ScriptEngine>

To access the property in server-side code, use the syntax in either of these examples:

application.config.prop_name  
application.config["prop_name"]
Note: The properties you define are accessible from application.config.property, not from application.property.

ScriptLibPath

A list of paths delimited by semicolons instructing the server where to look for server-side scripts loaded into a main.asc file with the load() method.

These paths are used to resolve a script file that is loaded with the load API. The server first looks in the location where the main.asc or application_name.asc file is located. If the script file is not found there, the script engine searches, in sequence, the list of paths specified in this element.

Example

<ScriptLibPath>${APP.JS_SCRIPTLIBPATH}</ScriptLibPath> 

Security

Container element.

Contains elements that define security features for the application.

Contained elements

MaxUrlLength, RPC

Availability

Flash Media Server 4

SendDuplicateOnMetaData

Specifies whether an onMetaData message is sent at the beginning of video files when the play and seek commands are called. The default value is true.

The following values are available:

  • true sends onMetaData for the play and seek commands.

  • false sends onMetaData for play only.

  • once falls back to Flash Media Server 1.x behavior and sends onMetaData based on the start position, regardless of the command. If no onMetaData is found at the start position, no onMetaData is sent.

Example

<SendDuplicateOnMetaData>true</SendDuplicateOnMetaData>

SendDuplicateStart

Specifies whether status message NetStream.Play.Start is sent for all commands, including play, seek, and unpause. If set to false, only the play command receives the start message.

Example

<SendDuplicateStart>true</SendDuplicateStart>

SendSilence

Container element.

The Interval element nested within this container configures the settings for sending silent messages.

Contained elements

Interval

Server

Container element.

Contains two elements: BufferRatio, which specifies the ratio of the buffer length used by the server-side stream to the live buffer, and Prioritization, which specifies whether to prioritize outgoing messages for server-to-server connections.

Contained elements

BufferRatio, Prioritization

ServerToClient (Bandwidth)

Specifies the bandwidth in bytes per second that the server can use for sending data downstream to the client.

The default bandwidth is 250,000 bytes per second.

You can configure this value in the Bandwidth section of XML and in the BandwidthCap section of XML. The values in the Bandwidth section can be overridden, but the values in the BandwidthCap section are not. This allows ISPs to host applications for customers and ensure that no customer abuses the bandwidth limit. For example, a customer can set any bandwidth limit for their applications, but cannot exceed the caps set by the ISP.

Example

<ServerToClient>250000</ServerToClient>

ServerToClient (BandwidthCap)

Specifies the maximum bandwidth in bytes per second that the server can use for sending data downstream to the client.

The default bandwidth is 10,000,000 bytes per second.

You can configure this value in the Bandwidth section of XML and in the BandwidthCap section of XML. The values in the Bandwidth section can be overridden, but the values in the BandwidthCap section can not. This allows ISPs to host applications for customers and ensure that no customer abuses the bandwidth limit. For example, a customer can set any bandwidth limit for their applications, but cannot exceed the caps set by the ISP.

Example

<ServerToClient>10000000</ServerToClient>

SharedObject

Lets you list methods allowed for SharedObject RPCs. Any method not explicitly listed here is blocked.

If a client subscribes to a remote SharedObject and tries to call remote methods on SSAS using the SO.send() method, the method must be explicitly listed here to succeed.

To add methods, use a comma-delimited list of method names in the <Method><Allow> sub-elements.

The default is to not allow any method calls for SharedObject RPCs.

Contained elements

Method

Example

<SharedObject> 
    <Method> 
        <Allow>setFps</Allow> 
    </Method> 
</SharedObject>

Availability

Flash Media Server 4

SharedObjManager

Container element.

The elements nested within this container configure the Shared Object Manager setting of an application.

StartClockOnPublish

Specifies whether the stream time is sensitive to the difference between publish time and the arrival of the first stream message. The default value is false.

To use dynamic, multibitrate streaming, leave this value false.

StorageDir

Specifies the physical location where shared objects or streams are stored.

By default the physical location is not set. Set this element only if the files for shared objects or recorded streams must be stored in a location other than the application directory.

Example

<StorageDir>C:\myapp\sharedobjects\</StorageDir> 
<StorageDir>C:\myapp\streams\</StorageDir>

See also

DuplicateDir

Stream

Lets you list methods allowed for stream RPCs.

To add methods, use a comma-delimited list of method names in the <Method><Allow> sub-elements.

The default is to allow onStatus method calls only for stream RPCs.

Contained elements

Method

Example

<Stream> 
    <Method> 
        <Allow>onStatus</Allow> 
    </Method> 
</Stream>

Availability

Flash Media Server 4

Subscribers

This element instructs the server to combine sound samples only if there are more than the default number of subscribers to that stream. The default number of subscribers is 8.

Example

<Subscribers>8</Subscribers>

SWFFolder

Specifies a single folder or a semicolon-delimited list of folders containing copies of client SWF files. The server compares these SWF files to client SWF files connecting to applications on the server.

The default value of the SWFFolder element is the application's folder appended with /SWFs. Use a semicolon to separate multiple directories. SWF files located under an instance named folder can only connect to that specific instance.

Example

For an application named myApplication located at C:\applications\, authenticating SWF files should be placed in C:\applications\myApplication\SWFs.

SWFVerification

Container element.

Specifies how the server verifies client SWF files before allowing the files to connect to an application. Verifying SWF files is a security measure that prevents someone from creating their own SWF files that can attempt to stream your resources. For more information, see Verify SWF files.

Note: SWF files connecting to Flash Media Administration Server cannot be verified.

ThrottleBoundaryRequest

Controls the maximum number of concurrent boundary requests per recorded stream. When streaming through a proxy server, the boundary information about video segments are sent to the proxy server by request.

The default value is 8.

Example

<ThrottleBoundaryRequest enable="false">8</ThrottleBoundaryRequest>

ThrottleDisplayInterval

Controls the interval at which the server displays the throttle queue length. The default value is 64, which means the server displays the message 1 out of 64 times when the throttle queue is full.

Example

<ThrottleDisplayInterva>64</ThrottleDisplayInterval>

ThrottleLoads

Controls the maximum number of concurrent segment loads per recorded stream. When streaming through a proxy server, video segments are sent to the proxy server by request. The default value is 8.

Example

<ThrottleLoads enable="true">8</ThrottleLoads>

Tunnel

Specifies whether or not to tunnel all operations through a given HTTP proxy. The default setting is false.

Example

<Tunnel>false</Tunnel>

TTL

Specifies in minutes how long each SWF file remains in the cache. The default value is 1440 minutes (24 hours).

Type

Specifies the type of proxy being connected to. The value for this element can be HTTP or SOCKS5. The default is HTTP.

Example

<Type>HTTP</Type>

UnrestrictedAuth

A Boolean value that determines whether or not to allow sending the user name/password combination with each HTTP redirect. Sending the user name/password combination is useful only if the Allow element permits redirections. The default setting is true.

Example

<UnrestrictedAuth>true</UnrestrictedAuth>

See also

Allow, Max

UpdateInterval

Specifies the maximum time in minutes to wait for the server to scan the SWF folders for updates when there is a miss in the cache. The default value is 5 minutes.

See also

Cache, TTL

UserAgent

Container element.

The settings for clients vary according to whether Flash Player platform is Windows or Macintosh. Setting the value 0x01 will configure the player and platform for silent messages.

Contained elements

Bits

UserAgentExceptions

Container element.

Contains an element that specifies a user agent that should be an exception to authentication. Use the to and from attributes to indicate the lowest and highest versions to except.

Example

<UserAgentExceptions> 
    <Exception to="WIN 9,0,28,0" from="WIN 9,0,28,0"</Exception> 
</UserAgentExceptions>

Contained elements

Exception

Username

Specifies the user name for connecting to the edge.

Verbose

This element determines whether or not the server outputs verbose information during HTTP operations.

Example

<Verbose>false</Verbose>

VideoSampleAccess

Allows the client application to access the raw uncompressed video data in a stream. By default, this element is disabled. To enable it, set the enable attribute to true. In the tag, specify a list of semicolon-delimited folders to which client applications have access. When this element is enabled, all clients can access the video data in streams in the specified folders. To enable access to all video data streamed by the server, specify / in the tag.

The folder path is restricted to the application’s streams folder or folders, so do not use absolute paths in the list of folders.

While you can also enable access through Server-Side ActionScript, this element allows access to the data without requiring Server-Side ActionScript. You can also override this element with the Access plug‑in or Server-Side ActionScript.

Example

If an application is configured to store streams in folders C:\low_quality and C:\high_quality, the configuration to allow access to sample those streams is as follows:

<VideoSampleAccess enabled="true">low_quality;high_quality</VideoSampleAccess>

VirtualDirectory

Specifies virtual directory mappings for Server-Side ActionScript File objects.

If you map File objects in the Application.xml file and don't have the feature enabled in the Server.xml file, you'll see the following message in the log:
"Virtual directories for file objects is not supported due to the Server level security setting."

The VirtualDirectory element is contained by a FileObject element. The FileObject element has an override attribute whose default value is "no". When override="no", the applcation-level Application.xml file cannot override the VirtualDirectory settings for the FileObject defined in a Vhost-level Application.xml file.

Use the following syntax:

<VirtualDirectory>virtual_dir_name;physical_dir_path</VirtualDirectory> 

To specify multiple directories, use multiple <VirtualDirectory> elements, as in the following:

<FileObject>             
    <VirtualDirectory>/key1;C:\example\folder1</VirtualDirectory> 
    <VirtualDirectory>/key2;C:\example\folder2</VirtualDirectory> 
</FileObject>

For more information, see comments in the Application.xml file and Mapping virtual directories to physical directories.

See also

FileObject

WindowsPerAck

Controls how many messages can be sent before receiving an acknowledgement from the other end.

Note: Adobe recommends that you do not change the value of this element.

WriteBufferSize

Specifies in kilobytes the size of the write buffer. The default size is 16 KB.

Example

<WriteBufferSize>16</WriteBufferSize>

XMLSocket

Container element.

Contains an element that specifies how much data can be received from the XML server (without receiving an end tag) before XMLSocket closes the connection. This can be overridden by each XMLSocket by specifying the property XML.maxUnprocessedChars, but that number cannot exceed the number specified in this element.

Example

<XMLSocket> 
    <MaxUnprocessedChars>4096</MaxUnprocessedChars> 
</XMLSocket>

Contained elements

MaxUnprocessedChars