Adobe Media Server, Apache, and Windows

I’ve been meaning to write about this for some time, for the benefit of anyone else who encounters the problem. Things are going to get crazy around here, so I might as well get this out there and out of my drafts!


The problem itself is that we run a number of Adobe Media Server 5 instances at the University of Denver and after an upgrade over the Summer Quarter, streaming and stability pretty much went from 100% reliable to “we need to find another streaming solution”.

So the setup is AMS5, bundled Apache 2.4, and Windows Server 2012. On both live streams and VOD – we saw similar behavior… the services were all still running… but no content was being served. After looking at a number of parameters we discovered that our RTMP streams were actually running fine. It was the HLS streams which were constantly dying.

We were actually having to restart the services to get streams running again multiple times a day – for weeks. It was an incredibly frustrating experience and searches for this problem in regard to AMS yielded no workable results. I even tried reaching out to Adobe through my contacts with them and was met with complete silence. Absolutely frustrating.

It wasn’t until I began excluding the term “AMS” from my research – and looked only toward Windows and Apache HTTPD that I found anything close to what I was experiencing.

asf_logo

I found 2 different posts about what appears to be the exact same issue – not with AMS itself… but with Apache on Windows:

Both threads suggest the addition of the following parameters to the main Apache configuration file:

AcceptFilter http none
EnableSendfile Off
EnableMMAP off

Performing the mentioned adjustments to the Apache 2.4 configuration file within your AMS installation absolutely resolves this issue. Here is the modified httpd.conf located at {PROGRAMS}\Adobe\Adobe Media Server 5\Apache2.4\conf as an example:

#
# This is the main Apache server configuration file. It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.
# In particular, see
# <URL:http://httpd.apache.org/docs/2.4/mod/directives.html>
# for a discussion of each configuration directive.
#
# Please see httpd.conf.orig for the configuration of a default
# (non-AMS) installation of apache.
Define AMS_BASE_PATH ".."
Define WEB_ROOT "/webroot"
Define AMS_WEB_ROOT ${AMS_BASE_PATH}${WEB_ROOT}
Listen 80
Listen 8134

LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

# If you plan to run AMS as root on linux, you _must_ specify a
# valid user, with access to the AMS installation direction, or
# apache will not run.
#
# If you've used the default installer, nobody (or whatever other
# username you gave to the installer) will work here.
#
# If you're running a developer build under your own home directory,
# you should use your own username.

AcceptFilter http none
EnableSendfile Off
EnableMMAP off
AccessFileName .htaccess
ServerSignature On
UseCanonicalName Off
HostnameLookups Off

Timeout 120
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15

This was an incredibly frustrating experience for myself and many others involved. I hope this post helps someone out there to resolve this problem without the weeks upon weeks of crap I had to deal with!

Leave a Reply

Your email address will not be published. Required fields are marked *