
64
FLASH
MEDIA
SERVER
4.5
CONFIGURATION
AND
ADMINISTRATION
Configuring the server
Last updated 11/28/2012
OSMF
The OSMF 2.0 player adds client-side robustness by supporting best-effort fetch. Specifically, when best-effort fetch is
enabled on the server, OSMF 2.0 attempts fetches for fragments that have not been advertised in the bootstrap, but are
expected to be present.
For more information on OSMF 2.0 client side functionality, see the
OSMF documentation
on SourceForge.
HLS
For iOS Video players, FMS 4.5.2 enables best-effort fetch for HLS through settings in the
<bestEffortFetchInfo>
element in the manifest.xml file.
Configure HTTP Streaming failover server settings
You configure server settings for HTTP Streaming failover in the httpd.conf and manifest.xml files.
Configure HDS and HLS settings in httpd.conf. For more information on server-side configuration in the httpd.conf
file, see Configure live and on-demand HTTP Streaming at the server level (httpd.conf). Configure the
bestEffortFetchInfo
element in the manifest.xml file, as described in Manifest.xml.
Note:
Best-effort fetch relies on configuring the back-end reverse-proxy with HTTP 503 failover, meaning that when the
reverse proxy receives a 503 response from a packager, it retries the request with the next packager in the pool. If all
packagers generate a 503, the proxy generates an error that it caches for less than a fragment interval. You can configure
the HTTP error code, as described in Configure live and on-demand HTTP Streaming at the server level (httpd.conf).
Code the control plane application
To implement HTTP Streaming failover, you write a client application that manages the state of events and streams
by using a set of REST-based control plane APIs. Control plane is a router term and in effect, that is what your client
application does through these APIs.
The basic workflow is as follows:
•
Begin repeatedly checking stream status at a set interval. The exact interval depends on your configuration.
•
Disable any stream with a bad status code.
•
You could also compare the age of the bootstrap file and disable the stream for which the bootstrap is older than
some predetermined interval.
FMS control plane REST interface request path
The FMS control plane REST interface request path differs, depending on whether you are using HDS, HLS with
adaptive bit-rate (ABR), or HLS with a single bit-rate stream:
•
HDS:
http://
server
/ctrlplane/
application-name
/
instance-name
/
event-name
.f4m/
•
HLS with ABR:
http://
server
/ctrlplane/
application-name
/
instance-name
/
event-name
.m3u8/
•
HLS with single bit-rate:
http://
server
/ctrlplane/
application-name
/
instance-name
/
event-
name
/
stream-name
.m3u8/
For example:
•
HDS:
http://www.example-server.com/ctrlplane/livepkgr/_definst_/liveevent.f4m/
•
HLS with ABR:
http://www.example-server.com/ctrlplane/livepkgr/_definst_/liveevent.m3u8/
•
HLS with single bit-rate:
http://www.example-
server.com/ctrlplane/livepkgr/_definst_/liveevent/livestream.m3u8/