Edge Application - Storm Streaming Server

Applications are separate group of streams with specific set of parameters and settings. An application defines how streams can be published and viewed.

Sample Configuration

An edge application is the basis for creating a video streaming cluster. It is very similar to a live application. A single edge application will connect to an origin application (or multiple ones) and copy its streams when requested. You cannot push streams into an edge-type application.

The basic edge-type application configuration stored in config/preferences.xml looks as follow:

                        
<Application name="edge" type="edge">

    <StreamingClusterSettings>
        <SupervisorList>
            <ClusterManager host="mydomain.com" port="443" isSSL="true">
                <Priority>1</Priority>
                <Secret>qwerty*1234556</Secret>
            </ClusterManager>
        </SupervisorList>
        <CopyOnPublish>true</CopyOnPublish>
    </StreamingClusterSettings>

	<SecureStream enabled="false">
		<Password>qwerty</Password>
		<CheckViewerIP>true</CheckViewerIP>
		<TokenLifespan>10</TokenLifespan>
	</SecureStream>

	<MP4MuxerSettings>
		<VariableFPS>true</VariableFPS>
		<KeyFrameCompensation>false</KeyFrameCompensation>
	</MP4MuxerSettings>

	<DVRSettings enabled="false">
		<CacheSize>100</CacheSize>
	</DVRSettings>

</Application>
                    

Main Parameters Explanation

Application:name Name of this application. If there are more applications within your preferences .xml they all must have unique names.
Application:type This value must be set to “edge” for this type of Application.
Table 1. Main parameters table

Streaming Cluster Settings

This block defines a list of ReverendMothers to which information about streams and their status within the cluster is sent. Later, Edge-type applications connected to these same ReverendMothers will be able to locate the stream on the appropriate server with an Origin-type application.

It is possible to define more than one ReverendMother in the list for the purpose of redundancy.

ClusterManager:host URL or IP to a server hosting ReverendMother instance.
ClusterManager:port Port for ReverendMother connection.
ClusterManager:isSSL True/false depending on whenever SSL layer is required.
Secret A secret for connection authorization
Priority Priority for ReverendMother (if more available). Higher the number, higher the priority
CopyOnPublish Whenever stream from an Origin application should be immediately copied to this Edge application, otherwise it'll wait for a first request from a viewer.
Table 2. Streaming cluster settings table

SecureStream Settings

SecureStream allows to protect stream playback using a special token. Can will change depending on viewer’s IP (optionally) or time. If you wish to learn more about this function, check our guide for SecureStream.

SecureStream:enable Defines whenever SecureStream is enabled for this application or not.
Password Unique password that will be used for creating a token.
CheckViewerIP Defines whenever viewer’s IP should be used to create a token.
TokenLifespan Defines token’s lifespan (in minutes).
Table 3. SecureStream settings table

MP4 Muxer Settings

MP4MuxerSettings block defines basic options for MP4 packager that is used for MSE/HLS connections

VariableFPS If the source stream has no const frame rate (e.g. WebRTC-based source) muxer will try to fix the stream by adjusting composition times for selected frames.
KeyFrameCompensation Enables mechanism where “empty” frames are inserted into a stream if Audio/Video desynchronization is detected.
Table 4. MP4 muxer settings table

DVR Settings

DVR function allows for short live-stream rewind mechanism based on cached stream.

DVRSettings:enabled Defines whenever DVR is enabled.
CacheSize Number of MB within memory for storing video stream. Length of stored video material will depend on resolution and bitrate.
Table 5. DVR settings table
Support Needed?

Create a free ticket and our support team will provide you necessary assistance.