Configure live and on-demand HTTP Streaming at the server level (httpd.conf)

Apache HTTP Server that installs with Adobe 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 Adobe Media Server Apache installation includes four 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 offline by the File Packager tool

f4fhttp_module

<Location /vod>

On-demand Adobe HTTP Dynamic Streaming packaged in real-time

jithttp_module

<Location /hds-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 location 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 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".

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.

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.

HttpStreamingEnabled

f4fhttp_module

Yes

Setting HttpStreamingEnabled to true enables the Origin module to process requests matching the Location directive. Possible values are true and false.

HttpStreamingFragMaxAge

f4fhttp_module jithttp_module

No

The time to live for fragment files, in seconds. The default value is -1 which is unlimited.

HttpStreamingDrmmetaMaxAge

f4fhttp_module

No

The time to live for DRM MetaData, in seconds. The default value is 3600 (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 hlshttp_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 hlshttp_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.

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 Adobe Media Server installation.

JitGenerateCaptionInfo

jithttp_module

No

You can configure closed captioning at the server level by providing true as a value for this element.

cc-info-enabled

jithttp_module

No

You can configure closed captioning at the server level by providing true as a value for this element.

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.

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

PHDSSWFMaxTimeToVerify

jithttp_module, f4fhttp_module

No

Specifies the maximum time for SWF verification for PHDS. The default value is 100s.

ProtectionScheme

jithttp_module, f4fhttp_module

No

The type of protection to apply to content. Possible values are phds and FlashAccessV2.

For more HDS directives that can be used for content protection, see Configuring content protection for HDS.

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 Adobe Media Server installation. The default value is "..".

This value can be absolute or relative to the Apache root folder. See Content storage (HDS and HLS).

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.

In the case of HLS-VOD, HLSMediaFileDuration can be in between 500 ms to 30000ms. These bound values can be modified using the following directives:

  • HLSMaxMediaFileDuration

  • HLSMinMediaFileDuration

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 marking it as stale. If the bootstrap age is greater than this value, the stream is considered to be down.

The default is 300.

HLSAddPadPacketsForCont

No

Specifies whether or not to allow adding padding TS packets to maintain continuity across media files.

HLSAllowExtractAudioOnly

No

Specifies whether or not to allow audio-only extraction from audio-video sources.

HLSEncryptKeyURIPrefix

No

A text string prefixed to the event ID to generate the encryption key.

HLSEncryptKeyURISuffix

No

A string suffixed to the event ID to generate the encryption key.

HLSFAXSUseUniqueContentID

No

Set the value to true to use a unique content ID.

HLSKeyframeIntervalsPerMediaFile

No

Specifies the total number of keyframes per HLS media file in the VOD content.

HLSHttpUnavailableMaxAge

No

Specifies the maximum duration (in seconds) to set the Cache-Control header for unavailable fragment responses.

HttpStreamingFrameRate

No

Specifies the frame rate in the VOD content.

HttpStreamingFramesPerKeyframeInterval

No

Specifies the number of frames per KFI in the VOD content.

For more HLS directives that can be used for content protection, see Configuring content protection for HLS.

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\Adobe Media Server 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\Adobe Media Server 5\applications"or "..\applications.”

MaxBootstrapAge

No

The maximum number of seconds the Control Plane module lets the bootstrap age before 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.

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

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

None

/HLS/Encryption/KeyFile

The path of the default cipher key used to encrypt the content.

None

/HLS/Encryption/KeyURI

The URI that the client uses to fetch the decryption key.

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 Limit the duration of content on the server.

3

/Recording/FragmentDuration

The length of each fragment, in milliseconds. Each segment can contain one or more fragments. See Configure F4F and TS 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 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 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 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 duration.

1

/Recording/SegmentDuration

The length of each segment, in milliseconds. Each .f4f file contains one segment.

See Configure F4F and TS duration.

400000

Configurations for content protection

Use the ContentProtection and ProtectionScheme elements to enable content protection with Protected HTTP Dynamic Streaming or Adobe Access.

Element

Description

Default

/ContentProtection

Whether to enable content for protection with Protected HTTP Dynamic Streaming or Adobe 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.

Configurations for Adobe Access

Use the elements in the FlashAccessV2 container to configure content protection with Adobe 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 Adobe Access protection.

Manifest.xml

Adobe Media Server 5 introduces set-level manifest files that replace Manifest.xml files. However, Adobe Media Server 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, AMS 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". AMS 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". AMS 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. AMS 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 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 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 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 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 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 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 duration.

None

Configurations for content protection

Use the ContentProtection and ProtectionScheme elements to enable content protection with Protected HTTP Dynamic Streaming or Adobe Access.

Element

Description

Default

//manifest/hds:content-protection

Whether to enable content for protection with Protected HTTP Dynamic Streaming or Adobe 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.

Configurations for protected HTTP Live Streaming (PHLS)

Use the elements in the <hds:hls> container to configure content protection with PHLS.

Configurations for Adobe Access

Use the elements in the <hds:FlashAccessV2> container to configure content protection with Adobe Access.

For more information, see Encrypt content for Adobe Access protection.

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License  Twitter™ and Facebook posts are not covered under the terms of Creative Commons.

Legal Notices   |   Online Privacy Policy