Server installation requirements

HARDWARE REQUIREMENTS

  • OS Platform: Linux (CentOS 5.x) x64_86 – (Works on other distributions too, but the folder or binary executable structure may differ)
  • RAM Requirements: 4 GB DDR2/3 minimum – The more RAM server has the better the app will work
  • CPU Requirements: Intel/AMD quad > 2.3 Ghz – Minimum required. The more computing power the better
  • Disk Space Requirements:2×146 GB 10000 RPM SCSI HDD – Minimum recommended

 

HARDWARE REQUIREMENTS FOR OPTIONAL MODULES

  • Wowza Media Server 3.5 – Mobile Module 2.0 – 1 dedicated server running a Wowza 3.5 instance
  • Wowza Media Server 3.5 – Channel Manager Module 2.0 – 1 dedicated server running a Wowza 3.5 instance

 

DOMAIN IP AND SERVER CONFIG SETTINGS

  • Domain– Valid .TLD domain required – The domain also requires wildcards enabled in the DNS zone
  • IP Information – Public, static IPv4 IP required – At least 1 public, static IP is required
  • DNS Services – DNS has to be configured and propagated prior Streaming platform install
  • Required Ports – 80, 443, 21, 1935, 1111, 943, 4502:4532

 

RECOMMENDED BACKUP AND ACCESS PROCEDURES

  • Backup Strategy – Offsite backup / external attached storage backup – It can be done on a remote server over LAN or an external drive attached
  • Remote Access Enabled – Off peak hours – It must be done during off peak hours to avoid service degradation
  • Backup Scheduling – Optional – Used only for external server support

 

 

REQUIRED SOFTWARE MODULES, 3rd PARTY LICENSES AND SETTINGS

  • Apache version – Apache v 2.2.x

It must have the following modules present: mod_ssl, mod_rewrite, cgi, suexec, suphp

  • PHP version – PHP 5.2.x

Compiled with the following modules: apc, curl, ffmpeg, filter, ftp, gd, json, mbstring, mcrypt, memcache, memcached, mhash, mysql, openssl, PDO, pdo_mysql, session, oap, sockets, SPL, Uploadprogress, Xml, Xmlreader, Xmlrpc, Xmlwriter, Zip, Zlib, SimpleXML, Reflection, Posix, Date, Dom, Calendar, Bcmath and with the extension (Ioncube PHP Loader)

php.ini values:

• memory_limit = 64M
• magic_quotes_gpc = Off
• post_max_size = 128M
• upload_max_filesize = 128M
• safe_mode = Off

  • MySQL Version – mysql v. 5.0.x
  • FMS v. 4.5.x – Adobe Flash Media Interactive Server
  • cPanel + WHM (optional) – www.cpanel.net – cPanel can help in compiling the Apache + PHP with the required modules making it easier to setup.
  • Mono – http://www.monoproject.com

For CentOS we use this: http://ftp.novell.com/pub/mono/downloadstable/RHEL_5/x86_64/

Only these packages:

• monoaddon-libgdiplus0-2.6.7-6.1.x86_64.rpm

• mono-addondata-2.6.7-6.1.x86_64.rpm

• mono-addon-core-2.6.7-6.1.x86_64.rpm

  • ffmpeg – http://www.ffmpeg.org/ – Recommended version: N-32748-g358d837.

Edit ffmpeg/libavformat/utils.c before compiling ffmpeg and replace:

if(st->cur_dts && st->cur_dts != AV_NOPTS_VALUE && ((!(s->oformat->flags & AVFMT_TS_NONSTRICT) && st->cur_dts >= pkt->dts) || st->cur_dts >= pkt->dts))

with

if(st->cur_dts && st->cur_dts != AV_NOPTS_VALUE && ((!(s->oformat->flags & AVFMT_TS_NONSTRICT) && st->cur_dts >= pkt->dts) || st->cur_dts > pkt->dts))

The change must be done because some records made by FMS have non monotonically increasing dts and the cropping will fail otherwise

ffmpeg must be configured with – enable-libspeex and – enable-libfaac;

ffmpeg libavformat version must be 53. 12. 0;

  • ip2location – www.ip2location.com – DB4
  • MP4Box – version 0.4.6-DEV-rev3296;
  • MediaInfo – version v0.7.20;

 

 

INSTALLATION STEPS

Considering all the required software is installed and configured a typical Streaming platform install looks like this:

1. Setup the location where the website will be hosted (either under a user’s home with apache vhost or in a custom location)

2. Setup databases and database users

3. Modify the FMS conf files

4. Deploy website

5. Setup website config files

6. Setup cron jobs

7. Install mono

8. Start Silverlight storage

 

 

3. Modify the FMS conf files

In FMS config files there are some paths which have to be modified to match the paths where the content of the website is located.

The FMS config files which have to be modified are:

  • a. fms.ini
  • b. Server.xml
  • c. Users.xml
  • d. Vhost.xml

 fms.ini

(SERVER.HTTPD_ENABLED = false, VHOST.APPSDIR = /path/to/fms/apps, USERS.HTTPCOMMAND_ALLOW = true)

Users.xml

Replace <Allow>ping</Allow> with <Allow>All</Allow>

We usually deploy the fms folder in user’s home where the vhost is installed.

Example: /home/example/fms

If the FMS is installed using the install script from the kit make sure to make the fms folder from /home/example/fms chmod 777 recursive.

Inside the FMS folder will be these folders (applications, encoded_streams, recorded_streams, monster_encoded_all)

In Vhost.xml at line <Streams></Streams> make it look like:

<Streams>recorded_streams;/home/example/fms/recorded_streams</Streams>

<Streams>encoded_streams;/home/example/fms/encoded_streams</Streams>

FMS requires these libraries to be present on the server (libcap nspr libstdc++).

 

7. Install mono

After mono is installed a symlink is created from /opt/novell/mono/bin/mono to /usr/bin/mono.

 

8. Start silverlight storage

Silverlight storage contains 2 folders (WSPolicy and WSStorage). WSPolicy must be executed as root while WSStorage must be executed as the user under which the website is deployed.

These 2 folders must reside in a folder called monster which will reside in user’s home under which the website is deployed

(Example: /home/example/monster)

 

ADDITIONAL NOTES

If firewall is present on server it must be configured to allow external connections on following ports (80, 443, 21, 1935, 1111, 943, 4502:4532).
Any other missing dependency for the required packages has to be installed by the one in charge of the server administration.