|
Configure live and on-demand HTTP Streaming at the server level (httpd.conf)Apache HTTP Server that installs with Flash Media Server
is configured by default for Adobe HTTP Dynamic Streaming (to Flash
Player and AIR) and Apple HTTP Live Streaming (to iOS and Mac OS).
The Flash Media Server Apache installation includes three custom
modules that handle HTTP streaming.
The following table describes the types of streaming that each
modules handles, and where the module is configured in the httpd.conf
file:
Streaming type
|
Module
|
Location directive in httpd.conf
|
Live Adobe HTTP Dynamic Streaming
|
f4fhttp_module
|
<Location /hds-live>
|
On-demand Adobe HTTP Dynamic Streaming packaged in
real-time
|
jithttp_module
|
<Location /hds-vod>
|
On-demand Adobe HTTP Dynamic Streaming packaged offline
by the File Packager tool
|
f4fhttp_module
|
<Location /vod>
|
Live Apple HTTP Live Streaming
|
hlshttp_module
|
<Location /hls-live>
|
On-demand Apple HTTP Live Streaming
|
hlshttp_module
|
<Location /hls-vod>
|
HTTP Streaming failover
|
ctrlplane_module
|
<Location /ctrlplane>
|
Note: Despite the name, Apple HTTP Live Streaming supports live
and on-demand content.
The configuration of the modules determines the format of the
URL that the player requests from the server, the location of the
content, the content fragmentation settings, and additional settings.
Configure the settings at the server-level in the Apache httpd.conf
file:
rootinstall/Apache2.2/conf/httpd.conf
To see the default configurations, open the httpd.conf file.
Directives for all the HTTP streaming modulesUse the following directives to configure all the HTTP
streaming modules (jithttp_module, f4fhttp_module, and hlshttp_module):
Directive
|
Required
|
Description
|
HttpStreamingContentPath
|
Yes
|
The physical locaion of the content path.
For live streaming, the location of livepkgr/streams.
This
value can be absolute or relative to the Apache root folder. See Content storage (HDS and HLS).
|
HttpStreamingLiveEventPath
|
Yes
For live streaming only.
|
The location of the live event directory
(by default livepkgr/events). The default value is "../applications".
This
value can be absolute or relative to the Apache root folder. See Content storage (HDS and HLS).
HTTP streaming file operations
are routed through the File plug-in. You can optionally use a File
plug-in to manage content. For more information, see Use the File plug-in to manage content for live HTTP streaming.
|
HttpStreamingURLSandboxLevel
|
No
For live streaming only
|
Defines the scope at which HttpStreamingLiveEventPath is
configured. Possible values are "App", "Inst",
and "Server". The default value is "Server".
This
value can be absolute or relative to the Apache root folder. See Content storage (HDS and HLS).
|
Location
|
Yes
|
The section of the request URL after the
server name (and optional port number). This path tells Apache which
module to use to process the request.
This value can be absolute
or relative to the Apache root folder. See Content storage (HDS and HLS).
|
For more information, see Configure HTTP Streaming failover.
Directives for Adobe HTTP Dynamic StreamingUse the following directives to configure the Adobe HTTP
Dynamic Streaming modules (jithttp_module for on-demand and f4fhttp_module
for live):
Parameter
|
Module
|
Required
|
Description
|
EncryptionScope
|
jithttp_module, f4fhttp_module
|
No
|
The scope at which protected HTTP Dynamic
Streaming (PHDS) is configured. Possible values are:
server—The
server uses configuration settings in the httpd.conf file.
content—The
server uses configuration settings in the Event.xml or Application.xml
file (live), or in the jit.conf file (on-demand).
See Protected HTTP Dynamic Streaming (PHDS).
|
HttpStreamingBootstrapMaxAge
|
f4fhttp_module
|
No
|
The time to live for bootstrap files, in
seconds. The default value is 2.
See SWF verification configurations for live PHDS.
|
HttpStreamingEnabled
|
f4fhttp_module
|
Yes
|
Enables packaging. Possible values are true and false.
|
HttpStreamingFragMaxAge
|
f4fhttp_module
|
No
|
The time to live for fragment files, in
seconds. The default value is -1 which is unlimited.
See SWF verification configurations for live PHDS.
|
HttpStreamingDrmmetaMaxAge
|
f4fhttp_module
|
No
|
The time to live for DRM MetaData, in seconds.
The default value is 1 hour.
|
HttpStreamingFragmentDuration
|
jithttp_module
|
No
|
The length of an F4F file, in milliseconds. The
default value is 4000. See Configure F4M and TS duration.
|
HttpStreamingFrameRate
|
jithttp_module
|
No
|
For frame-based fragment duration configuration,
this is the frame rate of the source content. This value is overridden
if a jit.conf file is provided. See Configure F4M and TS duration.
|
HttpStreamingFramesPerKeyframeInterval
|
jithttp_module
|
No
|
For frame-based fragment duration configuration,
this is the number of frames in each keyframe interval (group of
pictures). This value is overridden if a jit.conf file is provided.
See Configure F4M and TS duration.
|
HttpStreamingF4MMaxAge
|
f4fhttp_module
|
No
|
The time to live for F4M files, in seconds. The
default value is 2.
See SWF verification configurations for live PHDS.
|
HttpStreamingJITConfAllowed
|
jithttp_module
|
No
|
Indicates whether jit.conf processing is allowed.
The default is true. Setting this to false means
that jit.conf will not be processed, even if present, and the server will
not even attempt to load a jit.conf file.
|
HttpStreamingJITPEnabled
|
jithttp_module
|
Yes
|
Indicates whether just-in-time packaging
is enabled (true) or not (false).
|
HttpStreamingKeyframeIntervalsPerFragment
|
jithttp_module
|
No
|
For frame-based fragment duration configuration,
this is the number of keyframe intervals (GOPs) per fragment. The
default value is 1.
This value is overridden if a jit.conf
file is provided. See Configure F4M and TS duration.
|
HttpStreamingMaxFragmentDuration
|
jithttp_module, f4fhttp_module
|
No
|
This is the maximum allowed size of a fragment
(in milliseconds). Set this directive to a value that prevents
user-supplied overrides from creating large fragments that can clog
the network.
|
HttpStreamingMinFragmentDuration
|
jithttp_module, f4fhttp_module
|
No
|
This is the minimum allowed size of a fragment
(in milliseconds).Set this directive to a value that prevents user-supplied
overrides from creating many small fragments. When media is packaged
into too many fragments, the client has to make too many requests.
|
JitFmsDirPath
|
jithttp_module
|
Yes
|
The location of the Flash Media Server installation.
|
PHDSSWFVerification
|
jithttp_module, f4fhttp_module
|
No
|
Enables SWF verification for PHDS (true) or
not (false).
If EncryptionScope is
set to content, this value can be set in the jit.conf
file. See SWF verification for Protected HTTP Dynamic Streaming.
|
PHDSSWFWhiteListFolder
|
jithttp_module, f4fhttp_module
|
No
|
A path to the folder containing the whitelist
for on-demand SWF verification. The folder can contain more than
one whitelist file.
The default value is the content folder (which
contains both media and the jit.conf file ).
If EncryptionScope is
set to content, this value can be set in the jit.conf
file. See SWF verification for Protected HTTP Dynamic Streaming.
|
ProtectionScheme
|
jithttp_module, f4fhttp_module
|
No
|
The type of protection to apply to content. Possible
values are phds and FlashAccessV2.
See Configure protected HTTP Dynamic Streaming (PHDS) and Encrypt content for Flash Access protection.
|
Directives for Apple HTTP Live StreamingUse the following directives to configure the Apple HTTP
Live Streaming module for live and on-demand streaming (hlshttp_module):
Directive
|
Required
|
Description
|
HLSEncryptCipherKeyFile
|
No
|
The path of the default cipher key used
to encrypt the content for PHLS.
|
HLSEncryptionScope
|
No
|
The scope at which protected HTTP Live Streaming
(PHLS) is configured. Possible values are:
server—The
server uses configuration settings in the httpd.conf file.
content—The
server uses configuration settings in the Event.xml or Application.xml
file (live), or in the jit.conf file (on-demand).
See Protected HTTP Live Streaming (PHLS).
|
HLSEncryptKeyURI
|
No
|
The URI that the client uses to fetch the
encryption key for PHLS.
|
HLSFmsDirPath
|
Yes
|
The location of the Flash Media Server installation.
The default value is "..".
|
HLSHttpStreamingEnabled
|
Yes
|
Indicates whether or not HLS is enabled
(true) or not (false). The default
value is false.
|
HLSJITConfAllowed
|
No
|
Indicates whether jit.conf processing is
allowed. The default is true. Setting this to false means
that jit.conf will not be processed, even if present, and the server
will not even attempt to load a jit.conf file.
|
HLSMediaFileDuration
|
No
|
The duration of the TS file to be served,
in milliseconds. This number must be a multiple of the fragment
duration specified in Flash Media Live Encoder. The default value
is 8000. See Configure F4M and TS duration.
|
HLSM3U8MaxAge
|
No
|
Specifies the max-age to set in the cache-control
header for M3U8 responses, in seconds. The default value for HLS
Live is 2. The default value for HLS on-demand is 86400 (1 day).
The value -1 does not set a cache-control header.
|
HLSSlidingWindowLength
|
No
|
The number of TS files in a playlist and
available for seeking within a sliding window. The time within the
window is the value of HLSSlidingWindowLength * HLSMediaFileDuration. HTTP
Live Streaming clients use the sliding window to configure the seek
bar. The default value is 6.
See Configure a sliding window (HLS).
|
HLSTSSegmentMaxAge
|
No
|
Specifes the max-age to set in the cache-control
header for TS segment responses, in seconds. The default value for
HLS Live is -1 which doesn’t set a cache-control header. The default
value for HLS on-demand is 86400 (1 day).
|
HttpStreamingUnavailableResponseCode
|
No
|
The HTTP response code that FMS returns
for unavailable fragments (end-of-program, gaps, etc.)
The
default is 503.
|
HLSMaxEventAge
|
No
|
The maximum number of seconds FMS allows
the bootstrap to age before automatically marking it as stale. If
the bootstrap age is greater than this value, the stream is considered
to be down.
The default is 300. It’s best to set this value
and the ctrlplane_module MaxBootstrapAge directive
to the same value.
|
Directives for HTTP Streaming failoverUse the following directives to configure HTTP Streaming
failover (ctrlplane_module):
Directive
|
Required
|
Description
|
HdsHttpStreamingLiveEventPath
|
Yes
|
The physical location of the root of the
event path for HDS. This can be relative to the Apache installation
root.
For example, “C:\Program Files\Adobe\Flash Media Server 4.5\applications"or
"..\applications.”
|
HlsHttpStreamingLiveEventPath
|
Yes
|
The physical location of the root of the
event path for HLS. This can be relative to the Apache installation
root.
For example, “C:\Program Files\Adobe\Flash Media Server 4.5\applications"or
"..\applications.”
|
MaxBootstrapAge
|
No
|
The maximum number of seconds the Control
Plane module lets the bootstrap age before automatically marking
it as stale. If the bootstrap age is greater than this value, the
stream is considered to be down and the Control Plane module sets
the up status to false.
The default is 300.
It’s best to set this value and the hlshttp_module HLSMaxEventAge directive
to the same value.
|
HttpStreamingURLSandboxLevel
|
No
|
The Level at which HttpStreamingLiveEventPath sandboxes
the access. You should set this to match corresponding settings
in HDS and HLS configurations. Valid values include App, Application,
Inst, Instance, and Server. The default is Server.
For example,
if HdsHttpStreamingLiveEventPath is set to ../applications/livepkgr/events/_definst_,
set HttpStreamingURLSandboxLevel to Inst. if HdsHttpStreamingLiveEventPath is
set to ../applications/livepkgr/, set HttpStreamingURLSandboxLevel to
App.
For information on similar HDS and HLS settings, see Configure live and on-demand HTTP Streaming at the server level (httpd.conf)
|
Configure live HTTP streamingYou can configure live HTTP Dynamic Streaming and live
HTTP Live Streaming at the following levels:
Level
|
Configuration file
|
Server
|
rootinstall/Apache2.2/conf/httpd.conf
|
Application
|
rootinstall/applications/livepkgr/Application.xml
|
Event
|
rootinstall/applications/livepkgr/events/_definst_/liveevent/Event.xml
|
Configure live HTTP streaming at the application level (Application.xml)To configure HTTP streaming for all live events in an application,
use the Application.xml file. The Application.xml file overrides
settings in the httpd.conf file for a single application.
Place the Application.xml file in the application folder. For
example, rootinstall/applications/livepkgr/Application.xml.
Note: Configuring HTTP streaming in the Application.xml file at
the vhost level is not supported.
The following is an Application.xml file with all possible configuration
elements for HTTP streaming:
<Application>
<StreamManager>
<Live>
<AssumeAbsoluteTime></AssumeAbsoluteTime>
</Live>
</StreamManager>
<HDS>
<HLS>
<KeyframeIntervalPerMediaFile></KeyframeIntervalPerMediaFile>
<MediaFileDuration></MediaFileDuration>
<SlidingWindowLength></SlidingWindowLength>
<Encryption enabled="true">
<KeyFile></KeyFile>
<KeyURI></KeyURI>
</Encryption>
</HLS>
<Recording>
<FragmentDuration></FragmentDuration>
<SegmentDuration></SegmentDuration>
<FrameRate></FrameRate>
<FramesPerKeyframeInterval></FramesPerKeyframeInterval>
<KeyframeIntervalsPerFragment></KeyframeIntervalPerFragment>
<FramePrecision></FramePrecision>
<DiskManagementDuration></DiskManagementDuration>
<ContentProtection enabled="true">
<ProtectionScheme></ProtectionScheme>
<PHDS>
<CommonKeyFile></CommonKeyFile>
<VideoEncryptionLevel></VideoEncryptionLevel>
<UpdateInterval></UpdateInterval>
<SWFVerification enabled="true">
<WhiteListFolder></WhiteListFolder>
<UpdateInterval></UpdateInterval>
</SWFVerfication>
</PHDS>
<FlashAccessV2>
<ContentID></ContentID>
<CommonKeyFile></CommonKeyFile>
<LicenseServerURL></LicenseServerURL>
<TransportCertFile></TransportCertFile>
<LicenseServerCertFile></LicenseServerCertFile>
<PackagerCredentialFile></PackagerCredentialFile>
<PackagerCredentialPassword></PackagerCredentialPassword>
<PolicyFile></PolicyFile>
</FlashAccessV2>
</ContentProtection>
</Recording>
</HDS>
</Application>
For information about each element, see Application.xml and Event.xml.
Configure live HTTP streaming at the event level (Event.xml)To configure a single event, use an Event.xml file. Copy
the Event.xml file to a live event folder. The default live event
is rootinstall/applications/livepkgr/events/_definst_/liveevent.
The Event.xml file overrides the Application.xml file and the Apache
httpd.conf file for a single live event. Every live event folder
must have a single Event.xml file.
Note: There are a few exceptions in which the Event.xml configuration
does not override the Application.xml configuration. These exceptions
are noted with the configuration parameter.
The following is an Event.xml file with all possible configuration
elements for HTTP streaming:
<Event>
<EventID></EventID>
<HLS>
<KeyframeIntervalPerMediaFile></KeyframeIntervalPerMediaFile>
<MediaFileDuration></MediaFileDuration>
<SlidingWindowLength></SlidingWindowLength>
<Encryption enabled="true">
<KeyFile></KeyFile>
<KeyURI></KeyURI>
</Encryption>
</HLS>
<Recording>
<FragmentDuration></FragmentDuration>
<SegmentDuration></SegmentDuration>
<FrameRate></FrameRate>
<FramesPerKeyframeInterval></FramesPerKeyframeInterval>
<KeyframeIntervalsPerFragment></KeyframeIntervalPerFragment>
<FramePrecision></FramePrecision>
<DiskManagementDuration></DiskManagementDuration>
<ContentProtection enabled="true">
<ProtectionScheme></ProtectionScheme>
<PHDS>
<CommonKeyFile></CommonKeyFile>
<VideoEncryptionLevel></VideoEncryptionLevel>
<PlaybackExpiration></PlaybackExpiration>
<UpdateInterval></UpdateInterval>
<SWFVerification enabled="true">
<WhiteListFolder></WhiteListFolder>
<UpdateInterval></UpdateInterval>
</SWFVerfication>
</PHDS>
<FlashAccessV2>
<ContentID></ContentID>
<CommonKeyFile></CommonKeyFile>
<LicenseServerURL></LicenseServerURL>
<TransportCertFile></TransportCertFile>
<LicenseServerCertFile></LicenseServerCertFile>
<PackagerCredentialFile></PackagerCredentialFile>
<PackagerCredentialPassword></PackagerCredentialPassword>
<PolicyFile></PolicyFile>
</FlashAccessV2>
</ContentProtection>
</Recording>
</Event>
Application.xml and Event.xmlRoot elements
Element
|
Description
|
Default
|
//Application
|
The root element for an Application.xml
configuration file.
|
N/A
|
//Event
|
The root element for an Event.xml configuration
file.
|
N/A
|
//Event/EventID
|
The name of a live event. This name is the
same as the name of the event folder and the value of the Server-Side ActionScript Stream.liveEvent property.
|
liveevent
|
Configurations for HTTP Live Streaming
Use the elements in the <HLS> container
to configure HTTP Live Streaming. In the Application.xml file, the
elements are located at //Application/HDS/HLS.
In the Event.xml file, the elements are located at //Event/HLS.
Element
|
Description
|
Default
|
/HLS/KeyframeIntervalPerMediaFile
|
Sets frame-based file duration.
See Configure F4F and TS fragment duration.
|
None
|
/HLS/MediaFileDuration
|
The duration of the TS file to be served,
in milliseconds. This number must be a multiple of the FragmentDuration.
See Configure F4F and TS fragment duration.
|
None
|
/HLS/SlidingWindowLength
|
The seekable portion of the stream for Apple
HTTP Live Streaming. The time within the window is the value of SlidingWindowLength * MediaFileDuration.
HTTP Live Streaming clients use the sliding window to configure
the seek bar.
The sliding window is relative to the current
position of the live stream.
See Configure a sliding window (HLS).
|
6
|
/HLS/Encryption
|
Set the enabled attribute
to "allow" to allow PHLS configurations
in the Event.xml file to override settings in the Application.xml
file.
Set the enabled attribute to "true" to
configure PHLS in the Application.xml file. These
configurations apply to all live events in the application.
See Configure protected HTTP Live Streaming (PHLS).
|
None
|
/HLS/Encryption/KeyFile
|
The path of the default cipher key used
to encrypt the content.
See Configure protected HTTP Live Streaming (PHLS).
|
None
|
/HLS/Encryption/KeyURI
|
The URI that the client uses to fetch the
decryption key.
See Configure protected HTTP Live Streaming (PHLS).
|
None
|
Configurations for recording
Use the elements in the <Recording> container
to configure how the server writes files to disk. In the Application.xml
file, the elements are located at //Application/HDS/Recording.
In the Event.xml file, the elements are located at //Event/Recording.
Element
|
Description
|
Default
|
/Recording
|
The section that configures how the file
is written to disk.
|
None
|
/Recording/DiskManagementDuration
|
The maximum duration of live content on
disk, in hours. Use a fractional value to specify minutes. When
this value is set in Application.xml, it cannot be overridden in Event.xml.
See Disk management.
|
3
|
/Recording/FragmentDuration
|
The length of each fragment, in milliseconds.
Each segment can contain one or more fragments. See Configure F4F and TS fragment duration.
|
4000
|
/Recording/FramePrecision
|
The rounding precision for the fragment
run table, in frame units. Frame units are derived from the specified frame
rate (1/rate). See Configure F4F and TS fragment duration.
|
1
|
/Recording/FrameRate
|
The frame rate of the original content,
in frames per second (fps). The value is floating point; for NTSC,
use the value 29.97. See Configure F4F and TS fragment duration.
|
None
|
/Recording/FramesPerKeyframeInterval
|
The number of frames between each keyframe.
For example, 30 fps video with a keyframe every 2 seconds contains 60
frames per keyframe interval. See Configure F4F and TS fragment duration.
|
None
|
/Recording/IOBufferSize
|
The size of the IO buffer for the recording,
in bytes. The IO buffer loads the disk file into a buffer in memory.
It reads and writes to the buffer in the memory instead of making system
calls. See Configure the size of the IO buffer.
|
4096
|
/Recording/KeyframeIntervalsPerFragment
|
The number of keyframe intervals per fragment.
The default value is 1, which means that the fragment size is the
same as the keyframe interval. See Configure F4F and TS fragment duration.
|
1
|
/Recording/SegmentDuration
|
The length of each segment, in milliseconds.
Each .f4f file contains one segment.
See Configure F4F and TS fragment duration.
|
400000
|
Configurations for content protection
Use the ContentProtection and ProtectionScheme elements
to enable content protection with Protected HTTP Dynamic Streaming
or Flash Access.
Element
|
Description
|
Default
|
/ContentProtection
|
Whether to enable content for protection
with Protected HTTP Dynamic Streaming or Flash Access. To enable
content protection, set the enabled attribute to true.
|
None
|
/ContentProtection/ProtectionScheme
|
The type of protection. Possible values
are phds and FlashAccessV2.
|
None
|
Configurations for Protected HTTP Dynamic Streaming (PHDS)
Use the elements in the PHDS container to configure
Protected HTTP Dynamic Streaming. In the Application.xml file, the
elements are located at //Application/HDS/Recording/ContentProtection/PHDS.
In the Event.xml file, the elements are located at //Event/Recording/ContentProtection/PHDS.
For information about the elements in the PHDS container,
see Configure protected HTTP Dynamic Streaming (PHDS).
Configurations for Flash Access
Use the elements in the FlashAccessV2 container
to configure content protection with Flash Access. In the Application.xml
file, the elements are located at //Application/HDS/Recording/ContentProtection/FlashAccessV2.
In the Event.xml file, the elements are located at //Event/Recording/ContentProtection/FlashAccessV2.
For information about the elements in the FlashAccessV2 container,
see Encrypt content for Flash Access protection.
Manifest.xmlFlash Media Server 4.5 introduces set-level manifest files that
replace Manifest.xml files. However, Flash Media Server 4.5 supports
Manifest.xml files and, in some cases, you may want to use them.
For example, Flash Media Playback does not support set-level
manifest files. To use Flash Media Playback for DVR or multi-bitrate
streaming, configure a Manifest.xml file.
The following is the default Manifest.xml file with an added <dvrInfo> element:
<manifest xmlns="http://ns.adobe.com/f4m/1.0">
<dvrInfo beginOffset="0"></dvrInfo>
<media streamId="livestream1" bitrate="100">
</media>
<media streamId="livestream2" bitrate="200">
</media>
<media streamId="livestream3" bitrate="350">
</media>
</manifest>
Element
|
Attribute
|
Description
|
dvrInfo
|
|
|
| |
beginOffset
|
An offset, in seconds, from the beginning of
the recorded stream. Clients can begin viewing the stream at this
location. The default value is 0.
|
| |
endOffset
|
An offset, in seconds, before the current duration
of the recorded stream. Clients cannot view the stream before this
location. The default value is 0.
Negative values are treated
as 0. If neither endOffset nor beginOffset is
set, the start time is the beginning of the content.
|
media
|
|
Represents one stream.
|
| |
streamID
|
The name of the publishing stream.
|
| |
bitrate
|
The bitrate at which the stream was encoded.
|
bestEffortFetchInfo
|
|
Parent element for best effort fetchconfiguration.
If thiselement is present, FMS enables best effort fetch.
The bestEffortFetchInfo element
is expected to be a part of F4M 2.0. To specify your Manifest.xml
as F4M 2.0, you must change the xmlns attribute
to "http://ns.adobe.com/f4m/2.0". FMS currently honors this syntax.
However, since the official F4M specification 2.0 is not yet complete,
this element may change in future releases.
|
| |
maxForwardFetches
|
Maximum total number of forward fetches
that the OSMF player performs when it encounters a liveness or dropout error
that is encountered. If the forward fetches fail, the OSMF player
reverts to non-best-effort behavior.
The default is 2.
|
| |
maxBackwardFetches
|
Maximum number of consecutive failed backward
fetches that OSMF player performs before reverting to non-best-effort behavior.
A value of 0 indicates that no backward fetches will be performed.
The
default is 2.
|
| |
fragmentDuration
|
Corresponds to the fragment interval (in seconds)
that is currently in use on the packaging server. You can specify
up to 3 decimal points.
Ensure that this value matches the
configured FragmentInterval in your Event.xml file.
Differences of as little as a millisecond can result in incorrect
best effort fetch behavior.
This attribute is required.
|
| |
segmentDuration
|
Corresponds to the segment interval (in seconds)
that is currently in use on the packaging server. You can specify
up to 3 decimal points.
Ensure that this value matches the
configured SegmentInterval in your Event.xml file.
Differences of as little as a millisecond can result in incorrect
best effort fetch behavior.
This attribute is required.
For
more on fragmentDuration and segmentDuration,
see Configure live HTTP streaming.
|
Note: Manifest.xml files support F4M v1.0 only (if not using best-effort
fetch).
Note: The bestEffortFetchInfo element is expected
to be a part of F4M 2.0. To use best-effort fetch, specify your
Manifest.xml as F4M 2.0 by changing the xmlns attribute to "http://ns.adobe.com/f4m/2.0".
FMS currently honors this syntax. However, since the official F4M
specification 2.0 is not yet complete, this element may change in
future releases.
Specify the bestEffortFetchInfo element in the
set-level manifest. FMS ignores bestEffortFetchInfo elements
specified in the stream-level manifest.
Configure on-demand HTTP streamingYou can configure on-demand HTTP Dynamic Streaming and
HTTP Live Streaming at the following levels:
Level
|
Configuration file
|
Server
|
rootinstall/Apache2.2/conf/httpd.conf
|
Stream
|
jit.conf
|
Configure on-demand HTTP streaming at the stream level (jit.conf)Configure stream-level configuration live in a jit.conf
file. Create a jit.conf file and copy it to the same directory as
the on-demand stream or streams. A directory can contain only 1
jit.conf file. The settings in the file apply to all content in
the directory.
The following is a jit.conf file with all possible configurations:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns="http://ns.adobe.com/f4m/1.0" xmlns:hds="http://ns.adobe.com/hds-package/1.0">
<hds:frame-rate></hds:frame-rate>
<hds:frames-per-keyframe-interval></hds:frames-per-keyframe-interval>
<hds:fragment-duration></hds:fragment-duration>
<hds:keyframe-intervals-per-fragment><hds:keyframe-intervals-per-fragment>
<hds:hls>
<hds:keyframe-intervals-per-media-file></hds:keyframe-intervals-per-media-file>
<hds:media-file-duration></hds:media-file-duration>
<hds:encryption enabled="true">
<hds:keyfile></hds:keyfile>
<hds:keyuri></hds:keyuri>
</hds:encryption>
</hds:hls>
<hds:content-protection enabled="true">
<hds:protection-scheme>phds</hds:protection-scheme>
<hds:phds>
<hds:common-key-file></hds:common-key-file>
<hds:video-encryption-level></hds:video-encryption-level>
<hds:playback-expiration></hds:playback-expiration>
</hds:phds>
<hds:FlashAccessV2>
<hds:content-id></hds:content-id>
<hds:common-key-file></hds:common-key-file>
<hds:license-server-url></hds:license-server-url>
<hds:transport-cert-file></hds:transport-cert-file>
<hds:license-server-cert-file></hds:license-server-cert-file>
<hds:packager-credential-file></hds:packager-credential-file>
<hds:packager-credential-password></hds:packager-credential-password>
<hds:policy-file></hds:policy-file>
</hds:FlashAccessV2>
</hds:content-protection>
</manifest>
Configurations for recording to disk
For more information about elements in this table, see Configure F4F and TS fragment duration.
Element
|
Description
|
Default
|
//manifest/hds:fragment-duration
|
Use this element to configure fragment duration by
time.
The fragment duration for the set of content, in seconds.
The value can be fractional (for example, to specify 2002 milliseconds,
use the value 2.002).
If this value is not specified, the
value is taken from the module configurations in httpd.conf.
See Configure F4F and TS fragment duration.
|
None
|
//manifest/hds:frame-rate
|
Use this element to configure fragment duration by
frame rate.
The frame rate that determines the fragment duration
for the set of content. Units are frames/second, and can be fractional
(i.e. 29.97 for NTSC) .
See Configure F4F and TS fragment duration.
|
None
|
//manifest/hds:frames-per-keyframe-interval
|
Use this element to configure fragment duration by
frame rate.
The number of frames per keyframe interval (GOP). Units
are frames, and should be a whole integer value.
See Configure F4F and TS fragment duration.
|
None
|
//manifest/hds:keyframe-intervals-per-fragment
|
Use this element to configure fragment duration by
frame rate.
The number of keyframe intervals per fragment. Units
are keyframe intervals per fragment, and should be a whole integer
value.
See Configure F4F and TS fragment duration.
|
1
|
//manifest/hds:hls
|
Container for Apple HTTP Live Streaming
configurations.
|
N/A
|
//manifest/hds:hls/hds:keyframe-intervals-per-media-file
|
Use this element to configure a frame-based
file duration.
The number of keyframe intervals per TS file
duration. The value must be a whole integer.
See Configure F4F and TS fragment duration.
|
None
|
//manifest/hds:hls/hds:media-file-duration
|
Use this element to configure a time-based
file duration.
The TS file duration, in milliseconds, for
the set of content associated with this file. Use a value that is a
multiple of the fragment duration.
See Configure F4F and TS fragment duration.
|
None
|
Configurations for content protection
Use the ContentProtection and ProtectionScheme elements
to enable content protection with Protected HTTP Dynamic Streaming
or Flash Access.
Element
|
Description
|
Default
|
//manifest/hds:content-protection
|
Whether to enable content for protection
with Protected HTTP Dynamic Streaming or Flash Access. To enable
content protection, set the enabled attribute to "true".
|
None
|
//manifest/hds:content-protection/hds:protection-scheme
|
The type of protection. Possible values
are phds and FlashAccessV2.
|
None
|
Configurations for protected HTTP Dynamic Streaming (PHDS)
Use the elements in the <hds:phds> container
to configure content protection with PHLS.
For more information, see Configure protected HTTP Dynamic Streaming (PHDS).
Configurations for protected HTTP Live Streaming (PHLS)
Use the elements in the <hds:hls> container
to configure content protection with PHLS.
For more information, see Configure protected HTTP Live Streaming (PHLS).
Configurations for Flash Access
Use the elements in the <hds:FlashAccessV2> container
to configure content protection with Flash Access.
For more information, see Encrypt content for Flash Access protection.
|
|
|