Task Preset for Azure Media Packager
Note
The end of life date for Windows Azure Media Packager and Windows Azure Media Encryptor has been extended to March 1, 2017. Before that date, the functionalities of these processors will be added to Media Encoder Standard (MES). Customers will be provided with instructions on how to migrate their workflows to send Jobs to MES. Format conversion and encryption capabilities may also be available through dynamic packaging and dynamic encryption.
This topic contains templated XML configuration files for running Microsoft Azure Media Services tasks using the Windows Azure Media Packager media processor. These configuration files could be referenced as a configuration preset when performing one of the following tasks:
Convert MP4 Content to Smooth Streams,
Convert Smooth Streams to Apple HTTP Live Streams,
Validate an Asset that Contains Multi-bitrate Smooth Streaming or MP4 Files.
Azure Media Packager Preset
Convert MP4 Content to Smooth Streams
The following configuration xml converts MP4 files encoded with H.264 (AVC) video and AAC-LC audio codecs to Smooth Streams. Copy the following xml into a file and name the file MediaPackager_MP4ToSmooth.xml.
You can reference this file as a configuration preset when you convert MP4 content to smooth streaming content.
<taskDefinition xmlns="https://schemas.microsoft.com/iis/media/v4/TM/TaskDefinition#">
<name>MP4 to Smooth Streams</name>
<id>5e1e1a1c-bba6-11df-8991-0019d1916af0</id>
<description xml:lang="en" />
<inputFolder />
<properties namespace="https://schemas.microsoft.com/iis/media/V4/TM/MP4ToSmooth#" prefix="mp4">
<property name="keepSourceNames" value="false" />
</properties>
<taskCode>
<type>Microsoft.Web.Media.TransformManager.MP4toSmooth.MP4toSmooth_Task, Microsoft.Web.Media.TransformManager.MP4toSmooth, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35</type>
</taskCode>
</taskDefinition>
The following table explains the properties of the MP4 to Smooth Streams xml:
Name |
Required |
Description |
---|---|---|
keepSourceNames |
false |
This property tells the MP4 to Smooth task to keep the original file name rather than add the bitrate information. |
The PackageMP4ToSmoothStreamingTask method defined in the this topic shows how to use the Azure Media Packager media processor to convert MP4s to Smooth Streaming.
Convert Smooth Streams to Apple HTTP Live Streams
Azure Media Services only supports converting from Smooth Streaming to HLS, you cannot encode to or convert from any other formats to HLS.
The following configuration xml converts Smooth Streams encoded with H.264 (AVC) video and AAC-LC audio codecs to Apple HTTP Live Streams (MPEG-2 TS) and creates an Apple HTTP Live Streaming playlist (.m3u8) file for the converted presentation.
Important
To convert to Apple HTTP Live Streaming, Smooth Streaming video tracks must contain only H.264 (AVC) video. VC-1 is not supported. Smooth Streaming audio tracks must contain only AAC-LC or HE-AAC audio codecs. Dolby DD+ is not supported for conversion to Apple HTTP Live Streams.
Copy the following xml into a file and name the file MediaPackager_SmoothToHLS.xml. You can reference this file as a configuration preset when you convert Smooth Streaming content to Apple HLS format.
<taskDefinition xmlns="https://schemas.microsoft.com/iis/media/v4/TM/TaskDefinition#">
<name>Smooth Streams to Apple HTTP Live Streams</name>
<id>A72D7A5D-3022-45f2-89B4-1DDC5457C111</id>
<description xml:lang="en" />
<inputFolder />
<outputFolder>TS_Out</outputFolder>
<properties namespace="https://schemas.microsoft.com/iis/media/AppleHTTP#" prefix="hls">
<property name="maxbitrate" value="6600000" />
<property name="manifest" value="" />
<property name="segment" value="10" />
<property name="log" value="" />
<property name="encrypt" value="false" />
<property name="pid" value="" />
<property name="codecs" value="false" />
<property name="backwardcompatible" value="false" />
<property name="allowcaching" value="true" />
<property name="key" value="" />
<property name="keyuri" value="" />
<property name="overwrite" value="true" />
</properties>
<taskCode>
<type>Microsoft.Web.Media.TransformManager.SmoothToHLS.SmoothToHLSTask, Microsoft.Web.Media.TransformManager.SmoothToHLS, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35</type>
</taskCode>
</taskDefinition>
Note
If you want for the HLS to get encrypted with AES make sure to set the encrypt property to true, set the key value, and the keyuri value for your authentication\authorization server.
Media Services will create a key file and place it in the asset container. You should copy the /asset-containerguid/*.key file to your server (or create your own key file) and then delete the *.key file from the asset container. For more information, see Using Static Encryption to Protect HLSv3 with AES-128.
The following table explains the properties of the Smooth Streams to Apple HTTP Live Streams xml:
Name |
Required |
Description |
---|---|---|
maxbitrate |
true |
The maximum bit rate, in bits per second (bps), to be converted to MPEG-2 TS. On-demand Smooth Streams at or below this value are converted to MPEG-2 TS segments. Smooth Streams above this value are not converted. Most Apple devices can play media encoded at bit rates up to 6,600 Kbps. |
manifest |
false |
The file name to use for the converted Apple HTTP Live Streaming playlist file (a file with an .m3u8 file name extension). If no value is specified, the following default value is used: <ISM_file_name>-m3u8-aapl.m3u8 |
segment |
false |
The duration of each MPEG-2 TS segment, in seconds. 10 seconds is the Apple-recommended setting for most Apple mobile digital devices. |
log |
false |
The file name to use for a log file (with a .log file name extension) that records the conversion activity. If you specify a log file name, the file is stored in the task output folder. |
encrypt |
false |
Enables encryption of MPEG-2 TS segments by using the Advanced Encryption Standard (AES) with a 128-bit key (AES-128). |
pid |
false |
The program ID of the MPEG-2 TS presentation. Different encodings of MPEG-2 TS streams in the same presentation use the same program ID so that clients can easily switch between bit rates. |
codecs |
false |
Enables codec format identifiers, as defined by RFC 4281, to be included in the Apple HTTP Live Streaming playlist (.m3u8) file. |
backwardcompatible |
false |
Enables playback of the MPEG-2 TS presentation on devices that use the Apple iOS 3.0 mobile operating system. |
allowcaching |
false |
Enables the MPEG-2 TS segments to be cached on Apple devices for later playback. |
key |
false |
The hexadecimal representation of the 16-octet content key value that is used for encryption. |
keyuri |
false |
An alternate URI to be used by clients for downloading the key file. If no value is specified, it is assumed that the Live Smooth Streaming publishing point provides the key file. |
overwrite |
false |
Enables existing files in the output folder to be overwritten if converted output files have identical file names. |
This topic shows how to use the Azure Media Packager media processor to convert Smooth Streaming to HLS.
Validate an Asset that Contains Multi-bitrate Smooth Streaming or MP4 Files
The following configuration xml prepares MP4 asset for dynamic packaging. Copy the following xml into a file and name the file MediaPackager_ValidateTask.xml.
You can reference this file as a configuration preset for a task that checks whether an asset that contains a set of existing adaptive bitrate files can be converted to Smooth Streaming or Apple HLS format. You would use this preset when working with dynamic packaging..
<taskDefinition xmlns="https://schemas.microsoft.com/iis/media/v4/TM/TaskDefinition#">
<name>MP4 Preprocessor</name>
<id>859515BF-9BA3-4BDD-A3B6-400CEF07F870</id>
<description xml:lang="en" />
<inputFolder />
<properties namespace="https://schemas.microsoft.com/iis/media/V4/TM/MP4Preprocessor#" prefix="mp4p">
<property name="SmoothRequired" value="true" />
<property name="HLSRequired" value="true" />
</properties>
<taskCode>
<type>Microsoft.Web.Media.TransformManager.MP4PreProcessor.MP4Preprocessor_Task, Microsoft.Web.Media.TransformManager.MP4Preprocessor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35</type>
</taskCode>
</taskDefinition>
The following table explains the properties of the MP4 Preprocessor xml:
Name |
Required |
Description |
---|---|---|
SmoothRequired |
false |
If the value property is set to true, the pre-processor task will check whether or not the specified content can be converted to Smooth Streaming format. If the content cannot be converted successfully, the pre-processor validation task will fail. This indicates that the On-Demand Streaming server will also fail to convert this content to Smooth Streaming. |
HLSRequired |
false |
If the value property is set to true, the pre-processor task will check whether or not the specified content can be converted to HLS format. If the content cannot be converted successfully, the pre-processor validation task will fail. This indicates that the On-Demand Streaming server will also fail to convert this content to HLS. |