The ModuleStreamResolver module for Wowza Streaming Engine™ media server software enables edge servers in a live stream repeater (origin/edge) configuration to dynamically resolve client requests for streams to multiple origin servers.
Note:
- The ModuleStreamResolver module doesn't work with Wowza Streaming Engine 4.7.8. If this module is required for your workflow, you must use an earlier or later version of the Wowza Streaming Engine media server software.
- The ModuleStreamResolver module doesn't support nDVR streams.
Prerequisites
Wowza Streaming Engine 4.0.0 or later is required.
Installation
- Download wse-plugin-streamresolver.zip. Do this on all origin and edge servers in your live stream repeater configuration.
- Extract the contents from the downloaded (zipped) package, and then copy the lib/wse-plugin-streamresolver.jar file from the package to the lib folder in your Wowza Streaming Engine installation ([install-dir]/lib).
- Restart Wowza Streaming Engine.
Wowza Streaming Engine edge server configuration
- On each edge server, create a Live Edge application.
- On each edge server in your live stream repeater setup, add the following module definition to the Live Edge application configuration. See Configure modules for details.
Name
|
Description
|
Fully Qualified Class Name
|
ModuleStreamResolver | Resolves streams from origin dynamically. | com.wowza.wms.plugin.streamresolver.ModuleStreamResolver |
Wowza Streaming Engine edge server properties
After enabling the module on each edge server, you can adjust the default settings by adding the following properties to your live application. See Configure properties for details.
Path |
Value
|
Notes
|
||
/Root/Application | wowzaResolverConfTargetPath | String | [install-dir]/content/origins.txt | Path to a file that has a list of origin servers (one per line). (default: not set) |
/Root/Application | wowzaResolverOriginServers | String | server1.com,server2.com | If the wowzaResolverConfTargetPath property isn't set, use this property to define a comma-delimited list of origin servers. (default: not set) |
/Root/Application | wowzaResolverProtocol | String | rtmp | Protocol to use when connecting to origin servers (rtmp or wowz). (default: wowz) |
/Root/Application | wowzaResolverUDPClientPort | Integer | 9777 | UDP port to use for edge/origin communication. (default: 9777) |
/Root/Application | wowzaResolverUDPClientTimeout | Integer | 2000 | Time (in milliseconds) before timing out the connection to an origin server. (default: 2000) |
/Root/Application | wowzaResolverOriginApplicationName | String | [application-name] | (Optional) By default, the edge server application looks for streams on the origin server application with the same name. Use this property to define a different application name on the origin server in which to look for streams. (default: uses requested edge application name) |
/Root/Application | wowzaResolverOriginApplication InstanceName |
String | _definst_ | (Optional) By default, the edge server application looks for streams on the origin server application with the same application instance name. Use this property to define a different application instance name on the origin server in which to look for streams. (default: uses requested edge application instance name) |
/Root/Application | wowzaResolverOriginStreamName | String | myStream | (Optional) By default, the edge server application looks for streams on the origin server application/application instance with the same stream name. Use this property to define a different stream name on the origin server to look for. (default: uses stream name requested from edge). |
/Root/Application | wowzaResolverDebugLog | Boolean | true | Enable extra debug logging on the edge application. (default: false) |
On each origin server in your live stream repeater setup, add the following server listener definition to your server. See Configure server listeners for details.
Fully Qualified Class Name
|
com.wowza.wms.plugin.streamresolver.ServerListenerLocateSourceStream |
Wowza Streaming Engine origin server properties
After enabling the server listener on each origin server, you can adjust the default settings by adding the following properties to your live application. See Configure properties for details.
Path
|
Name
|
Type
|
Value
|
Notes
|
/Root/Server | wowzaSourceStreamUDPListenerDebug | Boolean | false | Debug inbound connections to your origin server from edge requests. (default: false) |
/Root/Server | wowzaSourceStreamUDPListenerPort | Integer | 9777 | UDP port to use for origin/edge communication. (default: 9777) |
/Root/Server | wowzaSourceStreamHostName | String | mycompany.com | The origin server's public hostname. (default: null) |
Usage
When a client/player requests a stream from an edge server, the edge will first look for existing streams that it has already requested for a match. If none are found, it then queries the defined list of origin servers to return the requested stream. The edge server will connect to the origin server that responds first with a valid stream, and then serve that stream to the client/player.
For developers
- Get the source code on GitHub