HTTP streaming configuration file reference

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 modules

Use 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 Streaming

Use 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 Streaming

Use 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 failover

Use 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 streaming

You 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.xml

Root 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.xml

Flash 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 streaming

You 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.