Obtain a License

A license file is required to run EMS. EvoStream offers 30-day trial licenses which can be obtained from the EvoStream website: https://evostream.com/free-trial/

The EMS itself can be downloaded here: https://evostream.com/support/software-downloads/.

Licenses can be purchased from EvoStream directly, contact sales@evostream.com, or via the EvoStream Website: https://evostream.com/pricing/.

Install EMS

Installation for Linux (Package)

EvoStream provides standard Linux installers for the EMS. The Linux EMS installer will install the following packages and software:

  • EvoStream Media Server (EMS)
  • EvoStream Web Server (EWS)

To use the Linux installers, you must follow these instructions.

Pre-requisites:

Administrative privileges are required. This can be accomplished in many ways.

If the sudo utility is available:

$ su –

If the sudo utility is not available:

$ sudo su –

Note:

The prompt changes from $ to # when administrative privileges are enabled.

Installation Procedure:

1. Retrieve the script used to install the EvoStream software repository and store it

  • Debian based Linux distributions (Ubuntu or Debian)

        # wget http://apt.evostream.com/installkeys.sh -O /tmp/installkeys.sh
    
  • RedHat based Linux distributions (CentOS, Fedora, RHEL)

        # curl http://yum.evostream.com/installkeys.sh -o /tmp/installkeys.sh
    

2. Execute the script to install the EvoStream software repository and keys

     # sh /tmp/installkeys.sh
  • If successful, the following message should be printed on the console:

        "EvoStream keys installed successfully"
    

At this stage, the EvoStream software repository and keys are successfully installed and you can install packages from it.

Note: Steps 1 and 2 above must be executed only once.

The following steps are used to install the EvoStream Media Server, and can be repeated to update the EMS to the most recent release.

3. Install EvoStream Media Server.

  • Debian based Linux distributions (Ubuntu or Debian)

        # apt-get install evostream-mediaserver
    
  • RedHat based Linux distributions (CentOS, Fedora, RHEL)

        # yum install evostream-mediaserver
    

4. Install the license file. Copy the License.lic file into /etc/evostream folder

     # cp /path/to/License.lic /etc/evostream/License.lic

5. Run EvoStream Media Server

  • To start EMS in console mode

        # service evostreamms start_console
    
  • To start EMS as a daemon background process

        # service evostreamms start
    
  • To restart EMS (will restart as daemon)

        # service evostreamms restart
    
  • To stop EMS

        # service evostreamms stop
    

Installation for Linux (Archive)

You can install the EMS from a simple archive file (.tar.gz). The latest EMS Release can be found on the EvoStream website: https://evostream.com/software-downloads/.

You will need to choose the most appropriate distribution for the Operating System that you are using. Once you have downloaded your distribution:

Simply extract the EMS package. The location of the installation is not important. However, for security reasons, the EvoStream Media Server should not be installed into the web-root of the target computer (if one exists).

Installation for Windows®

The latest EMS Release can be found on the EvoStream website: https://evostream.com/software-downloads/. Choose the most appropriate distribution for the Operating System that you are using. Once you have downloaded your distribution, simply extract the EMS package to a temporary folder.

Run setup.exe to install EMS.

See the Quick Start Guide document for the detailed installation instructions.

Other Installers

If you cannot find a suitable distribution, please contact us at sales@evostream.com, and we can possibly provide a custom compilation for the Operating System of your choice.

Platform Verification

If you are unsure if the distribution you downloaded is appropriate for your Operating System, you can use the platformTests program. This program is available with all distributions and provides a suite of platform compatibility tests. It can be found in the bin directory.

On all systems, open a console or terminal (command prompt) and run the platformTests executable (./platformTests). It will print out the results of the platform compatibility tests. If the test succeeds, then you have an appropriate distribution!

Linux Limitations

Linux systems place limits on the number of sockets and file descriptors a process may use. This will apply to the EMS as well. If you plan on using more than 1024 connections at one time for your server, you will need to modify the following configuration file: /etc/security/limits.conf

The following lines will need to be added/modified:

soft nofile 16384
hard nofile 65536
soft nproc 4096
hard nproc 16384

Distribution Content

Linux Package

/
├── etc
│   └── evostreamms
│       ├── blacklist.txt
│       ├── config.lua
│       ├── server.cert
│       ├── server.key
│       ├── users.lua
│       ├── webconfig.lua
│       └── whitelist.txt
├── usr
│   ├── bin
│   │   ├── evo-phpengine
│   │   │   └── php.cgi
│   │   ├── evo-avconv
│   │   ├── evo-mp4writer
│   │   ├── evostreamms
│   │   └── evo-webserver
│   └── share
│       ├── evo-avconv
│       │   └── presets
│       │       └── [30 transcode preset files]
│       └── doc
│           └── evostreamms
│               ├── copyright
│               ├── EvoStream Media Server EULA v2.pdf
│               ├── README.txt
│               └── version
│                   ├── BUILD_DATE
│                   ├── BUILD_NUMBER
│                   ├── CODE_NAME
│                   ├── OS_NAME
│                   ├── OS_VERSION
│                   └── RELEASE_NUMBER
└── var
    ├── evostreamms
    │   ├── media
    │   └── xml
    │       ├── auth.xml
    │       ├── bandwidthlimits.xml
    │       ├── connlimits.xml
    │       ├── ingestpoints.xml
    │       └── pushPullSetup.xml
    ├── evo-webroot
    │   ├── demo
    │   │   ├── css
    │   │   ├── evo.png
    │   │   ├── evowrtcclient.html
    │   │   ├── evowsvideo.html
    │   │   ├── jsonMetaTest.html
    │   │   ├── jsonMetaWriteTest.html
    │   │   └── loading.gif
    │   ├── EMS_Web_UI
    │   │   ├── css
    │   │   ├── img
    │   │   ├── js
    │   │   ├── php
    │   │   ├── phpacct
    │   │   ├── settings
    │   │   ├── swf
    │   │   ├── evo.png
    │   │   ├── evostream_copyright.txt
    │   │   ├── index.php
    │   │   ├── install_license.php
    │   │   ├── license.txt
    │   │   ├── loading.gif
    │   │   ├── navbar.php
    │   │   ├── README.txt
    │   │   ├── README[Enable_Login_Authentication].txt
    │   │   └── style.css
    │   ├── evowebservices
    │   │   ├── config
    │   │   ├── core
    │   │   ├── plugins
    │   │   ├── evostream_copyright.txt
    │   │   ├── evowebservices.php
    │   │   └── README.txt
    │   ├── clientaccesspolicy.xml
    │   └── crossdomaim.xml
    ├── log
    │   └── evostreamms
    └── run
        └── evostreamms

Linux Archive

./EvoStream Archive
  ├── bin
  │   ├── evo-phpengine
  │   ├── emsTranscoder.sh
  │   ├── evo-avconv
  │   ├── evo-mp4writer
  │   ├── evostreamms
  │   ├── evo-webserver
  │   ├── platformTests
  │   ├── run_console_ems.sh
  │   └── run_daemon_ems.sh
  ├── config
  │   ├── auth.xml
  │   ├── bandwidthlimits.xml
  │   ├── blacklist.txt
  │   ├── config.lua
  │   ├── connlimits.xml
  │   ├── ingestpoints.cml
  │   ├── pushPullSetup.xml
  │   ├── server.cert
  │   ├── server.key
  │   ├── users.lua
  │   ├── webconfig.lua
  │   └── whitelist.txt
  ├── demo
  │   ├── base64.js
  │   └── emsdemo.html
  ├── evo-avconv-presets
  │   └── [30 transcode preset files]
  ├── evo-webroot
      ├── demo
      │   ├── css
      │   ├── evo.png
      │   ├── evowrtcclient.html
      │   ├── evowsvideo.html
      │   ├── jsonMetaTest.html
      │   ├── jsonMetaWriteTest.html
      │   └── loading.gif
      ├── EMS_Web_UI
      │   ├── css
      │   ├── img
      │   ├── js
      │   ├── php
      │   ├── phpacct
      │   ├── settings
      │   ├── swf
      │   ├── evo.png
      │   ├── evostream_copyright.txt
      │   ├── index.php
      │   ├── install_license.php
      │   ├── loading.gif
      │   ├── license.txt
      │   ├── navbar.php
      │   ├── README.txt
      │   ├── README[Enable_Login_Authentication].txt
      │   └── style.css
      ├── evowebservices
      │   ├── config
      │   ├── core
      │   ├── plugins
      │   ├── EMS_Web_Services_User_Guide.pdf
      │   ├── evostream_copyright.txt
      │   └── evowebservices.php
      ├── clientaccesspolicy.xml
      └── crossdomain.xml
  ├── logs
  ├── media
  ├── BUILD_DATE
  ├── Evostream Media Server EULA v2.pdf
  └── README.txt

Windows Package

C:\EvoStream
   ├── config
   │   ├── auth.xml
   │   ├── bandwidthlimits.xml
   │   ├── blacklist.txt
   │   ├── config.lua
   │   ├── connlimits.xml
   │   ├── ingestpoints.cml
   │   ├── pushPullSetup.xml
   │   ├── server.cert
   │   ├── server.key
   │   ├── users.lua
   │   ├── webconfig.lua
   │   └── whitelist.txt
   ├── demo
   │   ├── base64.js
   │   └── emsdemo.html
   ├── evo-avconv-presets
   │   └── [30 transcode preset files]
   ├── evo-phpengine
   ├── evo-webroot
       ├── demo
       │   ├── css
       │   ├── evo.png
       │   ├── evowrtcclient.html
       │   ├── evowsvideo.html
       │   ├── jsonMetaTest.html
       │   ├── jsonMetaWriteTest.html
       │   └── loading.gif
       ├── EMS_Web_UI
       │   ├── css
       │   ├── img
       │   ├── js
       │   ├── php
       │   ├── phpacct
       │   ├── settings
       │   ├── swf
	   │   ├── evo.png
       │   ├── evostream_copyright.txt
       │   ├── index.php
       │   ├── install_license.php
       │   ├── license.txt
       │   ├── loading.gif
       │   ├── navbar.php
       │   ├── README.txt
       │   ├── README[Enable_Login_Authentication].txt
       │   └── style.css
       ├── evowebservices
       │   ├── config
       │   ├── core
       │   ├── plugins
       │   ├── evostream_copyright.txt
       │   ├── evowebservices.php   
       │   └── README.txt
       ├── clientaccesspolicy.xml
       └── crossdomain.xml
   ├── logs
   ├── media
   ├── services
   ├── emsTranscoder.bat
   ├── evo-avconv.exe
   ├── evo-mp4writer.exe
   ├── Evostream Media Server EULA v2.pdf
   ├── evostreamms.exe
   ├── evo-webserver.exe
   ├── libgcrypt-20.dll
   ├── libgmp-10.dll
   ├── libgnutls-28.dll
   ├── libgpg-error6-0.dll
   ├── libhogweed-2-5.dll
   ├── libiconv-2.dll
   ├── libmicrohttpd-12.dll
   ├── libnettle-4-7.dll
   ├── README.txt
   ├── run_console_ems.bat
   ├── tests.exe
   ├── unins000.dat
   ├── unins000.exe
   └── zlib1.dll

File Descriptions

Command Files

File Description
evostreamms(.exe) The EvoStream binary itself
evo-webserver(.exe) The EvoStream Web Server (EWS) binary. This handles the serving of all files over HTTP
evo-mp4writer(.exe) This binary application combines the various pieces of each MP4 recording once the file is ready to be finalized
evo-avconv(.exe) The EvoStream Transcoder binary. This gets called in reaction to the transcode API command
run_daemon_ems.sh Shell script used on Linux/Unix environments to start the EMS as a background application. Use this for production deployments. It requires that the user “evostream” exists, the script will not work without it. Please feel free to modify this script to use a different user. When using the daemon script, to validate that the server is running, you can issue the command ps –ef
run_console_ems.bat Batch file/script on Windows which runs the EMS as a console application. This is useful for new users as it provides instant feedback on the console when commands are entered and shows errors if they occur in new streams.
create.bat Script to create a Windows service for the EMS. This will also start the EMS as a background process. This must be run with Administrative privileges as it writes to the Windows Registry. This only needs to be run once.
remove.bat Script to remove the Windows service for the EMS and remove the relevant Windows Registry entries. This must be run with Administrative privileges.
start.bat Script to start the EMS Windows service. This script will not work if create.bat has not been run first.
stop.bat Script to stop the EMS Windows Service.
Srvany.exe This is a binary provided by Microsoft and is used to create the Windows Service.

Configuration Files

File Description
config.lua The main configuration file used by the EMS. The contents of this file are detailed later in this document.
webconfig.lua The EvoStream Web Server (EWS) configuration file. The contents of this file are detailed later in this document.
users.lua Defines the valid authentication the server will require when streams are pushed into the EMS.
pushPullSetup.xml This file is used by the EMS to store stream action commands that are made through the Runtime API. This file may not be modified. At startup, if the EMS detects that the file has been modified it will rename the file and start with a blank/fresh copy.
connlimits.xml Defines the maximum number of concurrent connections you want the EMS to accept
bandwidthlimits.xml Defines the maximum amount of bandwidth you want the server to be able to use (set the instantaneous bandwidth cap).

Documentation

File Description
EvoStream Media Server EULA v2.pdf The End User License Agreement for the EMS

Miscellaneous

File Description
demo/emsdemo.htmldemo/base64.js The emsdemo.html file can be opened directly in a web browser and provides some example commands which can be sent to the EMS.
media/ The media directory is the default location for video-on-demand files. This is where the EMS will look when VOD requests are made. This default location can be changed in the EMS main configuration file, which is typically config/config.lua
logs/ This is the directory that EMS will write its logs to. This default location can be changed in the EMS main configuration file, which is typically config/config.lua
License.lic This is the license file required to run the EMS. It can be placed in the config/ , bin/ , or /etc/evostreamms/ folders, or in whatever folder the evostreamms binary resides.
evowebservices.log This is an auto-generated file which contains the logs for the evowebservices. The file will be placed in ../evo-webroot/evowebservices.