How can we help?

My Cases

Configure an External Wowza Media Server on the ESS
Last Updated: Nov 09, 2017 05:04PM EST

This article applies to:  Echo360 Admins

Summary

The EchoSystem Server (ESS) is distributed with a version of Wowza Media Server that, by default, is installed with the ESS and runs concurrently with it on the same physical host. This is referred to as an "internal" Wowza server.

In high-load deployments, it is advantageous to use a dedicated server solely for the purpose of streaming the Flash content that the EchoSystem produces. This article will explain the process of configuring EchoSystem Server 5.2, 5.3 or 5.4 to use an external instance of Wowza Media Server 3.5, 3.6 or 4.0.>

If you are upgrading an existing installation from EchoSystem Server 5.1, please see the article Updating an Existing External Wowza Installation.

Procedure

Preparing for Installation

  1. Wowza is a Java application, and requires Java Runtime Environment (JRE) version 6 or 7. Installers for your platform are available from Oracle.
  2. Download the Wowza Media Server installation bits for your platform from this page.
  3. Make a note of your Wowza license key, which will be required during installation. If Echo360 provided you with a Wowza license, your EchoSystem Server will show the name of it on the Licensing page. You can contact Echo360 Technical Support to obtain your unique key string that Wowza will need in order to run.

Proceed with the installation of Wowza on the Flash content server (FCS) by running the Wowza installer. In following steps, the content storage location that Wowza will use will be configured. This need not be in the same place as the program files.

Co-locating the Flash Content

Your ESS is configured to deposit the Flash content it generates into a specific location that can either be a local volume or a UNC-addressable path. On the ESS System Settings page, this is represented in the “Flash Folder” field of the Streaming Settings section on the System tab.

In order for the Wowza server to find and stream Flash content, that content needs to be stored on a volume that your Wowza application has read and write access to. This can be a local drive (that the ESS writes to via a network share), a mounted SMB/CIFS file share, or mounted NAS/SAN storage.

It is beyond the scope of this article to describe all the possible ways you can store your Flash content so that both your ESS and Flash servers can access it. Consult your operating system’s documentation for configuring file shares, if necessary, or contact Echo360 Technical Support for guidance.

Installing the External Wowza Bundle

For on-demand and live Echoes, chat and presence functionality, and legacy Apreso content, we have created a script that automatically installs the proper directory structure needed inside the Wowza application directory, the required files for configuration, and additional required Java libraries. Follow these steps if you are configuring an external Wowza server for the first time.

  1. Download the External Wowza Bundle from the Echo360 Customer Portal.
  2. Extract the contents of the archive to a temporary location on your Wowza server.
  3. Open the included README.html document and follow the instructions for your platform.

Configuring Wowza

Wowza Media Server relies on virtual servers, called applications, to serve the correct content based on the document root given in URL requests. These applications are configured by creating directory structures and XML documents at specific locations within the Wowza instance’s installation folder. When the ESS uses its “internal” Wowza instance, it manages these folders for you and creates the necessary configuration files automatically. When Wowza is external, these folders are created by running the script in the bundle.

Both live and on-demand streaming, along with their supporting components, are configured as separate Wowza applications with distinct parameters. There are four applications in total: one for on-demand Echo streaming, one for live Echo streaming, one for the chat and presence functions of live Echoes, and one for legacy Apreso content.

The section above, Installing the External Wowza Bundle, covers how to install the necessary application folders, Application.xml files, and Java libraries for on-demand Echoes, live streaming, and for the chat and presence features. Please proceed with those steps as needed if you have not already.

If you are installing a Wowza 4.0 instance, please be sure to review the section below, Required Modification for Wowza 4.0.

As an overview, starting at the installation root for the Wowza server instance (by default, /usr/local/WowzaMediaServer/ or C:\Program Files\Wowza Media Server\), the necessary components of the directory tree (in addition to the program files) are as follows:

WowzaMediaServer
├── applications
│   ├── apreso
│   ├── echo
│   │   ├── keys
│   │   │   └── _definst_
│   │   └── sharedobjects
│   │       └── _definst_
│   ├── echolive
│   │   ├── keys
│   │   │   └── _definst_
│   │   └── sharedobjects
│   │       └── _definst_
│   └── echotextchat
├── conf
│   ├── apreso
│   ├── echo
│   ├── echolive
│   └── echotextchat

After installing the bundle, verify this directory structure is in place before proceeding.

Next, you will need to edit one line in each of the installed Application.xml (under conf/{application name}) files to define the location where Wowza should look for your Flash content.

The echo, echolive, and apreso Application.xml files all contain a parameter named StorageDir in the first Streams stanza near the top of the file:

<StorageDir>${echo.flash.content.location}</StorageDir>

In each file, replace the ${echo.flash.content.location} value between the StorageDir tags with the location that corresponds to that of the Flash Folder defined on your ESS System Settings page. If the Flash folder is located on a local drive on the ESS host, a network share must be created and the relative UNC path must be used. For example:

<StorageDir>\\echo-ess\content\flash</StorageDir>

The echotextchat Application.xml file is different. Near the bottom of the file, this document contains a set of property values encoded like so:

<Properties>
    <Property>
        <Name>objectstoragedirectory</Name>
        <Value>
        ${echo.flash.content.location}/echotextchat/rso
        </Value>
    </Property>
    <Property>
        <Name>chatlogstoragedirectory</Name>
        <Value>
        ${echo.flash.content.location}/echotextchat/chatlogs
        </Value>
    </Property>
    <Property>
        <Name>echosystemdirectory</Name>
        <Value>
        ${echo.flash.content.location}
        </Value>
    </Property>
</Properties>


Replace the ${echo.flash.content.location} string with the value you used for StorageDir in the other three Application.xml files, and leave the appended paths in place. This will cause Wowza to write its chat and presence logs to a location accessible to the ESS, in a subfolder called "echotextchat" beneath the Flash storage root.

Before proceeding, please ensure that you have modified the Application.xml file for each of the four applications: echo, echolive, echotextchat, and apreso.

Required Modification for Wowza 4.0

An external Wowza 4.0 instance is supported as of EchoSystem Server 5.4. If you are upgrading your Wowza instance, ensure that you also upgrade your ESS to the 5.4 release.

The following change is required for Wowza 4.0 to function properly with the EchoSystem Server. In the /conf folder in your Wowza installation root, edit theServer.xml 

  1. Find the following line:
    <DefaultStreamPrefix>mp4</DefaultStreamPrefix>
  2. Modify the value to change 'mp4' to 'flv', like so:
    <DefaultStreamPrefix>flv</DefaultStreamPrefix>

Note that the Server.xml file is not modified or replaced as a part of running the bundle script, so this change must be input manually.

Enabling iOS Live Streaming

Streaming live presentations to iOS devices is supported as of EchoSystem Server 5.2. Additional steps are required the enable this funtionality. In the /conf folder in your Wowza installation root, edit the Server.xml file.

  1. Insert the following text after the final <Properties> tag and before the </Properties> tag:
    <Property>
        <!-- the directory that contains the streams.txt file -->
            <Name>StreamMonitorDir</Name>
            <Value>${echo.flash.content.location}/monitor</Value>
    </Property>
    <Property>
        <!-- the wowza application that the streams will be activated on. Default is echolive -->
            <Name>EchoLiveApplication</Name>
            <Value>echolive</Value>
    </Property>
    <Property>
        <!-- time the thread waits between checks of the streams.txt file. Default is 5 seconds -->
            <Name>WaitInterval</Name>
            <Value>5000</Value>
    </Property>
    
    
  2. Replace the ${echo.flash.content.location} string with the value you used for StorageDir.
  3. Insert the following text between the <ServerListeners> and </ServerListeners> tags.
    <ServerListener>
    	<BaseClass>com.echo360.streaming.live.MediaCaster</BaseClass>
    </ServerListener>

A file labelled example-Server.xml with these changes made is included with the bundle for reference.

Note that the Server.xml file is not modified or replaced as a part of running the bundle script, so these changes must be input manually.

Once all the configuration files have been edited and saved according to these instructions, restart your Wowza service.

Configuring ESS

There are five especially important fields in the Streaming Settings section of your ESS System Settings page that you will need to validate before the ESS can provision your configured Wowza server to stream content. Follow these steps:

  1. Log in to the ESS and navigate to the Configuration -> System Settings page.
  2. Click the Edit button at the top or bottom of the page.
  3. Scroll down to the Streaming Settings heading.
  4. For the Flash Streaming parameter, select External Flash Server.
  5. For the External Flash URL parameter, compose a URL consisting of the RTMP protocol, the fully-qualified domain name (FQDN) of the Wowza server, the on-demand application name (echo), and a _definst_ pointer, as follows: rtmp://fqdn.of.wowza.server/echo/_definst_
  6. For the Live Flash URL parameter, compose a similar URL consisting of all the same elements, but using the live application name (echolive), as follows: rtmp://fqdn.of.wowza.server/echolive/_definst_
  7. The Flash Folder parameter should already reflect the location where you have chosen to store your Flash content.
  8. The Live Streaming Server Host parameter should represent the FQDN (without schema or path components) of your Wowza server.
  9. Once all these parameters are validated, click the Save button at the bottom of the page.

The ESS is now configured to direct your viewers’ browsers to call the external Wowza streaming server when playing live and on-demand Echo content.

c9f5f1d87ac29bd0c146e9565da3c739@echo360.desk-mail.com
https://cdn.desk.com/
false
desk
Loading
seconds ago
a minute ago
minutes ago
an hour ago
hours ago
a day ago
days ago
about
false
Invalid characters found
/customer/en/portal/articles/autocomplete