Interactive (lowest latency), Do not send aggregate messages

Adobe Flash Media Server 4.5 * Configuring performance features

Configure the server to deliver live media

The following three configuration settings impact scale and latency for live media delivery:

Note: You can’t send aggregate messages and combine audio samples in the same application.

To configure the server to deliver live media, choose your use case:

Large Scale Broadcast (scale is more important than latency)
In this use case, you want to reach as many people as possible and are willing to allow some latency. You may also want to keep costs down while still reaching as many people as possible. Send large aggregate messages and configure large stream chunk sizes.

 

Large Scale Broadcast (low latency is more important than scale)
In this use case, you want to keep latency as low as possible while reaching as many people as possible. You are willing to trade some scale for decreased latency. Send smaller aggregate messages. Or, combine audio samples and do not send aggregate messages.

 

Interactive (lowest latency)
Interactive applications require very low latency. Do not send aggregate messages. For the lowest latency, do not combine audio samples.

If data latency is your concern, combine audio samples. Combining audio samples introduces audio latency but doesn’t affect the rest of the stream. Aggregating messages introduces latency to the whole stream.

Interactive applications are the most difficult to scale and require more hardware than the large scale broadcast use cases.

 


Configure the server to deliver on-demand media

To configure the server to deliver on-demand (vod) media, complete the following task

about Flash Media Server setting

Adobe Flash Media Server 4.5 * Configuring performance features

Configure the size of stream chunks

Streams break into chunks as they are written to the network. You can specify the size of a chunk. Large values reduce CPU usage because there are fewer writes. However, large values can delay other content on lower bandwidth connections. The larger the content size and the higher the bandwidth of the receiving connection, the more benefit is gained from larger chunk sizes.

  1. Open the Application.xml file.

    Note: You can set these values in an Application.xml file at the VHost level or at the application level. To set the value at the application level, copy an Application.xml file to the application’s folder.
  2. In the Client element, set the OutChunkSize element to a value between 128 and 65536 bytes. The default value is 4096 bytes.

    For more information, see Application.xml file.

  3. Restart the server.


Send aggregate messages

Important: Do not send aggregate messages and combine audio samples in the same application.

An aggregate message is a single message that contains a list of submessages. Sending aggregate messages reduces CPU usage and increases server capacity. You can configure applications to deliver aggregate messages to clients running on Flash Player 9.0.60.0 and above. When this setting is disabled, the server breaks up aggregate messages into individual messages before delivering them to clients.

Aggregate messages can be used with live and recorded streams.

An origin server can deliver aggregate messages to an edge server, and an edge server can deliver aggregate messages from the FLV data that is has cached on the disk. An edge server can deliver aggregate messages even if the origin server did not.

To ensure that aggregate messaging is enabled, be sure the following settings are enabled:
  • EnableAggMsgs in the Server.xml file

  • AggregateMessages in the Application.xml file

  • AggregateMessages in the Vhost.xml file (if applicable)

The following table describes these settings, plus other configuration settings that are related to using aggregate messages:

how to reduce delay

Adobe Forums: 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/WS5b3ccc516d4 fbf351e63e3d119f2925e64-7ff0.html#WS5b3ccc516d4fbf351e63e3d119f2925e64 -7feb

 

Hope this helps.

NetStream.liveDelay

Flash Media Server Developer Documentation

NetStream.liveDelay

Flash Media Server Developer Documentation

NetStream.liveDelay

public liveDelay : Number [read-only]

The number of seconds of data in the specified subscribing stream’s buffer in live (unbuffered) mode. This property indicates the current network transmission delay (lag time).

Availability

Flash Communication Server 1.0; Flash Player 6.

Example

The following example displays a string (inside a text field named connectionQuality_str) indicating the connection quality over the NetStream object named my_ns, according to the value of the liveDelay property:

if (my_ns.liveDelay < .5) {
    connectionQuality_str.text = "Good";
} else if (my_ns.liveDelay < 1) {
    connectionQuality_str.text = "Slow";
} else {
    connectionQuality_str.text = "Network congested";
}

How to get your project’s version dynamically in C#?

How to get your project’s version dynamically in C#? | Rhyous

Ok, so I wanted to create a little Help | About page that looks like this.

MyProgram 1.0.0.5

Author: Jared Barneck

Contributors: John, Mike, Mark, Tom, Bill, Jane, Ryan, Josh

I don’t really want to have to remember to change the version in the help file with each release, so I wanted to get the version dynamically.

Turns out that you can get the version as a string with a single line of code:

String theVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();

Once you have the version as a string, you can display it how you want.

jQuery實戰手冊

最近已經在用jQuery來開發一些東西了,可是我都是在網路上找API來慢慢試,一直想去買本介紹jQuery的中文書,可是都找不到比較好的。今天我們去台北車站附近晃晃,我就想說順便去書局找幾本jQuery的書來翻翻看,總算讓我找到了這一本「jQuery實戰手冊」。

SQL Stored Procedures

SQL Stored Procedures – How To Information | eHow.com

  • The SQL Named Parameters

    Structured query language, or SQL, works with named parameters, so you can pass data back and forth between your desktop and Web applications. These parameters also protect from SQL injection, which is a hack that passes SQL code to the database in an effort to steal data from the tables.

  • Input and Output in Stored Procedures

    Most relational database systems use the Structured Query Language, or SQL, to create database structures, update data and perform reporting and maintenance tasks. Database managers use stored procedures as a way to optimize frequently-used groups of SQL commands. The database keeps the stored procedure in a compiled form that runs faster than SQL submitted from client programs.

  • How to Use a Stored Procedure in SSIS

    Microsoft SQL Server Integration Services automates database processes on your server. Each step executes one process in the SSIS package. To execute a stored procedure, you use the “exec" statement. SSIS packages include SQL code for the process steps, so you just need to add a step and type your exec statement with the stored procedure to use the procedure in the package.