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>
|
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>
|
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>
|
|
©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.
|