Transcode Application - Storm Streaming Server
The Transcode application is an optional component of a Storm Streaming Server cluster, dedicated to transcoding streams into multiple quality levels. It offloads the CPU/GPU-intensive encoding work from origin nodes, allowing them to focus on stream ingestion.
A transcode application connects to the ClusterManager, discovers streams published by origin nodes, pulls them, encodes them into the configured quality presets, and publishes the transcoded variants back into the cluster. The resulting variants are then available for edge nodes to distribute to viewers.
This is the simplest application type in terms of configuration — it only requires cluster connectivity, general settings, and the list of transcoding presets.
For more information about building clusters, see the Scaling & Cluster Guide.
Sample Configuration
<Application name="transcode" type="transcode">
<!--
Cluster connection settings — registers this node with the ClusterManager
and exposes it for edge connections.
-->
<StreamingClusterSettings>
<SupervisorList>
<ClusterManager hostname="clustermanager01.example.com" port="443" isSSL="true">
<Priority>1</Priority>
<Secret>your-cluster-secret</Secret>
</ClusterManager>
</SupervisorList>
<NodeAccessSettings hostname="transcode01.example.com" port="1935" isSSL="false" />
<NodePriority>10</NodePriority>
</StreamingClusterSettings>
<!--
General configuration settings related to this application and its streams.
-->
<GeneralSettings>
<Description>Transcode application</Description>
<BroadcastLimit>250</BroadcastLimit>
<StatInterval>2</StatInterval>
<AutoThumbnails enabled="false">
<Interval>2</Interval>
<ThumbWidth />
<ThumbHeight />
</AutoThumbnails>
</GeneralSettings>
<!--
List of enabled live transcoding presets for this application.
-->
<LiveTranscoding enabled="true">
<Preset name="360p" />
<Preset name="480p" />
<Preset name="720p" />
</LiveTranscoding>
</Application>
Main Parameters
| Parameter | Description |
|---|---|
Application:name | Unique name of this application. All applications within config/preferences.xml must have unique names. |
Application:type | Must be set to transcode for this application type. |
Configuration Blocks
The transcode application supports the following configuration blocks. Click on each link for a detailed description of all available parameters.
| Block | Description |
|---|---|
| Streaming Cluster Settings | ClusterManager connections, node access settings, and <NodePriority> for load-balanced routing. |
| General Settings | Application description, broadcast limits, statistics interval, and automatic thumbnail generation. |
| Live Transcoding | Selection of transcoding presets that define the quality variants to produce. |
The transcode application does not support Ingest Settings (streams are pulled from origin nodes, not pushed by broadcasters), Recording Settings, DVR Settings, Stream Security Settings, or Stream Key Alias Settings.
Environment Variables
All configuration fields support environment variables using the ${EV:VARIABLE_NAME} syntax.
<NodeAccessSettings hostname="${EV:EXTERNAL_DOMAIN}" port="${EV:EXTERNAL_PORT}" isSSL="${EV:EXTERNAL_SSL}" />
Fields whose values are set via environment variables cannot be modified through the REST API.
If you have any questions or need assistance, please create a support ticket and our team will help you.