Skip to main content
July 19, 2012
Answered

FMS 4.5 Streaming HDS from non default location

  • July 19, 2012
  • 1 reply
  • 4671 views

We have FMS 4.5 installed in the usual location on the C: drive of a server.

We want to store vod video content in E:\Videos with sub folders for differentiation between content sets; our test uses a subfolder with videos and a manifest file.  The manifest looks like this:

------------------------------------------------------------------------------------------------

<manifest xmlns="http://ns.adobe.com/f4m/2.0">
 
<media href="../hds-vod/test/sample1_150kbps.f4v.f4m" bitrate="150"/>
 
<media href="../hds-vod/test/sample1_500kbps.f4v.f4m" bitrate="500"/>

<media href="../hds-vod/test/sample1_700kbps.f4v.f4m" bitrate="700"/>

<media href="../hds-vod/test/sample1_1000kbps.f4v.f4m" bitrate="1000"/>

<media href="../hds-vod/test/sample1_1500kbps.f4v.f4m" bitrate="1500"/>

</manifest>

---------------------------------------------------------------------------------------------------

We have a website displaying videos using the following syntax:

--------------------------------------------------------------------------------------------

Single bit rate

"url=" + hostName + "/hds-vod/test/Cars_Edited_Demo.mp4.f4m" + link + "&type=httpsingle" (which works)

Multi bit rate

"url=" + hostName + "/vod/test/hds_sample1_manifest.f4m" + link + "&type=httpmbr" (which doesn’t work)

--------------------------------------------------------------------------------------

The Apache error_log shows this:

----------------------------------------------------------------------------------------------------------

[Fri Mar 02 15:47:08 2012] [error] mod_f4fhttp [404]: E:/Videos/hds-vod/test/sample1_150kbps.f4v.f4m does not exist

[Fri Mar 02 15:47:08 2012] [error] [client 172.31.0.105] File does not exist: C:/Program Files/Adobe/Flash Media Server 4.5/webroot/vod/hds-vod, referer: http://demo.atomwide.com/vc3test/swfs/adobedemoplayer_pc.swf

[Fri Mar 02 15:47:08 2012] [error] mod_f4fhttp [404]: E:/Videos/hds-vod/test/sample1_500kbps.f4v.f4m does not exist

[Fri Mar 02 15:47:08 2012] [error] [client 172.31.0.105] File does not exist: C:/Program Files/Adobe/Flash Media Server 4.5/webroot/vod/hds-vod, referer: http://demo.atomwide.com/vc3test/swfs/adobedemoplayer_pc.swf

[Fri Mar 02 15:47:08 2012] [error] mod_f4fhttp [404]: E:/Videos/hds-vod/test/sample1_700kbps.f4v.f4m does not exist

[Fri Mar 02 15:47:08 2012] [error] [client 172.31.0.105] File does not exist: C:/Program Files/Adobe/Flash Media Server 4.5/webroot/vod/hds-vod, referer: http://demo.atomwide.com/vc3test/swfs/adobedemoplayer_pc.swf

[Fri Mar 02 15:47:08 2012] [error] mod_f4fhttp [404]: E:/Videos/hds-vod/test/sample1_1000kbps.f4v.f4m does not exist

[Fri Mar 02 15:47:08 2012] [error] [client 172.31.0.105] File does not exist: C:/Program Files/Adobe/Flash Media Server 4.5/webroot/vod/hds-vod, referer: http://demo.atomwide.com/vc3test/swfs/adobedemoplayer_pc.swf

[Fri Mar 02 15:47:08 2012] [error] mod_f4fhttp [404]: E:/Videos/hds-vod/test/sample1_1500kbps.f4v.f4m does not exist

[Fri Mar 02 15:47:08 2012] [error] [client 172.31.0.105] File does not exist: C:/Program Files/Adobe/Flash Media Server 4.5/webroot/vod/hds-vod, referer: http://demo.atomwide.com/vc3test/swfs/adobedemoplayer_pc.swf

---------------------------------------------------------------------------------------------------------

and the access_log shows this:

----------------------------------------------------------------------------------------------------------

172.31.0.105 - - [02/Mar/2012:15:46:49 +0000] "GET /hds-vod/test/Cars_Edited_Demo.mp4.f4m HTTP/1.1" 206 1857 "http://demo.atomwide.com/vc3test/index.html" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"

172.31.0.105 - - [02/Mar/2012:15:46:50 +0000] "GET /crossdomain.xml HTTP/1.1" 200 188 "http://demo.atomwide.com/vc3test/swfs/adobedemoplayer_pc.swf" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"

172.31.0.105 - - [02/Mar/2012:15:46:50 +0000] "GET /hds-vod/test/Cars_Edited_Demo.mp4.f4m HTTP/1.1" 200 1857 "http://demo.atomwide.com/vc3test/swfs/adobedemoplayer_pc.swf" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"

172.31.0.105 - - [02/Mar/2012:15:46:51 +0000] "GET /hds-vod/test/Cars_Edited_Demo.mp4Seg1-Frag1 HTTP/1.1" 200 3120800 "http://demo.atomwide.com/vc3test/swfs/adobedemoplayer_pc.swf" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"

172.31.0.105 - - [02/Mar/2012:15:46:52 +0000] "GET /hds-vod/test/Cars_Edited_Demo.mp4Seg1-Frag2 HTTP/1.1" 200 2859182 "http://demo.atomwide.com/vc3test/swfs/adobedemoplayer_pc.swf" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"

172.31.0.105 - - [02/Mar/2012:15:46:55 +0000] "GET /hds-vod/test/Cars_Edited_Demo.mp4Seg1-Frag3 HTTP/1.1" 200 2645168 "http://demo.atomwide.com/vc3test/swfs/adobedemoplayer_pc.swf" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"

172.31.0.105 - - [02/Mar/2012:15:46:58 +0000] "GET /hds-vod/test/Cars_Edited_Demo.mp4Seg1-Frag4 HTTP/1.1" 200 2673502 "http://demo.atomwide.com/vc3test/swfs/adobedemoplayer_pc.swf" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"

172.31.0.105 - - [02/Mar/2012:15:47:03 +0000] "GET /hds-vod/test/Cars_Edited_Demo.mp4Seg1-Frag5 HTTP/1.1" 200 2471283 "http://demo.atomwide.com/vc3test/swfs/adobedemoplayer_pc.swf" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"

172.31.0.105 - - [02/Mar/2012:15:47:07 +0000] "GET /vod/test/hds_sample1_manifest.f4m HTTP/1.1" 200 434 "http://demo.atomwide.com/vc3test/index.html" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"

172.31.0.105 - - [02/Mar/2012:15:47:07 +0000] "GET /vod/test/hds_sample1_manifest.f4m HTTP/1.1" 304 - "http://demo.atomwide.com/vc3test/index.html" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"

172.31.0.105 - - [02/Mar/2012:15:47:08 +0000] "GET /vod/test/hds_sample1_manifest.f4m HTTP/1.1" 200 434 "http://demo.atomwide.com/vc3test/swfs/adobedemoplayer_pc.swf" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"

172.31.0.105 - - [02/Mar/2012:15:47:08 +0000] "GET /vod/hds-vod/test/sample1_150kbps.f4v.f4m HTTP/1.1" 404 322 "http://demo.atomwide.com/vc3test/swfs/adobedemoplayer_pc.swf" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"

172.31.0.105 - - [02/Mar/2012:15:47:08 +0000] "GET /vod/hds-vod/test/sample1_500kbps.f4v.f4m HTTP/1.1" 404 322 "http://demo.atomwide.com/vc3test/swfs/adobedemoplayer_pc.swf" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"

172.31.0.105 - - [02/Mar/2012:15:47:08 +0000] "GET /vod/hds-vod/test/sample1_700kbps.f4v.f4m HTTP/1.1" 404 322 "http://demo.atomwide.com/vc3test/swfs/adobedemoplayer_pc.swf" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"

172.31.0.105 - - [02/Mar/2012:15:47:08 +0000] "GET /vod/hds-vod/test/sample1_1000kbps.f4v.f4m HTTP/1.1" 404 323 "http://demo.atomwide.com/vc3test/swfs/adobedemoplayer_pc.swf" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"

172.31.0.105 - - [02/Mar/2012:15:47:08 +0000] "GET /vod/hds-vod/test/sample1_1500kbps.f4v.f4m HTTP/1.1" 404 323 "http://demo.atomwide.com/vc3test/swfs/adobedemoplayer_pc.swf" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"

---------------------------------------------------------------------------------------

These seem to indicate that the maifest file isn't being found.  The fms.ini looks like this:

-------------------------------------------------------------------------------------

###########################################################################
# fms.ini contains substitution variables for Flash Media Server          #
# configuration files. Lines beginning with '#' are considered comments.  #
# A substitution variable is in the form <name>=<value>. Everything up to #
# the first '=' is considered the name of the substitution variable, and  #
# everything after the first '=' is considered the substitution value. If #
# you want a substitution variable to have leading or trailing spaces,    #
# enclose the value around double quotes. For example, foo=" bar "        #
###########################################################################

###############################################################
# This section contains configurable parameters in Server.xml #
###############################################################

# Username for server admin
# For example:
#    SERVER.ADMIN_USERNAME = foo
#
SERVER.ADMIN_USERNAME = vc_lgfl

# IP address and port Flash Media Admin Server should listen on
# For example:
#    SERVER.ADMINSERVER_HOSTPORT = :1111
#
SERVER.ADMINSERVER_HOSTPORT = :1111

# User id in which to run the process (Linux Only)
# For example:
#    SERVER.PROCESS_UID = 500
#
SERVER.PROCESS_UID =

# Group id in which to run the process (Linux Only)
# For example:
#    SERVER.PROCESS_GID = 500
#
SERVER.PROCESS_GID =

# License key for Flash Media Server
# For example:
#    SERVER.LICENSEINFO = XXXX-XXXX-XXXX-XXXX-XXXX-XXXX
#
SERVER.LICENSEINFO =

# LIVE_DIR denotes the full path of sample "Live" application's
# folder for storing any live stream recorded by server. 
# For example:
#    LIVE_DIR = <FMS_Installation_Dir>\applications\live
#
LIVE_DIR = C:\Program Files\Adobe\Flash Media Server 4.5\applications\live

# VOD_COMMON_DIR denotes the full path of sample "VOD" application's
# folder for storing onDemand and Progressive Download .flv/.mp3 files.
# File stored in this folder can be streamed and are also PD-able.
# Note : If you are using the default installation of Apache as a webserver,
# and if you modify VOD_COMMON_DIR, please change the document root
# accordingly in httpd.conf.
# For example:
#    VOD_COMMON_DIR = <FMS_Installation_Dir>\webroot\vod
#
#VOD_COMMON_DIR = C:\Program Files\Adobe\Flash Media Server 4.5\webroot\vod
VOD_COMMON_DIR = E:\Videos

# VOD_DIR denotes the full path of sample "VOD" application's
# folder for storing onDemand only .flv/.mp3 files. Files stored in
# this folder are not PD-able
# For example:
#    VOD_DIR = <FMS_Installation_Dir>\applications\vod\media
#
#VOD_DIR = C:\Program Files\Adobe\Flash Media Server 4.5\applications\vod\media
VOD_DIR = E:\Videos

# The maximum size of the FLV cache, in megabytes.
# The default is 500MB.
#
SERVER.FLVCACHE_MAXSIZE=500

# Whether to start and stop the included HTTP server along
# with FMS.
#
SERVER.HTTPD_ENABLED = true

################################################################
# This section contains configurable parameters in Adaptor.xml #
################################################################

# IP address and port(s) Flash Media Server should listen on
# For example:
#    ADAPTOR.HOSTPORT = :1935,80
#
ADAPTOR.HOSTPORT = :1935

# IP (address and) port that Flash Media Server should proxy
# unknown HTTP requests to. Leave empty to disable proxying.
# With no address, specifies a localhost port.
# For example:
#    HTTPPROXY.HOST = webfarm.example.com:80
#
HTTPPROXY.HOST = :8134

##############################################################
# This section contains configurable parameters in Vhost.xml #
##############################################################

# Application directory for the virtual host
# For example:
#    VHOST.APPSDIR = C:\myapps
#
#VHOST.APPSDIR = C:\Program Files\Adobe\Flash Media Server 4.5\applications
VHOST.APPSDIR = E:\Videos

####################################################################
# This section contains configurable parameters in Application.xml #
####################################################################

# List of semi-colon delimited paths in which to search for script to load
# For example:
#    APP.JS_SCRIPTLIBPATH = C:\scripts;C:\Program Files\Foo\scripts
#
APP.JS_SCRIPTLIBPATH = C:\Program Files\Adobe\Flash Media Server 4.5\scriptlib

###############################################################
# This section contains configurable parameters in Logger.xml #
###############################################################

LOGGER.LOGDIR =

####################################################################
# This section contains configurable parameters in Users.xml #
####################################################################

# Enable or disable using HTTP requests to execute admin commands.   
# Set to "true" to enable, otherwise it will be disabled.  The          
# actual commands permitted for server admin and virtual host admin  
# users can be set in Users.xml.                                      
  
USERS.HTTPCOMMAND_ALLOW = true

--------------------------------------------------------------------------------------------

and the httpd.cong looks like this:

-------------------------------------------------------------------------------------------

#
# 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.2/> for detailed information.
# In particular, see
# <URL:http://httpd.apache.org/docs/2.2/mod/directives.html>
# for a discussion of each configuration directive.
#
# Please see httpd.conf.orig for the configuration of a default
# (non-FMS) installation of apache.

Listen 80

# If you plan to run FMS as root on linux, you _must_ specify a
# valid user, with access to the FMS 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.

AccessFileName .htaccess
ServerSignature On
UseCanonicalName Off
HostnameLookups Off

Timeout 120
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15

ErrorLog logs/error_log
LogLevel info
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog logs/access_log combined

DocumentRoot "../webroot"

DirectoryIndex index.html index.html.var index.php index.php3 index.php4 index.php5 index.py index.pl index.rb

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    Satisfy all
</Directory>

<Directory "../webroot">
    Options -Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

Alias /documentation ../documentation/
<Directory ../documentation/>
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>


Alias /icons/ "icons/"
<Directory "icons">
    Options MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

Alias /error/ "error/"

ScriptAlias /cgi-bin/ "cgi-bin/"
<Directory "cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 10.0.0.0/8
    Allow from 172.16.0.0/12
    Allow from 192.168.0.0/16
    Allow from 127.
</Location>
ExtendedStatus On
<Location /server-info>
    SetHandler server-info
    Order deny,allow
    Deny from all
    Allow from 10.0.0.0/8
    Allow from 172.16.0.0/12
    Allow from 192.168.0.0/16
    Allow from 127.
</Location>


<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
</FilesMatch>

<IfModule mpm_winnt_module>
    ThreadsPerChild 250
    MaxRequestsPerChild 0
</IfModule>
<IfModule worker_module>
    StartServers         2
    MaxClients         150
    MinSpareThreads     25
    MaxSpareThreads     75
    ThreadsPerChild     25
    MaxRequestsPerChild  0
</IfModule>

LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
<IfModule mpm_winnt_module>
    LoadModule cgi_module modules/mod_cgi.so
</IfModule>
<IfModule worker_module>
    LoadModule cgid_module modules/mod_cgid.so
</IfModule>
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
#LoadModule expires_module modules/mod_expires.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule headers_module modules/mod_headers.so
LoadModule imagemap_module modules/mod_imagemap.so
LoadModule include_module modules/mod_include.so
LoadModule info_module modules/mod_info.so
<IfModule mpm_winnt_module>
    LoadModule isapi_module modules/mod_isapi.so
</IfModule>
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule mime_magic_module modules/mod_mime_magic.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule speling_module modules/mod_speling.so
LoadModule status_module modules/mod_status.so
LoadModule unique_id_module modules/mod_unique_id.so
LoadModule userdir_module modules/mod_userdir.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule ssl_module modules/mod_ssl.so
LoadModule f4fhttp_module modules/mod_f4fhttp.so
LoadModule hlshttp_module modules/mod_hlshttp.so
LoadModule jithttp_module modules/mod_jithttp.so

##############################################################################
# The following section enables caching of Just-In-Time packaged content     #
# Use htcacheclean tool to manage the amount of data that is cached on disk. #
# See Apache documentation for its usage.                                    #
# http://httpd.apache.org/docs/2.2/programs/htcacheclean.html                #
# Make sure the directory specified by the CacheRoot directive exists. The   #
# default is a directory named cacheroot that is directly under the Apache   #
# installation directory.                                                    #
# For more information on content caching, see Apache documentation          #
# http://httpd.apache.org/docs/2.2/caching.html                              #
##############################################################################

# Uncomment this to enable caching
#LoadModule cache_module modules/mod_cache.so
<IfModule mod_cache.c>
    LoadModule disk_cache_module modules/mod_disk_cache.so
    <IfModule mod_disk_cache.c>
        CacheEnable disk /hds-vod
        CacheEnable disk /hls-vod
        CacheRoot cacheroot
        CacheMaxFileSize 10000000
        CacheLock On
    </IfModule>
</IfModule>


<IfModule f4fhttp_module>
<Location /vod>
    HttpStreamingEnabled true
#    HttpStreamingContentPath "../webroot/vod"
    HttpStreamingContentPath "E:\Videos"
    Options -Indexes FollowSymLinks
</Location>

# map old style url to new (as of FMS 4.5), more compact url
Redirect 301 /live/events/livepkgr/events /hds-live/livepkgr

<Location /hds-live>
    HttpStreamingEnabled true
    HttpStreamingLiveEventPath "../applications"
    HttpStreamingContentPath "../applications"
    HttpStreamingF4MMaxAge 2
    HttpStreamingBootstrapMaxAge 2
    HttpStreamingFragMaxAge -1
    Options -Indexes FollowSymLinks
</Location>
</IfModule>

<IfModule hlshttp_module>
<Location /hls-live>
    HLSHttpStreamingEnabled true
    HttpStreamingLiveEventPath "../applications"
    HttpStreamingContentPath "../applications"
    HLSMediaFileDuration 8000
    HLSSlidingWindowLength 6
    HLSFmsDirPath ".."
    HLSM3U8MaxAge 2
    HLSTSSegmentMaxAge -1

# Uncomment the following directives to enable encryption
# for this location.
#    HLSEncryptionScope server
#    HLSEncryptCipherKeyFile "../phls/liveeventkey.bin"
#    HLSEncryptKeyURI        "https://<ServerName>/hls-key/liveeventkey.bin"

    Options -Indexes FollowSymLinks
</Location>

<Location /hls-vod>
    HLSHttpStreamingEnabled true
    HLSMediaFileDuration 8000
#    HttpStreamingContentPath "../webroot/vod"
    HttpStreamingContentPath "E:\Videos"
    HLSFmsDirPath ".."

# Uncomment the following directives to enable encryption
# for this location.
#    HLSEncryptionScope server
#    HLSEncryptCipherKeyFile "../phls/vodkey.bin"
#    HLSEncryptKeyURI        "https://<ServerName>/hls-key/vodkey.bin"

    Options -Indexes FollowSymLinks
</Location>

</IfModule>


<IfModule jithttp_module>
<Location /hds-vod>
    HttpStreamingJITPEnabled true
#    HttpStreamingContentPath "../webroot/vod"
    HttpStreamingContentPath "E:\Videos"
    JitFmsDirPath ".."
    Options -Indexes FollowSymLinks

# Uncomment the following directives to enable encryption
# for this location.
#   EncryptionScope server
#   ProtectionScheme phds
</Location>
</IfModule>


TypesConfig conf/mime.types
MIMEMagicFile conf/magic
DefaultType text/plain

AddType video/x-flv .flv
AddType video/MP2T .ts

AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-mpegurl .m3u8


AddHandler send-as-is asis
AddHandler type-map var
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

<IfModule ssl_module>
    SSLRandomSeed startup builtin
    SSLRandomSeed connect builtin
</IfModule>

<IfModule userdir_module>
    UserDir disable
</IfModule>

<IfModule dav_fs_module>
    DAVLockDB tmp/dav/lockdb
</IfModule>

IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIconByType (VID,/icons/movie.gif) application/x-shockwave-flash
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon /icons/unknown.gif
ReadmeName README.html
HeaderName HEADER.html
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

AddLanguage ca .ca
AddLanguage cs .cz .cs
AddLanguage da .dk
AddLanguage de .de
AddLanguage el .el
AddLanguage en .en
AddLanguage eo .eo
AddLanguage es .es
AddLanguage et .et
AddLanguage fr .fr
AddLanguage he .he
AddLanguage hr .hr
AddLanguage it .it
AddLanguage ja .ja
AddLanguage ko .ko
AddLanguage ltz .ltz
AddLanguage nl .nl
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddLanguage pt .pt
AddLanguage pt-BR .pt-br
AddLanguage ru .ru
AddLanguage sv .sv
AddLanguage zh-CN .zh-cn
AddLanguage zh-TW .zh-tw
LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
ForceLanguagePriority Prefer Fallback
AddDefaultCharset UTF-8

<IfModule mod_negotiation.c>
    <IfModule mod_include.c>
        <Directory "error">
            AllowOverride None
            Options IncludesNoExec
            AddOutputFilter Includes html
            AddHandler type-map var
            Order allow,deny
            Allow from all
            LanguagePriority en es de fr
            ForceLanguagePriority Prefer Fallback
        </Directory>
    </IfModule>
</IfModule>

BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully

#Uncomment following for enabling https based key serving
#for HLS.
#Include conf/httpd-hls-secure.conf

-----------------------------------------------------------------------------------------------

I suppose the problem lies in an incorrect configuration setting which I'm just not seeing.  Any hints or tips would be greatly appreciated.

This topic has been closed for replies.
Correct answer

Hi Peter,

All your configurations seem to be fine except for the manifet file. Your directory structure must be E:/Videos/test/<video+manifest>, so in your manifest file your urls need to be : ../../hds-vod/test/sample1_500kbps.f4v.f4m

This is because the urls in the manifest are taken relative to the url of the manifest file. So when you have ../hds-vod/test/sample1_500kbps.f4v.f4m, the request will be as hostname+"/vod/hds-vod/test/sample1_500kbps.f4v.f4m but you need the individual requests to be hostname+"/hds-vod/test/sample1_500kbps.f4v.f4m

Please try with your manifest as :

<manifest xmlns="http://ns.adobe.com/f4m/2.0">

<media href="../../hds-vod/test/sample1_150kbps.f4v.f4m" bitrate="150"/>

<media href="../../hds-vod/test/sample1_500kbps.f4v.f4m" bitrate="500"/>

<media href="../../hds-vod/test/sample1_700kbps.f4v.f4m" bitrate="700"/>

<media href="../../hds-vod/test/sample1_1000kbps.f4v.f4m" bitrate="1000"/>

<media href="../../hds-vod/test/sample1_1500kbps.f4v.f4m" bitrate="1500"/>

</manifest>

Let me know if this helps.

Thanks,

Apurva

1 reply

Correct answer
July 20, 2012

Hi Peter,

All your configurations seem to be fine except for the manifet file. Your directory structure must be E:/Videos/test/<video+manifest>, so in your manifest file your urls need to be : ../../hds-vod/test/sample1_500kbps.f4v.f4m

This is because the urls in the manifest are taken relative to the url of the manifest file. So when you have ../hds-vod/test/sample1_500kbps.f4v.f4m, the request will be as hostname+"/vod/hds-vod/test/sample1_500kbps.f4v.f4m but you need the individual requests to be hostname+"/hds-vod/test/sample1_500kbps.f4v.f4m

Please try with your manifest as :

<manifest xmlns="http://ns.adobe.com/f4m/2.0">

<media href="../../hds-vod/test/sample1_150kbps.f4v.f4m" bitrate="150"/>

<media href="../../hds-vod/test/sample1_500kbps.f4v.f4m" bitrate="500"/>

<media href="../../hds-vod/test/sample1_700kbps.f4v.f4m" bitrate="700"/>

<media href="../../hds-vod/test/sample1_1000kbps.f4v.f4m" bitrate="1000"/>

<media href="../../hds-vod/test/sample1_1500kbps.f4v.f4m" bitrate="1500"/>

</manifest>

Let me know if this helps.

Thanks,

Apurva

July 20, 2012

Thanks Apurva.  Absolutely on the button.  I knew it would be something simple that I just wasn't seeing.

Thanks again for taking the time to read through all the stuff.