Dynamic Relaying of RTSP Servers

In this section we will describe in detail and provide code and working examples for dynamic relaying of RTSP Darwin servers.

  • The Scenario
Assume that RTP client is unicasting or multicasting a stream to a RTSP server. We will establish dynamic relaying of that stream to other servers in OSSA.

So, basic scenario is that encoding user is broadcasting to server DSS1, while clients will receive the stream from another server DSS2. Attribute "dynamic" means that:

* relaying of streams from server DSS1 to server DSS2 is established without reseting any of the servers

* relay is capable of closing itself upon termination of the broadcast from the server DSS2, so bandwidth is wasted when no clients are requesting that particular stream from DSS2.

  • The Protocol
In order to establish dynamic relay, we use the following protocol:

* if the original broadcast to DSS1 is not multicast, we establish multicast relay to DSS1 itself;

* the client requested for the stream from server DSS2 originate in fact from the HTPPD server on the same server as DSS1. That is needed to start "push" relay from DSS1 to DSS2.

* the client request for the stream through CGI script (relay.cgi) from HTTP server on DSS1;

* cgi script starts relaying from DSS1 to DSS1 of the multicast replica of the original stream, and redirects client (through a SMIL file) to server DSS2;

* SDP file that describes parameters of the relaying stream is already available on streaming server DSS2. That structure prevents unauthorized relaying from DSS2 - the administrator has to agree to accept SDP file for the relaying stream.

* when none of the clients require the stream from DSS2, RTPTRANS reports an error, so after a specific number of error messages, a control script discontinues the relay.

Open_Source_Streaming_Platform

Server_Side
_Darwin_Streaming_Server
_Icecast_Streaming_Server
_RTPTOOLS

Content_Production_Side
_Mbone_-_OpenMash_Tools
_Autostart_Script_VIC
_Live_Encoding_-_Mbone_Tools
_MPEG_4_IP
_MP3_Live_Streaming
_SMIL

Dynamic_Relaying_of_RTSP_Servers
_Dynamic_Relay_-_Flow
_Dynamic_Relay_-_Code
_Dynamic_Relay_&_MP3_alias

OSSA_Streaming_Protocol
_SDP_Exchange_&_Public_Keys
_Stream_Scanner

Logfile_Analyzer