previous next

Appendix D: Server File Syntax

This appendix explains how to create and edit a server destination file, which records settings used to transmit a live stream to Helix Server for broadcast to RealPlayers.

Note: If you are not familiar with XML syntax, refer to Appendix A for information about XML namespaces, tags, attributes, and values.

Understanding Server Destination Files

A server destination file specifies the IP address or DNS name of a Helix Server used to broadcast a live stream. For a multicast, the server destination file indicates the multicast address. The destination file also defines properties required by the server, such as error correction parameters and authentication passwords. These properties can vary by broadcast type. For example, error correction parameters are set in the server destination file for push broadcasts but not for pull broadcasts.

After you create a server destination file, copy it to the servers directory under the main RealProducer installation directory. You then use the destination with the graphical application, as described in "Working with Server Templates", or when running the command-line application, as explained in "Output and Destination Options". Server destination files use the file extension .rpsd.

For More Information: Before you create or modify a server destination file, be sure that you understand the broadcasting issues described in Chapter 10.

Tip: RealProducer includes sample server destination files for all broadcast types in the samples/servers directory under the main RealProducer installation directory. You can use one of these files as the basis for creating your own server destination file. Or, you can create files through the graphical application, as described in Chapter 11.

Push Server Syntax

A push server file can set up an account-based broadcast, a password-only broadcast, or a multicast. Following the XML declaration tag, you define all properties within a single list starting with a <destination> tag and ending with a </destination> tag. The pushServer value for the xsi:type property identifies the server destination as a push broadcast:

<?xml version="1.0" encoding="UTF-8"?>
<destination xsi:type="pushServer" xmlns="http://ns.real.com/tools/server.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ns.real.com/tools/server.2.0
http://ns.real.com/tools/server.2.0.xsd">
...all push server properties...
</destination>

The following sections in Chapter 11 provide background about how the broadcast properties function for the various types of push broadcasts:

Push Server Properties

The following table lists the possible push server properties. You define each property as a separate tag within the <destination> list.

Push Server Properties
Property Value Function
address type="string" IP address or DNS name Provides the server's IP address or DNS name. Ignored for multicasts.
allowResends type="bool" true|false Accepts the server's packet resend requests when set to the default value of true. This is ignored if transport is tcp or udp/multicast.
authType type="string" account-based|
single-password
Sets the authentication type used. The default is account-based, which requires a user name and password. The single-password type requires only a valid password. Use single-password for password-only broadcasts and multicasts.
enableTCPReconnect type="bool" true|false Re-establishes a dropped broadcast stream when set to the default value of true. Used only if transport is tcp.
endPort type="uint" port number Defines the last port in the port range the server uses to receive broadcast data. The value can be 1 to 65535. The default is 30020. This property is ignored for account-based broadcasts.
fecOffset type="uint" seconds Offsets redundant packets by the specified number of seconds if fecPercent is 100. The default is 0.
fecPercent type="uint" 0-50|100 Allocates a percentage of the stream for error correction packets. The value can be any integer from 0-50 or 100. Values from 51 to 99 are assumed to be 100. The default is 0.
listenAddress type="string" IP address Sets the IP address that RealProducer uses to listen for packet resend requests. This property is ignored for multicasts.
metadataResendInterval type="uint" seconds Defines the number of seconds between metadata resends when transport is udp. Ignored if transport is tcp. The default is 30.
multicastAddress type="string" multicast IP address Indicates the multicast address to use. Ignored if transport is not udp/multicast.
multicastTTL type="uint" router hops Sets the number of router hops allowed for a multicast. Valid values are 1 to 255. The default is 16. Ignored for other types of broadcasts.
name type="string" name Names the server destination for use by the graphical application. Used only in a job file. With a server destination file, the file name is used as the destination name.
password type="string" string Validates the server connection. For account-based broadcasts, the server's authentication database defines the password. For password-only broadcasts or multicasts, the receiver definition sets the password.
path type="string" path name Defines an optional, virtual path used for server features such as archiving or splitting. Include a trailing forward slash, as in news/. The value appears in the URL ahead of the stream name, as in news/live.rm.
pluginName type="string" rn-server-rbs Identifies the plug-in that handles the stream connection.
port type="uint" port number For an account-based broadcast, this defines the HTTP port on the server, which is typically 80. For a password-only broadcast or multicast, this defines the first port in the port range the server uses to receive broadcast data. The value can be 1 to 65535. The default is 30001.
savePassword type="bool" true|false Saves the password as plain text in the server destination file when set to true. The password is used only with the graphical application. With the command-line application, you must enter the password on the command line. The default is false.
statisticsUpdateInterval type="uint" 1 to 604800 Sets the number of seconds between statistics updates from the server in account-based broadcasts only. The default is 10.
streamname type="string" stream name Defines the stream name used in the broadcast URL. This should use the appropriate extension, as in live.rm or live.rmvb.
TCPReconnectInterval type="uint" 1 to 3600 Indicates the number of seconds to wait before attempting to re-establish an account-based broadcast or a password-only broadcast that uses TCP transport. The default is 10.
transport type="string" udp/unicast|
udp/multicast|
tcp
Defines the broadcast transport and mode. The default is udp/unicast. For password-only broadcasts and multicasts, this value must match the setting on the receiver.
username type="string" name Validates the broadcast. The server defines the user name and password in its authentication database. Used only with account-based broadcasts.

Push Server Examples

The following sections provide examples of the three standard types of push broadcasting: account-based, password-only, and multicast.

Account-Based Example

The following example defines an account-based broadcast. The authType property sets the broadcast type. The username and password properties supply log-in credentials for the Helix Server authentication database.

<?xml version="1.0" encoding="UTF-8"?> 
<destination xsi:type="pushServer" xmlns="http://ns.real.com/tools/server.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ns.real.com/tools/server.2.0
http://ns.real.com/tools/server.2.0.xsd">
<pluginName type="string">rn-server-rbs</pluginName>
<authType type="string">account-based</authType>
<address type="string">helixserver.example.com</address>
<port type="uint">80</port>
<endPort type="uint">0</endPort>
<username type="string">realmedia-encoder</username>
<password type="string">453ERP098zu</password>
<savePassword type="bool">true</savePassword>
<transport type="string">udp/unicast</transport>
<listenAddress type="string">172.23.104.188</listenAddress>
<fecPercent type="uint">20</fecPercent>
<fecOffset type="uint">10</fecOffset>
<metadataResendInterval type="uint">30</metadataResendInterval>
<allowResends type="bool">true</allowResends>
<statisticsUpdateInterval type="uint">2</statisticsUpdateInterval>
</destination>

Password-Only Example

The following example defines a password-only broadcast, as shown in the authType property value. There is no user name, and the log-in password is defined in the Helix Server receiver configuration. The metadataResendInterval property defines how long it may take Helix Server to re-establish a dropped broadcast stream.

<?xml version="1.0" encoding="UTF-8"?>
<destination xsi:type="pushServer" xmlns="http://ns.real.com/tools/server.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ns.real.com/tools/server.2.0
http://ns.real.com/tools/server.2.0.xsd">
<pluginName type="string">rn-server-rbs</pluginName>
<authType type="string">single-password</authType>
<address type="string">helixserver.example.com</address>
<port type="uint">30001</port>
<endPort type="uint">30020</endPort>
<savePassword type="bool">true</savePassword>
<password type="string">546zRGW23</password>
<transport type="string">udp/unicast</transport>
<listenAddress type="string">172.23.104.188</listenAddress>
<fecPercent type="uint">20</fecPercent>
<fecOffset type="uint">10</fecOffset>
<metadataResendInterval type="uint">30</metadataResendInterval>
<allowResends type="bool">true</allowResends>
<enableTCPReconnect type="bool">true</enableTCPReconnect>
<TCPReconnectInterval type="uint">10</TCPReconnectInterval>
<statisticsUpdateInterval type="uint">2</statisticsUpdateInterval>
</destination>

Multicast Example

The next example illustrates a server destination file for a multicast. The authType property is set to single-password because the password defined in the Helix Server receiver configurations is required. The transport property creates the multicast through its udp/multicast value. The multicastAddress property defines the multicast address monitored by all Helix Server receivers.

<?xml version="1.0" encoding="UTF-8"?>
<destination xsi:type="pushServer" xmlns="http://ns.real.com/tools/server.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ns.real.com/tools/server.2.0
http://ns.real.com/tools/server.2.0.xsd">
<pluginName type="string">rn-server-rbs</pluginName>
<authType type="string">single-password</authType>
<port type="uint">30001</port>
<endPort type="uint">30020</endPort>
<savePassword type="bool">true</savePassword>
<password type="string">3542zdf22</password>
<transport type="string">udp/multicast</transport>
<multicastAddress type="string">225.229.1.1</multicastAddress>
<multicastTTL type="uint">16</multicastTTL>
<fecPercent type="uint">20</fecPercent>
<fecOffset type="uint">10</fecOffset>
<metadataResendInterval type="uint">30</metadataResendInterval>
<statisticsUpdateInterval type="uint">2</statisticsUpdateInterval>
</destination>

Legacy Push Server Syntax

A legacy push server file sets up a broadcast stream between RealProducer and RealSystem Server version G2, 7, or 8. Following the XML declaration tag, you define all properties within a single list starting with a <destination> tag and ending with a </destination> tag. The g2PushServer value for the xsi:type property identifies this server definition as a legacy push broadcast:

<?xml version="1.0" encoding="UTF-8"?>
<destination xsi:type="g2PushServer"
xmlns="http://ns.real.com/tools/server.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ns.real.com/tools/server.2.0
http://ns.real.com/tools/server.2.0.xsd">
...all legacy push server properties...
</destination>

For More Information: Refer to "Setting up a Legacy Broadcast" for background information about how the legacy server properties function.

Legacy Server Properties

The following table lists the possible legacy push properties. You define each property as a separate tag within the <destination> list.

Legacy Push Server Properties
Property Value Function
address type="string" IP address or DNS name Provides the server's IP address or DNS name.
name type="string" name Names the server destination for use by the graphical application. Used only in a job file. With a server destination file, the file name is used as the destination name.
password type="string" string Validates the broadcast. The server defines the user name and password in its authentication database.
path type="string" path name Sets an optional, virtual path used for server features such as archiving or splitting. Include a trailing forward slash, as in news/. The value appears in the URL ahead of the stream name, as in news/live.rm.
pluginName type="string" rn-server-g2 Identifies the plug-in that handles the stream connection.
port type="uint" port number Defines the server port where the stream is sent. The default is 4040.
savePassword type="bool" true|false Saves the password as plain text in the server destination file when set to true. The default is false.
streamname type="string" stream name Defines the stream name used in the broadcast URL. This should use the appropriate extension, as in live.rm.
transport type="string" udp/unicast|tcp Defines the broadcast transport and mode. The default is udp/unicast.
username type="string" name Validates the broadcast. The server defines the user name and password in its authentication database.

Legacy Server Example

The following example defines a legacy push broadcast. The username and password properties supply log-in credentials for the RealSystem server authentication database. This broadcast uses the preferred udp/unicast transport.

<?xml version="1.0" encoding="UTF-8"?>
<destination xsi:type="g2PushServer" xmlns="http://ns.real.com/tools/server.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ns.real.com/tools/server.2.0
http://ns.real.com/tools/server.2.0.xsd">
<pluginName type="string">rn-server-g2</pluginName>
<address type="string">realserver.example.com</address>
<port type="uint">4040</port>
<username type="string">realmedia-encoder</username>
<savePassword type="bool">true</savePassword>
<password type="string">456TWYzq</password>
<transport type="string">udp/unicast</transport>
</destination>

Pull Server Syntax

A pull server file defines a broadcast in which Helix Server requests the broadcast stream from RealProducer. Following the XML declaration tag, you define all properties within a single list starting with the <destination> tag and ending with the </destination> tag. The pullServer value for the xsi:type property identifies this server definition as a pull broadcast:

<?xml version="1.0" encoding="UTF-8"?>
<destination xsi:type="pullServer"
xmlns="http://ns.real.com/tools/server.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ns.real.com/tools/server.2.0
http://ns.real.com/tools/server.2.0.xsd">
...all pull server properties...
</destination>

For More Information: Refer to "Running a Pull Broadcast" for background information about pull broadcast properties.

Pull Server Properties

The following table lists the possible pull broadcast properties. You define each property as a separate tag within the <destination> list.

Pull Server Properties
Property Value Function
listenAddress type="string" IP address Defines the IP address that RealProducer uses to listen for pull requests. Do not use a DNS name. A value of 0 indicates the default address on the RealProducer computer's network interface card.
listenPort type="uint" port number Sets the port that RealProducer monitors for pull requests. The value can be 1 to 65535. The default is 3031. You can use the same port for multiple broadcasts running on the same machine.
name type="string" name Names the server destination for use by the graphical application. Used only in a job file. With a server destination file, the file name is used as the destination name.
password type="string" string Validates the broadcast. The serve password in the receiver configuration must match this value.
path type="string" path name Sets an optional, virtual path used for server features such as archiving or splitting. Include a trailing forward slash, as in news/. The value appears in the URL ahead of the stream name, as in news/live.rm.
pluginName type="string" rn-server-rbs Identifies the plug-in that handles the stream connection.
savePassword type="bool" true|false Saves the password as plain text in the server destination file when set to true. The default is false.
serverTimeout type="uint" 0 to 86400 Sets the number of seconds that RealProducer waits before stopping the broadcast packets after it receives no more "keep alive" messages from the server. The default is 30.
streamname type="string" stream name Defines the stream name used in the broadcast URL. This should use the appropriate extension, as in live.rm or live.rmvb.

Pull Server Example

The following example defines a pull broadcast. RealProducer listens on the IP address and port defined by listenAddress and listenPort, respectively, for broadcast requests by Helix Server. The password property verifies access to the stream. In a pull broadcast, the initiating receiver specifies many of the broadcast parameters, such as whether forward error correction is used.

<?xml version="1.0" encoding="UTF-8"?>
<destination xsi:type="pullServer" xmlns="http://ns.real.com/tools/server.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ns.real.com/tools/server.2.0
http://ns.real.com/tools/server.2.0.xsd">
<pluginName type="string">rn-server-rbs</pluginName>
<listenAddress type="string">172.23.104.188</listenAddress>
<listenPort type="uint">3031</listenPort>
<savePassword type="bool">true</savePassword>
<password type="string">WEPO342zqd</password>
<serverTimeout type="uint">30</serverTimeout>
</destination>


RealNetworks, Inc. ©2004 RealNetworks, Inc.
For more information, visit RealNetworks
Click here if the Table of Contents frame is not visible at the left side of your screen.
previous next