Streaming type
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:
|
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 |
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). |
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). |
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:
|
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. |
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.
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.
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. |
None |
/HLS/MediaFileDuration |
The duration of the TS file to be served, in milliseconds. This number must be a multiple of the FragmentDuration. |
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. |
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. |
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. |
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. |
Manifest.xml files support F4M v1.0 only (if not using best-effort fetch).
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. |
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) . |
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. |
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. |
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. |
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. |
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.