Recent API Changes

See what has recently been added

25 July 2017 - Output params in Upload notifications

Set <notify_upload_extended /> param to 'yes' to include output params to notification callback

Note: This feature doesn't work with multibitrate output formats
<?xml version="1.0"?>
<query>
    <!-- Main fields -->
    <userid>[UserID]</userid>
    <userkey>[UserKey]</userkey>
    <action>[Action]</action>
    <source>[SourceFile]</source>
    <notify_format>[xml|json]</notify_format>
    <notify_upload>[NotifyUploadURL]</notify_upload>
    <notify_upload_extended>[yes|no]</notify_upload_extended>
    <format>
        <!-- Format fields -->
    </format> 
</query>

Callback Format for notify_upload

<?xml version="1.0"?>
<result>
    <mediaid>[MediaID]</mediaid>
    <taskid>[TaskID]</taskid>
    <destination>[DestinationLink]</destination>
    <status>[DestinationStatus]</status>
    <!-- <output_params /> section will be included if you set <notify_upload_extended /> param to 'yes' -->
    <output_params>
        <format>[FormatName]</format>,
        <bitrate>[Bitrate]</bitrate>
        <duration>[Duration]</duration>
        <audio_bitrate>[AudioBitrate]</audio_bitrate>
        <audio_codec>[AudioCodec]</audio_codec>
        <audio_duration>[AudioDuration]</audio_duration>
        <audio_sample_rate>[SampleRate]</audio_sample_rate>
        <audio_channels>[AudioChannels]</audio_channels>
        <video_bitrate>[VideoBitrate]</video_bitrate>
        <video_codec>[CodecName]</video_codec>
        <video_duration>[VideoDuration]</video_duration>
        <size>[FrameSize]</size>
        <display_aspect_ratio>[AspectRatio]</display_aspect_ratio>
        <frame_rate>[VideoFrameRate]</frame_rate>
        <filesize>[FileSize]</filesize>
    </output_params>
</result>
Field Description
MediaID

A unique identifier of the media

TaskID

A unique identifier of the task

DestinationLink

A link to destination where task was uploaded

DestinationStatus

A status of task

Note: <output_params /> section will be included if you set <notify_upload_extended /> param to 'yes'
OutputParams

Output file parameters

  • format — output format name
  • bitrate — output file overall bitrate
  • duration — output file overall duration
  • audio_bitrate — output file audio bitrate
  • audio_codec — output file audio codec name
  • audio_duration — output file audio duration
  • audio_sample_rate — output file audio sample rate
  • audio_channels — output file audio channels
  • video_bitrate — output file video bitrate
  • video_codec — output file video codec name
  • video_duration — output file video duration
  • size — output file video frame size
  • display_aspect_ratio — output file video aspect ratio
  • frame_rate — output file video frame size
  • filesize — output file size in bytes

25 July 2017 - QC for mp4 output format

Added mp4 quality control tests.

Request Template

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <qc_notify>[QCNotifyURL]</qc_notify>
    <source>[SourceFile|SourcePlaylist]</source><!-- REQUIRED -->
    <format>
        <output>[p4|qc_check_only]</output><!-- REQUIRED -->
        <qc_format>[advanced_hls|mp4]</qc_format> <!-- required for qc_check_only output format -->
        <!-- Format fields -->
        <qc>
            <!-- Format Validation Tests -->
            <qc_test_name_1>
                <!-- Tests Params -->
                <severity>[fatal|warning]</severity>
            </qc_test_name_1>
            <qc_test_name_2>
                <!-- Tests Params -->
            </qc_test_name_2>
            <!-- Multiple Tests -->
            <qc_test_name_N>
                <!-- Tests Params -->
            </qc_test_name_N>
        </qc>
    </format>
</query>

Available tests

Test Name API Param Name Formats Available
General Validation Tests
Duration <qc_duration> advanced_hls, mp4
File size <qc_file_size> advanced_hls, mp4
Bitrate <qc_bitrate> advanced_hls, mp4
Bitrate mode <qc_bitrate_mode> advanced_hls, mp4
Closed Captions(608/708) are present and maintained <qc_captions_presented> advanced_hls, mp4
Video Validation Tests
Video format <qc_video_format> advanced_hls, mp4
Video Bitrate <qc_video_bitrate> advanced_hls, mp4
Frame rate <qc_frame_rate> advanced_hls, mp4
Video Duration <qc_video_duration> advanced_hls, mp4
Video codec profile <qc_video_codec_profile> advanced_hls, mp4
Video level <qc_video_level> advanced_hls, mp4
Frame size <qc_frame_size> advanced_hls, mp4
Aspect ratio <qc_aspect_ratio> advanced_hls, mp4
Video streams number <qc_video_streams_number> advanced_hls, mp4
Validate DTS <qc_validate_dts> advanced_hls, mp4
Validate PTS <qc_validate_pts> advanced_hls, mp4
Check B-Frames Present <qc_b_frames_present> advanced_hls, mp4
Check B-Frames DTS grow <qc_bframe_dts_grow> advanced_hls, mp4
IDR interval is maintained <qc_idr_interval> advanced_hls, mp4
Each segment starts with IDR <qc_segments_start_with_idr> advanced_hls, mp4
Audio Validation Tests
Audio Codec <qc_audio_codec> advanced_hls, mp4
Audio Bitrate <qc_audio_bitrate> advanced_hls, mp4
Audio Duration <qc_audio_duration> advanced_hls, mp4
Audio sample rate <qc_audio_sample_rate> advanced_hls, mp4
Audio channels <qc_audio_channels> advanced_hls, mp4
Audio channel layout <qc_audio_channel_layout> advanced_hls, mp4
Audio streams number <qc_audio_streams_number> advanced_hls, mp4
Audio bit depth <qc_audio_bit_depth> advanced_hls, mp4

Duration

Check file duration

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <format>
        <output>[advanced_hls|mp4|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_duration>
                <value>[TimeCode]</value>
                <severity>[fatal|warning]</severity>
            </qc_duration>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
File duration
Valid Timecode in format HH:mm:ss.SS
severity warning, fatal warning

File size

Check file size

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <format>
        <output>[advanced_hls|mp4|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_file_size>
                <value>[Size]</value>
                <severity>[fatal|warning]</severity>
            </qc_file_size>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
File size value
Size in bytes
severity warning, fatal warning

Bitrate

Check total file bitrate

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <format>
        <output>[advanced_hls|mp4|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_bitrate>
                <value>[Bitrate]</value>
                <allowed_deviation>[Percent]</allowed_deviation>
                <severity>[fatal|warning]</severity>
            </qc_bitrate>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
Bitrate
Positive integer
allowed_deviation
Bitrate deviation in percent
0 to 100 integer
severity warning, fatal warning

Bitrate mode

Check bitrate mode

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <format>
        <output>[advanced_hls|mp4|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_bitrate_mode>
                <value>[cbr|vbr]</value>
                <severity>[fatal|warning]</severity>
            </qc_bitrate_mode>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
Bitrate mode(constant or variable)
cbr, vbr
severity warning, fatal warning

Video format(codec)

Check video streams format(codec) value

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <format>
        <output>[advanced_hls|mp4|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_video_format>
                <value>[CodecName]</value>
                <severity>[fatal|warning]</severity>
            </qc_video_format>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
Video codec name
Valid codec name
severity warning, fatal warning

Video Bitrate

Check video bitrate

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <format>
        <output>[advanced_hls|mp4|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_video_bitrate>
                <value>[Bitrate]</value>
                <allowed_deviation>[Percent]</allowed_deviation>
                <severity>[fatal|warning]</severity>
            </qc_video_bitrate>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
Video bitrate
Positive integer
allowed_deviation
Bitrate deviation in percent
0 to 100 integer
severity warning, fatal warning

Frame rate

Check video frame rate

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <format>
        <output>[advanced_hls|mp4|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_frame_rate>
                <value>[FrameRate]</value>
                <severity>[fatal|warning]</severity>
            </qc_frame_rate>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
Video frame rate
Positive integer
severity warning, fatal warning

Video Duration

Check video duration

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <format>
        <output>[advanced_hls|mp4|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_video_duration>
                <value>[TimeCode]</value>
                <severity>[fatal|warning]</severity>
            </qc_video_duration>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
Video duration
Valid Timecode in format HH:mm:ss.SS
severity warning, fatal warning

Video codec profile

Check video codec profile name

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <format>
        <output>[advanced_hls|mp4|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_video_codec_profile>
                <value>[Profile]</value>
                <severity>[fatal|warning]</severity>
            </qc_video_codec_profile>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
Profile name
Valid profile name. See examples here
severity warning, fatal warning

Video level

Check video level value

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <format>
        <output>[advanced_hls|mp4|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_video_level>
                <value>[VideoLevel]</value>
                <severity>[fatal|warning]</severity>
            </qc_video_level>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
Video level value
Positive integer
severity warning, fatal warning

Frame size

Check video frame size

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <format>
        <output>[advanced_hls|mp4|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_frame_size>
                <value>[Width]X[Height]</value>
                <severity>[fatal|warning]</severity>
            </qc_frame_size>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
Video frame size
Pair of video frame's width and height devided by 'X'
severity warning, fatal warning

Aspect ratio

Check video aspect ratio value

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <format>
        <output>[advanced_hls|mp4|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_aspect_ratio>
                <value>[h]:[v]</value>
                <severity>[fatal|warning]</severity>
            </qc_aspect_ratio>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
Aspect ratio value
Valid aspect ratio value(measures devided by ':')
severity warning, fatal warning

Video streams number

Check number of video streams

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <format>
        <output>[advanced_hls|mp4|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_video_streams_number>
                <value>[StreamsNumber]</value>
                <severity>[fatal|warning]</severity>
            </qc_video_streams_number>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
Video streams number
Positive integer
severity warning, fatal warning

Audio Codec

Check audio codec name

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <format>
        <output>[advanced_hls|mp4|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_audio_codec>
                <value>[CodecName]</value>
                <severity>[fatal|warning]</severity>
            </qc_audio_codec>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
Audo codec name
Valid codec name
severity warning, fatal warning

Audio Bitrate

Check audio bitrate

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <format>
        <output>[advanced_hls|mp4|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_audio_bitrate>
                <value>[Bitrate]</value>
                <allowed_deviation>[Percent]</allowed_deviation>
                <severity>[fatal|warning]</severity>
            </qc_audio_bitrate>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
Audio bitrate
Positive integer
allowed_deviation
Bitrate deviation in percent
0 to 100 integer
severity warning, fatal warning

Audio Duration

Check audio duration

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <format>
        <output>[advanced_hls|mp4|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_audio_duration>
                <value>[TimeCode]</value>
                <severity>[fatal|warning]</severity>
            </qc_audio_duration>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
Audio duration
Valid Timecode in format HH:mm:ss.SS
severity warning, fatal warning

Audio bit depth

Check audio bit depth number

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <format>
        <output>[advanced_hls|mp4|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_audio_bit_depth>
                <value>[BitDepth]</value>
                <severity>[fatal|warning]</severity>
            </qc_audio_bit_depth>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
Audio bit depth number
Positive integer
severity warning, fatal warning

Audio sample rate

Check audio sample rate value

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <format>
        <output>[advanced_hls|mp4|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_audio_sample_rate>
                <value>[SampleRate]</value>
                <severity>[fatal|warning]</severity>
            </qc_audio_sample_rate>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
Audio sample rate value
Positive integer
severity warning, fatal warning

Audio channels

Check number of audio channels

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <format>
        <output>[advanced_hls|mp4|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_audio_channels>
                <value>[ChannelsNumber]</value>
                <severity>[fatal|warning]</severity>
            </qc_audio_channels>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
Audio channels number
Positive integer
severity warning, fatal warning

Audio channel layout

Check audio channel layout

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <format>
        <output>[advanced_hls|mp4|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_audio_channel_layout>
                <value>[ChannelLayout]</value>
                <severity>[fatal|warning]</severity>
            </qc_audio_channel_layout>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
Audio channel layout
Valid channel layout. See examples here
severity warning, fatal warning

Audio streams number

Check number of audio streams

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <format>
        <output>[advanced_hls|mp4|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_audio_streams_number>
                <value>[StreamsNumber]</value>
                <severity>[fatal|warning]</severity>
            </qc_audio_streams_number>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
Audio streams number
Positive integer
severity warning, fatal warning

19 July 2017 - Atlas DRM

Available for advanced multibitrate output formats: advanced_hls, fmp4_hls, advanced_dash, advanced_mss.

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>[advanced_hls|fmp4_hls|advanced_dash|advanced_mss]</output>
        <atlas_drm>yes</atlas_drm>
        <atlas_company_id>[AtlasCompanyID]</atlas_company_id>
        <atlas_asset_id>[AtlasAssetID]</atlas_asset_id>
        <atlas_widevine_drm>[yes|no]</atlas_widevine_drm> 
        <atlas_playready_drm>[yes|no]</atlas_playready_drm> 
        <!-- <atlas_widevine_drm /> and  <atlas_playready_drm /> services not available for advanced_hls and fmp4_hls output formats -->
        <atlas_env>[live|stage]</atlas_env>
    </format>
</query>
Field Name Allowed Values Default Values
atlas_drm
use Atlas DRM
yes, no no
atlas_company_id
Atlas DRM Company ID
Valid Company ID no
atlas_asset_id
Atlas DRM Asset ID
Valid Asset ID
atlas_widevine_drm
Use Atlas Widevine DRM
yes, no
atlas_playready_drm
Use Atlas Playready DRM
yes, no
Note: Atlas Widevine and Atlas Playready DRM services not available for advanced_hls and fmp4_hls output formats
atlas_env
Atlas DRM Environment
live, stage live

19 July 2017 - fMP4 HLS

Added new advanced multibitrate output format fmp4_hls.
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>fmp4_hls</output>
        <stream>
            <!-- Video settings params -->
            <profile>[high|main|baseline]</profile>
            <!-- Audio settings params -->
            <!-- Other format params -->
            <!-- Closed Captions params -->
            <!-- Editing features params -->
            <still_image>[no|each_segment|first_segment]</still_image>
            <still_image_time>[Time]</still_image_time>
            <still_image_size>[Size]</still_image_size>
            <byte_range>[yes|no]</byte_range>
            <add_iframe_stream>[yes|no]</add_iframe_stream>
            <audio_only>[yes|no]</audio_only>
            <video_only>[yes|no]</video_only>
            <group_id>[GroupID]</group_id>
            <use_group_id>[CommaSeparatedList]</use_group_id>
            <playlist_version>[Valid EXT-X-VERSION]</playlist_version>
            <sub_path>[Playlist sub path]</sub_path>
            <media_path>[Playlist sub path]</media_path>
            <!-- Manifests fields -->
            <manifest>
                <basename>[BaseName]</basename> <!-- required-->
                <add_to_manifest>[ManifestName]:[Position],[ManifestName]:[Position]</add_to_manifest>
                <destination>[ManifestDestination]</destination>
            </manifest>
            <!-- Multiple manifests may be included -->
            <manifest>
               <!-- manifest params -->
            </manifest>
        </stream>
        <!-- Multiple stream params may be included in output format -->
        <!-- Maximum number of available streams is 15 -->
        <stream>
           <!-- stream params -->
        </stream>
        <!-- Manifests fields -->
        <manifest>
            <basename>[BaseName]</basename> <!-- required-->
            <destination>[ManifestDestination]</destination>
            <add_audio_only>[yes|no]</add_audio_only>
        </manifest>
        <!-- Multiple manifests may be included -->
        <manifest>
           <!-- manifest params -->
        </manifest>
        <!-- Main/alternate source fields -->
        <main_source>
            <type>[video_audio|video|audio]</type>
            <video_name>[Name]</video_name>
            <audio_name>[Name]</audio_name>
            <use_stream_id>[CommaSeparatedList]</use_stream_id>
            <language>[Language]</language>

        </main_source>
        <!-- multiple alternate_sources may be included -->
        <alternate_source>
            <source>[FileURL]</source>
            <type>[video_audio|video|audio]</type>
            <video_name>[Name]</video_name>
            <audio_name>[Name]</audio_name>
            <use_stream_id>[CommaSeparatedList]</use_stream_id>
            <language>[Language]</language>
            <auto>[yes|no]</auto>
            <alternate_default>[yes|no|auto]</alternate_default>
            <alternate_autoselect>[yes|no]</alternate_autoselect>
        </alternate_source>
        <alternate_source>
           <!-- alternate_source params -->
        </alternate_source>
        <!-- multiple ad_breaks may be included -->
        <ad_break>
           <start>[StartTime]</start>
           <duration>[BreakDuration]</duration>
           <drop_segments>[yes|no]</drop_segments>
        </ad_break>
        <ad_break>
           <!-- ad_break params -->
        </ad_break>
        <!-- Format fields -->
        <duration_precision>[Number]</duration_precision>
        <segment_duration>[Duration]</segment_duration>
        <pack_files>[yes|no]</pack_files>
        <pack_type>[tar|zip]</pack_type>
        <pack_each_stream>[yes|no]</pack_each_stream>
        <encryption>[yes|no]</encryption>
        <encryption_method>[aes-128-cbc|sample-aes]</encryption_method>
        <encryption_key>[128bit-key]</encryption_key>
        <encryption_key_file>[SourceURL]</encryption_key_file>
        <encryption_iv>[Hexidecimal string]</encryption_iv>
        <segmenter>[v1|v2|v3|dolby_segmenter]</segmenter>
        <playlist_version>[Valid EXT-X-VERSION]</playlist_version>
        <merge_small_segments>[yes|no]</merge_small_segments>
        <destination>[DestFile]</destination> <!-- required-->
    </format>
</query>
Note cea-608 mux type isn't available for fmp4_hls output format

19 July 2017 - Quality Control

Quality Control(qc) is a feature that allows you to check your media quality while it processing. Also you could check external media by adding 'qc_check_only' output format.
Note: For now QC feature available for advanced_hls format only!

Available tests

Test Name API Param Name
Output Validation Tests
Check B-Frames Present <qc_b_frames_present>
Check B-Frames DTS grow <qc_bframe_dts_grow>
IDR interval is maintained <qc_idr_interval>
Closed Captions(608/708) are present and maintained <qc_captions_presented>
PCR interval is maintained <qc_pcr_interval>
PID interval is maintained <qc_pid_interval>
Each segment starts with IDR <qc_segments_start_with_idr>
No short segments <qc_short_segment>
Validate DTS <qc_validate_dts>
Validate PTS <qc_validate_pts>
Manifest Validation Tests
Master manifest has proper bitrate <qc_bitrate_declaration>
Master manifest has proper codec <qc_codec_declaration>
Discontinuity tags are proper placement <qc_discontinuity_tags>
Proper DRM URI <qc_drm_uri>
HLS version number <qc_hls_version_number>
CUE-OUT:0 proper placement <qc_match_breakpoints>
Compare manifest and output.json duration <qc_match_durations>
Check Sample AES Proper encryption <qc_proper_sample_aes_encryption_declared>
Target segment duration <qc_target_segment_duration>
Declared segment duration is correct <qc_validate_segment_duration>

Request Template

Code Example:
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <qc_notify>[QCNotifyURL]</qc_notify>
    <source>[SourceFile|SourcePlaylist]</source><!-- REQUIRED -->
    <format>
        <output>[advanced_hls|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc>
            <!-- Format Validation Tests -->
            <qc_test_name_1>
                <!-- Tests Params -->
                <severity>[fatal|warning]</severity>
            </qc_test_name_1>
            <qc_test_name_2>
                <!-- Tests Params -->
            </qc_test_name_2>
            <!-- Multiple Tests -->
            <qc_test_name_N>
                <!-- Tests Params -->
            </qc_test_name_N>
        </qc>
        <stream>
            <qc>
                <!-- Stream Validation Tests -->
                <qc_test_name_1>
                    <!-- Tests Params -->
                    <severity>[fatal|warning]</severity>
                </qc_test_name_1>
                <qc_test_name_2>
                    <!-- Tests Params -->
                </qc_test_name_2>
                <!-- Multiple Tests -->
                <qc_test_name_N>
                    <!-- Tests Params -->
                </qc_test_name_N>
            </qc>
        </stream>
    </format>
</query>
Common tests params:
Field Allowed Values Default Value
severity
Test severity Level
warning – Tests with 'warning' severity generate messages in report but qc process will continue.
fatal – Tests with 'fatal' severity will stop QC process.
warning

QC process notifications

<?xml version="1.0"?>
<query>
    <!-- Main fields -->
    <userid>[UserID]</userid>
    <userkey>[UserKey]</userkey>
    <action>[Action]</action>
    <source>[SourceFile]</source>
    <notify_format>[xml|json]</notify_format>
    <qc_notify>[QCNotifyURL]</qc_notify>
    <format>
        <!-- Format fields -->
    </format> 
</query>
QC_Notify

Can be either an HTTP(S) URL for the script or a mailto: link with email address for which notification will be sent when QC processing finished for each output format.

Callback Format
<?xml version="1.0"?>
<report>
     <mediaID>[MediaID]</mediaID>
     <queueID>[QueueID]</queueID>
     <status>[QCStatus]</status>
     <passed>
         <test>
             <name>[QCTestName]</name>
             <filesProcessed>[FilesCount]</filesProcessed>
         </test>
         <test>
             <!-- Test params -->
         </test>
     </passed>
     <warnings>
         <!-- Failed Tests with severity set to 'warning' -->
         <warning>
             <streamID>[StreamID]</streamID>
             <testName>[QCTestName]</testName>
             <fileName>[FileName]</fileName>
             <message>[Message]</message>
         </warning>
         <warning>
             <!-- Test warning params -->
         </warning>
     </warnings>
     <errors>
         <!-- Failed Tests with severity set to 'failed' -->
         <error>
             <streamID>[StreamID]</streamID>
             <testName>[QCTestName]</testName>
             <fileName>[FileName]</fileName>
             <message>[Message]</message>
         </error>
         <error>
             <!-- Test failed params -->
         </error>
     </errors>
</report>

Get QC process status

Request:
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQCStatus</action>
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <queueid>[QueueID]</queueid><!-- OPTIONAL -->
</query>
Field Name Allowed Values Default Values
mediaid
Media ID
Positive Number
queueid
Format ID
Positive Number

Response:
Possible QC Statuses:
Name Description
Transcoding QC not started since transcoding job is not finished
Validating QC is in progress
Passed QC sucessfully finished. All tests passed.
Quarantined Some QC Tests failed and output was sent to quarantine destination
Failed Critical QC Tests failed
Stopped QC process was suddenly stopped due to error
<?xml version="1.0"?>
<response>
    <format>
        <QueueID>[QueueID]</QueueID>
        <report>
            <mediaID>[MediaID]</mediaID>
            <queueID>[QueueID]</queueID>
            <status>[QCStatus]</status>
            <passed>
                <test>
                    <name>[QCTestName]</name>
                    <filesProcessed>[FilesCount]</filesProcessed>
                </test>
                <test>
                    <!-- Test params -->
                </test>
            </passed>
            <warnings>
                <!-- Failed Tests with severity set to 'warning' -->
                <warning>
                    <streamID>[StreamID]</streamID>
                    <testName>[QCTestName]</testName>
                    <fileName>[FileName]</fileName>
                    <message>[Message]</message>
                </warning>
                <warning>
                    <!-- Test warning params -->
                </warning>
            </warnings>
            <errors>
                <!-- Failed Tests with severity set to 'failed' -->
                <error>
                    <streamID>[StreamID]</streamID>
                    <testName>[QCTestName]</testName>
                    <fileName>[FileName]</fileName>
                    <message>[Message]</message>
                </error>
                <error>
                    <!-- Test failed params -->
                </error>
            </errors>
        </report>
    </format>
    <format>
        <!-- Format QC Tests report -->
    </format>
</response>

Check B-Frames Present

Checks that b-frames present in main profile encodes and not present in baseline profiles

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQCStatus</action>
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <format>
        <output>[advanced_hls|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_b_frames_present>
                <value>[yes|no]</value>
                <severity>[fatal|warning]</severity>
            </qc_b_frames_present>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
Check if b-frames present or not
yes, no
severity warning, fatal warning

Checks growing of the B frames pkt_dts value.

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQCStatus</action>
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <format>
        <output>[advanced_hls|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_bframe_dts_grow>
                <severity>[fatal|warning]</severity>
            </qc_bframe_dts_grow>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
severity warning, fatal warning

Checks that IDR interval is maintained with presented deviation

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQCStatus</action>
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <format>
        <output>[advanced_hls|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_idr_interval>
                <deviation>[Number]</deviation>
                <severity>[fatal|warning]</severity>
            </qc_idr_interval>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
deviation
IDR interval deviation
Number
severity warning, fatal warning

Checks that Closed Captions(608/708) are present and maintained

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQCStatus</action>
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <format>
        <output>[advanced_hls|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_captions_presented>
                <type>[CaptionType]</type>
                <!-- Multiple Caption Types -->
                <severity>[fatal|warning]</severity>
            </qc_captions_presented>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
type
Closed Captions Type
608, 708
severity warning, fatal warning

Checks PCR interval

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQCStatus</action>
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <format>
        <output>[advanced_hls|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_pcr_interval>
                <value>[Number]</value>
                <severity>[fatal|warning]</severity>
            </qc_pcr_interval>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
PCR interval value
Positive integer 40
severity warning, fatal warning

Check that PID interval is maintained

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQCStatus</action>
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <format>
        <output>[advanced_hls|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_pid_interval>
                <value>[Number]</value>
                <severity>[fatal|warning]</severity>
            </qc_pid_interval>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
PID interval value
Positive integer 700
severity warning, fatal warning

Analyzes GOP structure. Checks that each segment starts with IDR.

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQCStatus</action>
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <format>
        <output>[advanced_hls|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_segments_start_with_idr>
                <severity>[fatal|warning]</severity>
            </qc_segments_start_with_idr>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
severity warning, fatal warning

Checks that there no segments(.ts files) with duration shorter than N seconds.

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQCStatus</action>
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <format>
        <output>[advanced_hls|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_short_segment>
                <value>[Number]</value>
                <severity>[fatal|warning]</severity>
            </qc_short_segment>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
minimum segment duration in seconds
Positive integer 1
severity warning, fatal warning

Check that DTS values grow up and DTS greater than PCR

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQCStatus</action>
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <format>
        <output>[advanced_hls|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_validate_dts>
                <severity>[fatal|warning]</severity>
            </qc_validate_dts>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
severity warning, fatal fatal

Checks if Presentation Time Stamp(PTS) repetition is less than 700ms

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQCStatus</action>
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <format>
        <output>[advanced_hls|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_validate_pts>
                <severity>[fatal|warning]</severity>
            </qc_validate_pts>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
severity warning, fatal fatal

Checks that proper bitrate information declared in master manifest

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQCStatus</action>
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <format>
        <output>[advanced_hls|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_bitrate_declaration>
                <allowed_deviation>[Percent]</allowed_deviation>
                <severity>[fatal|warning]</severity>
            </qc_bitrate_declaration>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
allowed_deviation
Duration deviation in percent
0 to 100 integer 20
severity warning, fatal warning

Checks that proper codec information declared in master manifest

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQCStatus</action>
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <format>
        <output>[advanced_hls|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_codec_declaration>
                <severity>[fatal|warning]</severity>
            </qc_codec_declaration>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
severity warning, fatal warning

Checks that discontinuity tags are placed at program segment boundaries

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQCStatus</action>
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <format>
        <output>[advanced_hls|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_discontinuity_tags>
                <value>[ProgramSegmentStart1-ProgramSegmentEnd1]</value>
                <value>[ProgramSegment2Start2-ProgramSegmentEnd2]</value>
                <!-- Multiple value tags -->
                <allowed_deviation>[Percent]</allowed_deviation>
                <severity>[fatal|warning]</severity>
            </qc_discontinuity_tags>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
Program Segment Boudaries
2 positive integers in fromat 'start-end'
allowed_deviation
Duration deviation in percent
0 to 100 integer 10
severity warning, fatal warning

Checks that proper DRM URI set for each DRM system

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQCStatus</action>
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <format>
        <output>[advanced_hls|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_drm_uri>
                <severity>[fatal|warning]</severity>
            </qc_drm_uri>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
severity warning, fatal warning

Checks HLS version

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQCStatus</action>
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <format>
        <output>[advanced_hls|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_hls_version_number>
                <value>[Number]</value>
                <severity>[fatal|warning]</severity>
            </qc_hls_version_number>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
HLS Version
1 to 7 integer
severity warning, fatal warning

Checks that CUE-OUT:0 tag is placed at program segment boundaries – matches declared breakpoints in the input.json

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQCStatus</action>
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <format>
        <output>[advanced_hls|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_match_breakpoints>
                <value>[ProgramSegmentStart1-ProgramSegmentEnd1]</value>
                <value>[ProgramSegment2Start2-ProgramSegmentEnd2]</value>
                <!-- Multiple value tags -->
                <allowed_deviation>[Percent]</allowed_deviation>
                <severity>[fatal|warning]</severity>
            </qc_match_breakpoints>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
Program Segment Boudaries
2 positive integers in fromat 'start-end'
allowed_deviation
Duration deviation in percent
0 to 100 integer 10
severity warning, fatal warning

Checks that sum of EXT_INF data from each profile for each program segment in the manifest exactly matches the durations declared in the output.json

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQCStatus</action>
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <format>
        <output>[advanced_hls|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_match_durations>
                <allowed_deviation>[Percent]</allowed_deviation>
                <severity>[fatal|warning]</severity>
            </qc_match_durations>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
allowed_deviation
Duration deviation in percent
0 to 100 integer 10
severity warning, fatal warning

Checks that proper Sample AES encryption is declared

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQCStatus</action>
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <format>
        <output>[advanced_hls|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_proper_sample_aes_encryption_declared>
                <severity>[fatal|warning]</severity>
            </qc_proper_sample_aes_encryption_declared>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
severity warning, fatal warning

Checks segment duration.

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQCStatus</action>
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <format>
        <output>[advanced_hls|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_target_segment_duration>
                <value>[Number]</value>
                <minimum_duration>[Number]</minimum_duration>
                <allowed_deviation>[Percent]</allowed_deviation>
                <severity>[fatal|warning]</severity>
            </qc_target_segment_duration>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
value
Segment Duartion in seconds
Positive integer
minimum_duration
Minimum segment duration in seconds. Shorter segments should be merged with previous segment.
Positive integer 1
allowed_deviation
Duration deviation in percent
0 to 100 integer 10
severity warning, fatal warning

Checks that segment duration declared in manifests is actual.

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQCStatus</action>
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
    <format>
        <output>[advanced_hls|qc_check_only]</output><!-- REQUIRED -->
        <!-- Format fields -->
        <qc> 
            <qc_validate_segment_duration>
                <allowed_deviation>[Percent]</allowed_deviation>
                <severity>[fatal|warning]</severity>
            </qc_validate_segment_duration>
        </qc>
    </format>
</query>
Field Allowed Values Default Value
allowed_deviation
Duration deviation in percent
0 to 100 integer 10
severity warning, fatal warning

27 June 2017 - wav output and font_size for closed captions

Added new audio output - 'wav'

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>wav</output>
        <audio_codec>[pcm_s16le|pcm_s24le|pcm_s32le]</audio_codec>
        <!-- Format fields -->
    </format>
</query>
Field Name Allowed Values Default Values
audio_codec
Audio codec.
pcm_s16le, pcm_s24le, pcm_s32le pcm_s16le

Added 'font_size' to 'closed_captions' params

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <closed_captions>
            <mux_type>burn-in</mux_type>
            <font_size>[FontSize]</font_size>
        </closed_captions>
        <!-- Multiple closed captions params may be included in output format -->
        <closed_captions>
            <!-- closed captions params -->
        </closed_captions>
    </format>
</query>
Field Name Allowed Values Default Values
font_size
Closed Captions font size.
Positive integer greater than 10 16

6 June 2017 - Closed Captions font_source

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <closed_captions>
            <mux_type>burn-in</mux_type>
            <font_source>[FontSourceURL]</font_source>
        </closed_captions>
        <!-- Multiple closed captions params may be included in output format -->
        <closed_captions>
            <!-- closed captions params -->
        </closed_captions>
    </format>
</query>
Field Name Allowed Values Default Values
font_source
Closed Captions font source file. Allowed font formats: ttf, otf.
valid URL None
Note: font_source works only with burn-in mux type.

17 May 2017 HEVC video_codec for mpeg_dash and advanced_dash outputs

Example for mpeg_dash
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>mpeg_dash</output>
        <video_codec>hevc</video_codec>
        <!-- Format options -->
    </format> 
</query>
Example for advanced_dash
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>advanced_dash</output>
        <!-- Format options -->
        <stream>
            <video_codec>hevc</video_codec>
        </stream>
    </format> 
</query>
Field Name Allowed Values Default Values
video_codec
Video codec
advanced_dash: libx264, libvpx-vp9, hevc
mpeg_dash: mpeg4, libx264, hevc
advanced_hls, advanced_dash, advanced_mss: libx264
mpeg_dash: libx264

09 March 2017 US(Ohio) AWS Region and Framerate copy option

Framerate copy option

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>[output]</output> <!-- required-->
        <framerate>[framerateValue|copy]</framerate> <!-- optional -->
    </format>
</query>
Field Name Allowed Values Default Values
framerate
Frame rate
Any non-zero integer or N/M where N and M are non-zero integers
'copy' - take source's framerate
All: none
psp: 30000/1001

US(Ohio) AWS Region

Added support of the US(Ohio) region(us-east-2)
Processing Region
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <region>us-east-2</region> 
    <format> 
    <!-- Format options -->
    </format> 
</query>
Option Location
us-east-2 US (Ohio)
Source location / Output destination
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <!-- Media options -->
    <source>http://[bucket].s3-us-east-2.amazonaws.com/[filename]</source> 
    <format> 
        <destination>http://[bucket].s3-us-east-2.amazonaws.com/[filename]</destination> 
    <!-- Format options -->
    </format> 
</query>

15 December 2016 Auto alternate source.

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>[advanced_hls|advanced_dash|advanced_mss]</output>
        <!-- Main/alternate source fields -->
        <main_source>
            <!-- main_sources params -->
        </main_source>
        <!-- multiple alternate_sources may be included -->
        <alternate_source>
            <type>[video_audio|video|audio]</type>
            <auto>[yes|no]</auto>
        </alternate_source>
        <destination>[DestFile]</destination> <!-- required-->
    </format>
</query>
Field Name Allowed Values Default Values
Alternate source params
auto
Add automatically all streams from media source with stated type.
[yes, no] no
Note If auto is set to yes for alternate_source then only auto alternate sources will be applied, other custom alternate_sources will be skipped
Note If <auto> set to 'yes' all other options(except for <type>) of <alternate_source> section will be ignored.

23 November 2016 - Advanced Multibitrate Formats and Multiple Closed Captions

Multiple Closed Captions and new mux_type

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <closed_captions>
            <mux_type>[cea-608|cea-708|timed-text|webvtt|burn-in|ismt]</mux_type>
        </closed_captions>
        <!-- Multiple closed captions params may be included in output format -->
        <closed_captions>
            <!-- closed captions params -->
        </closed_captions>
    </format>
</query>
Field Name Allowed Values Default Values
mux_type
Closed captions mux type

webvtt — webvtt file would be uploaded to same destination as result file (for HLS it would be segmented). Not available for advanced_mss output format

ismt – Closed Captions would be muxed in video as ismt track. Available only for advanced_dash and advanced_mss output formats

Advanced Multibitrate Formats

Added 2 new output formats advanced_dash and advanced_mss

Alternate source

This feature allows a provider to specify one of a set of variant playlists as an "override" of the main presentation. The client will only play the override media (audio or video), and suppress any media of the same type from the main presentation, if present. This allows a presentation to offer multiple versions of the media without requiring the provider to store duplicate media, or requiring the client download all variants when it only needs one. It also allows additional media to be offered subsequently without remastering the original content. Read more at Apple dev technote

Byte-range
Note: This feature available only for advanced_hls output format.

You can now specify a media segment as a byte range (subrange) of a larger URL. This allows you to consolidate your media segments into larger files or a single large file. The primary benefit of this is when a client is playing your media, rather than downloading each successive segment file from a different location, it is actually walking through a larger file in sequence. Read more at Apple dev technote

I-Frame playlist
Note: This feature available only for advanced_hls output format.

iOS 5 now supports Fast Forward and Reverse Playback. However, you don't need to produce special purpose content to support Fast Forward and Reverse Playback. All you need to do is specify where the I-Frames are. I-Frames, or Intra frames, are encoded video frames whose encoding does not depend on any other frame. To specify where the I-Frames are, iOS 5 introduces a new I-Frame only playlist. Read more at Apple dev technote

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>[advanced_hls|advanced_dash|advanced_mss]</output>
        <stream>
            <!-- Video settings params -->
            <profile>[high|main|baseline]</profile>
            <!-- Audio settings params -->
            <!-- Other format params -->
            <!-- Closed Captions params -->
            <!-- Editing features params -->
            <still_image>[no|each_segment|first_segment]</still_image>
            <still_image_time>[Time]</still_image_time>
            <still_image_size>[Size]</still_image_size>
            <byte_range>[yes|no]</byte_range>
            <add_iframe_stream>[yes|no]</add_iframe_stream>
            <audio_only>[yes|no]</audio_only>
            <video_only>[yes|no]</video_only>
            <group_id>[GroupID]</group_id>
            <use_group_id>[CommaSeparatedList]</use_group_id>
            <playlist_version>[Valid EXT-X-VERSION]</playlist_version>
            <sub_path>[Playlist sub path]</sub_path>
            <media_path>[Playlist sub path]</media_path>
        </stream>
        <!-- Multiple stream params may be included in output format -->
        <!-- Maximum number of available streams is 15 -->
        <stream>
           <!-- stream params -->
        </stream>
        <!-- Manifests fields -->
        <manifest>
            <basename>[BaseName]</basename> <!-- required-->
        </manifest>
        <!-- Multiple manifests may be included -->
        <manifest>
           <!-- manifest params -->
        </manifest>
        <!-- Main/alternate source fields -->
        <main_source>
            <type>[video_audio|video|audio]</type>
            <video_name>[Name]</video_name>
            <audio_name>[Name]</audio_name>
            <use_stream_id>[CommaSeparatedList]</use_stream_id>
            <language>[Language]</language>
        </main_source>
        <!-- multiple alternate_sources may be included -->
        <alternate_source>
            <source>[FileURL]</source>
            <type>[video_audio|video|audio]</type>
            <video_name>[Name]</video_name>
            <audio_name>[Name]</audio_name>
            <use_stream_id>[CommaSeparatedList]</use_stream_id>
            <language>[Language]</language>
        </alternate_source>
        <alternate_source>
           <!-- alternate_source params -->
        </alternate_source>
        <!-- multiple ad_breaks may be included -->
        <ad_break>
           <start>[StartTime]</start>
           <duration>[BreakDuration]</duration>
           <drop_segments>[yes|no]</drop_segments>
        </ad_break>
        <ad_break>
           <!-- ad_break params -->
        </ad_break>
        <!-- Format fields -->
        <duration_precision>[Number]</duration_precision>
        <segment_duration>[Duration]</segment_duration>
        <pack_files>[yes|no]</pack_files>
        <pack_type>[tar|zip]</pack_type>
        <pack_each_stream>[yes|no]</pack_each_stream>
        <encryption>[yes|no]</encryption>
        <encryption_method>[aes-128-cbc|sample-aes]</encryption_method>
        <encryption_key>[128bit-key]</encryption_key>
        <encryption_key_file>[SourceURL]</encryption_key_file>
        <encryption_iv>[Hexidecimal string]</encryption_iv>
        <segmenter>[v1|v2|v3|dolby_segmenter]</segmenter>
        <playlist_version>[Valid EXT-X-VERSION]</playlist_version>
        <merge_small_segments>[yes|no]</merge_small_segments>
        <destination>[DestFile]</destination> <!-- required-->
    </format>
</query>
Specific options for advanced_dash output
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>[advanced_dash|advanced_mss]</output>
        <stream>
            <add_to_manifest>[ManifestName],[ManifestName]</add_to_manifest>
        </stream>
        <!-- Multiple stream params may be included in advanced_hls output format -->
        <!-- Maximum number of available streams is 15 -->
        <stream>
           <!-- stream params -->
        </stream>
        <!-- Format fields -->
        <!-- Nielsen metadata settings -->
    </format>
</query>
Specific options for advanced_mss output
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>[advanced_dash|advanced_mss]</output>
        <stream>
            <add_to_manifest>[ManifestName],[ManifestName]</add_to_manifest>
        </stream>
        <!-- Multiple stream params may be included in output format -->
        <!-- Maximum number of available streams is 15 -->
        <stream>
           <!-- stream params -->
        </stream>
        <!-- Format fields -->
    </format>
</query>
Specific options for advanced_hls output
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>advanced_hls</output>
        <stream>
            <!-- Manifests fields -->
            <manifest>
                <basename>[BaseName]</basename> <!-- required-->
                <add_to_manifest>[ManifestName]:[Position],[ManifestName]:[Position]</add_to_manifest>
                <destination>[ManifestDestination]</destination>
            </manifest>
            <!-- Multiple manifests may be included -->
            <manifest>
               <!-- manifest params -->
            </manifest>
        </stream>
        <!-- Multiple stream params may be included in advanced_hls output format -->
        <!-- Maximum number of available streams is 15 -->
        <stream>
           <!-- stream params -->
        </stream>
        <!-- Manifests fields -->
        <manifest>
            <basename>[BaseName]</basename> <!-- required-->
            <destination>[ManifestDestination]</destination>
            <add_audio_only>[yes|no]</add_audio_only>
        </manifest>
        <!-- Multiple manifests may be included -->
        <manifest>
           <!-- manifest params -->
        </manifest>
        <!-- Format fields -->
        <!-- Nielsen metadata settings -->
    </format>
</query>
Field Name Allowed Values Default Values
Format params
Note: Audio and video parameters aren't applicable on <format> level and should be set in each <stream>.
duration_precision
Sets number of decimals after point for duration in playlist file.
integer 0
segment_duration
Segment duration to split media (in seconds)
Non-negative integer 9
pack_files
Whether to pack resulting files to a single archive
yes, no yes
pack_type
Archive type
tar, zip tar
Parameter would be ignored in case of pack_files=no
pack_each_stream
Pack each stream in separate archive
yes, no no
Parameter would be ignored in case of pack_files=no
encryption
Encrypt TS segements using AES-128
yes, no no
encryption_method
Encryption method
aes-128-cbc, sample-aes aes-128-cbc
encryption_key
Encryption key
32 hexidecimal characters ([0-9a-f]) None
encryption_key_file
link to encryption key file
Valid URL None
encryption_iv
Encryption initialization vector
32 hexidecimal characters ([0-9a-f]) aes-128-cbc - sequence number of the segment file,
sample-aes - randomly generated value
segmenter
Type of segmenter.
v1 – This is the segmenter bundled with FFMPEG and carries significant overhead (as much as 27% with a 364kbps file or 17.3% with a 864kbps file!), and generated several warnings.
v2 - This is based on HTTP Live Segmenter based tool. It carries with it the same overhead, but generates far fewer warnings.
v3 - This version, we call tsparser, we built in-house from the ground up to be optimized for our cloud infrastructure. This has significantly less overhead (5.8% with a 364kbps file or 3.8% with a 864kbps file), and does not generate any warnings.
dolby_segmenter - Dolby Media Generator segmenter(dolby_segmenter) will update libfaac audio codec to dolby_aac, in case libfaac codec specified. In case copy specified as audio_codec then source audio codec will be tried. In case iframe stream requested then v3 segmenter wil be used.
v3
playlist_version
Version of m3u8 playlist file
Integer(EXT-X-VERSION) None
merge_small_segments
Merge last chunk with previous one if its length less than 1 second.
yes, no no
Nielsen metadata settings
Note: This feature available only for advanced_dash and advanced_hls output
Nielsen metadata settings
Main manifests params
basename
Main manifest basename
String
Note: destination and add_audio_only options available only for advanced_hls output
destination
Main manifest destination
Valid destination URL
add_audio_only
Add audio only stream to this manifest
yes, no yes
Stream manifests params
Note: This feature available only for advanced_hls output
basename
Stream manifest basename
String
add_to_manifest
Add to one or several specified main manifests. If no value specified stream would be added to all main manifests.
Comma sepparated list of manifests. Optionally manifest's position could be specified as [ManifestName]:[Position]
destination
Stream manifest destination
Valid destination URL
Main source params
type
Sets for which stream types source will be used
video – for NOT audio_only streams
audio - for audio_only streams
video_audio - for all streams
video_audio
video_name
Name of main source video stream
string  
audio_name
Name of main source audio stream
string  
use_stream_id
Sets which source's stream will be used.
Comma separated list of stream ids  
Language
Main source Language attribute.
Valid language name  
Alternate source params
source
URL to alternate source file. Optional. If not exists main source link will be used as alternate source
Valid URL to alternate source file  
type
Sets for which stream types source will be used
video – for NOT audio_only streams
audio - for audio_only streams
video_audio - for all streams
video_audio
video_name
Name of alternate source video stream
string  
audio_name
Name of alternate source audio stream
string  
use_stream_id
Sets which source's stream will be used.
Comma separated list of stream ids  
Language
Alternate source Language attribute.
Valid language name  
Ad breaks params
start
Start ad break time in sec.
non-negative integer number  
duration
Ad break duration in sec.
non-negative integer number  
drop_segments
Whether to drop segments while break(skip original content while break)
yes, no  
Stream params
If no streams was specified, there will be added 9 default streams for advanced_hls and 9 default streams for advanced_dash/advanced_mss.
Maximum number of available streams is 15
Aceptable params from:
still_image
Embed still image in the audio-only stream
no, each_segment, first_segment no
still_image_time
The time from the beginning of segment to capture still image
Non-negative number greater than 0.01 or hh:mm:ss.ms 5
still_image_size
The size of the still image
WxH where W and H — positive integers None
Note: byte_range and add_iframe_stream options available only for advanced_hls output
byte_range
Use byte-range playlist - do not split mpeg-ts file to segments
yes, no no
add_iframe_stream
Add i-frame playlist for this stream (allowed only for video)
yes, no no
audio_only
Result segments will contain only audio stream
yes, no no
video_only
Result segments will contain only video stream
yes, no no
group_id
Alternate group id based on current stream.
String  
use_group_id
Specifies group id list to use as alternate for current stream.
Comma separated group_id list  
base_name
Custom stream result file name
valid filename None
playlist_version
Version of m3u8 playlist file
Integer(EXT-X-VERSION) None
sub_path
Stream manifest and media files location relative path
valid pathname None
media_path
Media files location path relative to the <sub_path>
valid pathname None
Note: This feature available only for advanced_dash and advanced_mss output
add_to_manifest
Add to one or several specified main manifests. If no value specified stream would be added to all main manifests.
Comma sepparated list of manifests

30 August 2016 - VP9 video codec

Added support for "libvpx-vp9" video codec for webm output format.
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>webm</output>
        <video_codec>libvpx-vp9</video_codec>
        <video_codec_parameters>
            <crf>[QualityLevel]</crf>
            <lossless>[yes|no]</lossless>
            <speed>[EncoderSpeed]</speed>
            <tile-columns>[Columns]</tile-columns>
            <tile-rows>[Rows]</tile-rows>
            <frame-parallel>[yes|no]</frame-parallel>
            <auto-alt-ref>[yes|no]</auto-alt-ref>
            <lag-in-frames>[FramesNumber]</lag-in-frames>
            <deadline>[good|realtime]</deadline>
            <quality>[good|realtime]</quality>
            <static-thresh>[Threshold]</static-thresh>
            <aq-mode>[Mode]</aq-mode>
            <noise-sensitivity>[Sensitivity]</noise-sensitivity>
            <arnr-maxframes>[FramesCount]</arnr-maxframes>
            <arnr-strength>[Strength]</arnr-strength>
            <arnr-type>[backward|forward|centered]</arnr-type>
            <max-intra-rate>[Framerate]</max-intra-rate>
        </video_codec_parameters>
    </format>
</query>
Field Name Allowed Values Default Values
crf
Quality level
Integer number form -1 to 63
lossless
Lossless mode
yes, no no
speed
Encoder speed
Integer number form -16 to 16
tile-columns
Number of tile columns to use
Integer number form -1 to 6
tile-rows
Number of tile rows to use
Integer number form -1 to 2
frame-parallel
Enable frame parallel decodability features
yes, no no
auto-alt-ref
Enable use of alternate reference frames (2-pass only)
yes, no no
lag-in-frames
Number of frames to look ahead for alternate reference frame selection
Positive integer number
deadline
Time to spend encoding
good, realtime good
quality
Quality
good, realtime good
static-thresh
A change threshold on blocks below which they will be skipped by the encoder
Positive integer number
aq-mode
Adaptive quantization mode
Integer number form -1 to 3
noise-sensitivity
Noise sensitivity
Integer number form 0 to 4
arnr-maxframes
Altref noise reduction max frame count
Integer number form 0 to 15
arnr-strength
Altref noise reduction filter strength
Integer number form 0 to 6
arnr-type
Altref noise reduction filter type
backward, forward, centered centered
max-intra-rate
Maximum I-frame bitrate
Positive integer number

18 August 2016

Main/alternate source language settings for advanced_hls output

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[MediaAction]</action> <!-- required-->
    <format>
        <output>advanced_hls</output>
        <main_source>
            <language>[Language]</language>
        </main_source>
        <alternate_source>
            <language>[Language]</language>
        </alternate_source>
    </format>
</query>
Option Name Allowed Values Default Values
Main source params
Language
Main source Language attribute.
Valid language name  
Alternate source params
Language
Alternate source Language attribute.
Valid language name  

Processing Priority

Note:This article acceptable only for Reserved Instances users!

To force failover media processing to Encoding.com Instances you can set <priority>high</priority> in the <query> section

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[MediaAction]</action> <!-- required-->
    <priority>high</priority>
</query>

Multijob Workflow

To force encoder process multiple source segments in parallel, add <multijob_workflow>yes</multijob_workflow> to the <query section>. By default media would be processed as standard multisource media. Also you can set specific part of source as program segment by setting start and end params in source URL. E.g. http://[SourcePath]/[SourceFile]?start=[SegmentStartSecond]&end=[SegmentEndSecond]

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <source>[SourceSegment][SegmentDuration]</source>
    <!-- Multiple source segments -->
    <source>[SourceSegment][SegmentDuration]</source>
    <multijob_workflow>[yes|no]</multijob_workflow>
    <format>
        <output>advanced_hls</output> <!-- required-->
    </format>
</query>

Constant framerate for H.264 codec

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>[Output]</output> <!-- required-->
        <video_codec_parameters>
            <force-cfr>[yes|no]</force-cfr>
        </video_codec_parameters>
    </format>
</query>
Option Name Allowed Values Default Values
force-cfr
Force keep constant framerate
yes,no no

Encryption method and encryption initialization vector for advanced_hls output

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>advanced_hls</output>
        <encryption_method>[aes-128-cbc|sample-aes]</encryption_method>
        <encryption_iv>[Hexidecimal string]</encryption_iv>
    </format>
</query>
Field Name Allowed Values Default Values
Format params
encryption_method
Encryption method
aes-128-cbc, sample-aes aes-128-cbc
encryption_iv
Encryption initialization vector
32 hexidecimal characters ([0-9a-f]) aes-128-cbc - sequence number of the segment file,
sample-aes - randomly generated value

Manifest settings for advanced_hls output

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>advanced_hls</output>
        <stream>
        <!-- Stream params -->
            <!-- Manifests fields -->
            <manifest>
                <basename>[BaseName]</basename> <!-- required-->
                <add_to_manifest>[ManifestName]:[Position],[ManifestName]:[Position]</add_to_manifest>
                <destination>[ManifestDestination]</destination>
            </manifest>
            <!-- Multiple manifests may be included -->
            <manifest>
               <!-- manifes tparams -->
            </manifest>
        </stream>
        <!-- Manifests fields -->
        <manifest>
            <basename>[BaseName]</basename> <!-- required-->
            <destination>[ManifestDestination]</destination>
            <add_audio_only>[yes|no]</add_audio_only>
        </manifest>
        <!-- Multiple manifests may be included -->
        <manifest>
           <!-- manifest params -->
        </manifest>
    </format>
</query>
Field Name Allowed Values Default Values
Main manifests params
basename
Main manifest basename
String
destination
Main manifest destination
Valid destination URL
add_audio_only
Add audio only stream to this manifest
yes, no yes
Stream manifests params
basename
Stream manifest basename
String
add_to_manifest
Add to one or several specified main manifests
Comma sepparated list of manifests. Optionally manifest's position could be specified as [ManifestName]:[Position]
destination
Stream manifest destination
Valid destination URL

Direct copy for closed captions:

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <closed_captions>
            <direct_copy>[yes|no]</direct_copy>
        </closed_captions>
    </format>
</query>
Field Name Allowed Values Default Values
direct_copy
If video has Closed Captions data stored in cea-608/cea-708 tracks, system will directly copy closed captions to the output.
yes, no no

Added 3 new requests:

Action Description
GetQueueTime Get current queue statistics.
GetQueueStats Get queue statistics for selected date range.
SetHostKey Add SSH RSA key for host, that could be used as destination for your media.

SetHostKey

This request sets private SSH RSA key for specified host, that could be used as media destination.

Request:
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
      <action_user_id>[ActionUserID]</action_user_id>
    <action>SetHostKey</action>
    <hostname>[HostName]</hostname>
    <username>[UserName]</username>
    <key_data>
<![CDATA[
-----BEGIN RSA PRIVATE KEY-----
<!--RSA Key Data-->
-----END RSA PRIVATE KEY-----
]]>
    </key_data>
</query>
Field Name Allowed Values Default Values
hostname
Host name
Valid hostname
username
Auth user name
Valid username
key_data
RSA key
Valid RSA key
Response:
<?xml version="1.0"?>
<response>
    <action>sethostkey</action>
    <status>Success</status>
</response>

GetQueueTime

This request returns queue statistics for currently processing medias

Request:
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQueueTime</action>
    <mediaid>[MediaID]</mediaid> <!-- Optional -->
</query>
Field Name Allowed Values Default Values
mediaid
Media IDs lsit
Comma separated list

Response:
Note: If there are no medias that waiting for download or encode then request will respond with error 'The queue is empty!'
  • If <mediaid> not specified, all medias in queue will be returned
  • <average> and <time> – queue time in human readable format
  • <type>
    • 'download' – media sources are waiting for download
    • 'encode' – media sources downloaded, media tasks are waiting for encode
  • <overlimit> – 'yes' if processing limit exceeded
<?xml version="1.0"?>
<response>
	<average>[Average Queue Time]</average>
	<averageSeconds>[Average Queue Time in seconds]</averageSeconds>
	<media>
		<id>[Media ID]</id>
		<average>[Average Media Queue Time]</average>
		<averageSeconds>[Average Media Queue Time in seconds]</averageSeconds>
		<job>
			<id>[Task IDs]</id>
			<type>[Download|Encode]</type>
			<status>[Task Status]</status>
			<format>[Task Format]</format>
			<overlimit>[yes|no]</overlimit>
			<time>[Task Queue Time]</time>
			<timeSeconds>[Task Queue Time in seconds]</timeSeconds>
		</job>
	</media>
	<media>
		<!-- Media list -->
	</media>
</response>

GetQueueStats

This request returns queue statistics for selected date range.

Request:
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetQueueStats</action>
    <mediaid>[MediaID]</mediaid> <!-- Optional -->
    <date_from>[YYYY-MM-DD HH:MM:SS]</date_from> <!-- Optional -->
    <date_to>[YYYY-MM-DD HH:MM:SS]</date_to> <!-- Optional -->
</query>
Field Name Allowed Values Default Values
mediaid
Media IDs lsit
Comma separated list
date_from
Date Range start date
Valid date in format 'YYYY-MM-DD HH:MM:SS' One month before <date_to>
date_to
Date Range end date
Valid date in format 'YYYY-MM-DD HH:MM:SS' Now

Response:
  1. If <mediaid> specified:
    <?xml version="1.0"?>
    <response>
        <date_from>[Date Range Start]</date_from>
        <date_to>[Date Range End]</date_to>
        <media>
            <id>[MediaID]</id>
            <average>[Average Queue Time]</average>
            <averageSeconds>[Average Queue Time in seconds]</averageSeconds>
        </media>
    	<media>
    		<!-- Media list -->
    	</media>
    </response>

  2. If <mediaid> not specified:
    <?xml version="1.0"?>
    <response>
        <date_from>[Date Range Start]</date_from>
        <date_to>[Date Range End]</date_to>
        <media>
            <id>[MediaIDs comma separated list]</id>
            <average>[Average Queue Time]</average>
            <averageSeconds>[Average Queue Time in seconds]</averageSeconds>
        </media>
    </response>

20 June 2016 Custom Presets Management, Custom destination content type, and Reserved Instances Info

Reserved Instances Info
Request:
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>getReservedInfo</action>
</query>

Response:
<?xml version="1.0"?>
<response>
    <action>getreservedinfo</action>
    <status>Success</status>
    <result>
        <total_threads>[TotalThreadsCount]</total_threads>
        <processing_threads>[ProcessingTasksThreads]</processing_threads>
        <failovers_threads>[FailoveredTasksTheads]</failovers_threads>
        <waiting_threads>[WaitingTasksTheads]</waiting_threads>
        <iddle_threads>[IddleTasksThreads]</iddle_threads>
    </result>
</response>

Custom destination content type
Destination type Description
Amazon Web Services (S3)
  • http://[bucket].s3.amazonaws.com/[filename]?extension_content_type[[extension]]=[content\Type]

    — If the output format implies multiple files (e.g. HLS) you could specify which content type to use for files with particular extension.


Custom and UI Presets as output

You can use your own custom preset or Encoding.com UI presets as output format.

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>addMedia</action>
    <format> <!-- REQUIRED -->
        <output_preset>[output]</output_preset> <!-- REQUIRED -->
        [FormatParams]
    </format>
</query>

Custom Presets Management: GetPresetList

This request returns list of available format presets

Request:
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetPresetsList</action>
    <type>[all|user|ui]</type> <!-- Optional -->
</query>
Field Name Allowed Values Default Values
type
Preset type
all — all available presets
user — user's custom presets
ui — predefined encoding's presets
all

Response:
<?xml version="1.0"?>
<response>
    <user>
        <preset>
            <name>[PresetName]</name>
            <type>user</type>
            <output>[PresetOutput]</output>
            <format>[Format Params]</format>
        </preset>
        <preset><!-- ... --></preset>
    </user>
    <ui>
        <preset>
            <name>[PresetName]</name>
            <type>ui</type>
            <output>[PresetOutput]</output>
            <format>[Format Params]</format>
        </preset>
        <preset><!-- ... --></preset>
    </ui>
</response>

Custom Presets Management: GetPreset

This request returns preset's information

Request:
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetPreset</action>
    <name>[PresetName]</name> <!-- REQUIRED -->
    <type>[all|user|ui]</type> <!-- Optional -->
</query>
Field Name Allowed Values Default Values
name
Preset name
String
type
Preset type
all — all available presets
user — user's custom presets
ui — predefined encoding's presets
all

Response:
<?xml version="1.0"?>
<response>
    <name>[PresetName]</name>
    <type>[user|ui]</type>
    <output>[PresetOutput]</output>
    <format>[Format Params]</format>
</response>
Custom Presets Management: SavePreset
Request:
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>savePreset</action>
    <name>[PresetName]</name>
    <format> <!-- REQUIRED -->
        <output>[output]</output> <!-- REQUIRED -->
        [FormatParams]
    </format>
</query>
Field Name Allowed Values Default Values
name
Preset name
String If not specified, preset name would be generated from format output
format
Preset format
Same as AddMedia <format> section

Response:
<?xml version="1.0"?>
<response>
    <message>Saved</message>
    <SavedPreset>[PresetName]</SavedPreset>
    <SavedPreset><!-- Each specified format would be saved as separate preset --></SavedPreset>
</response>
Note: also you could save preset in AddMedia request by specifying preset name in <save_preset> parameter in <format> block.
Request:
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>addMedia</action>
    <format> <!-- REQUIRED -->
        <output>[output]</output> <!-- REQUIRED -->
        [FormatParams]
        <save_preset>[PresetName]</save_preset>
    </format>
</query>

Response:
<?xml version="1.0"?>
<response>
    <message>[ResponseMessage]</message>
    <SavedPreset>[PresetName]</SavedPreset>
</response>

Custom Presets Management: DeletePreset
Request:
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- REQUIRED -->
    <userkey>[UserKey]</userkey> <!-- REQUIRED -->
    <action>deletePreset</action>
    <name>[PresetName]</name> <!-- REQUIRED -->
</query>
Field Name Allowed Values Default Values
name
Preset name
String If not specified, preset name would be generated from format output

Response:
<?xml version="1.0"?>
<response>
    <message>Deleted</message>
</response>

31 May 2016 - Encoder version

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
	<action>[Action]</action>
	<format>
        <!-- Format fields -->
		<encoder>[v1|v3]</encoder>
	</format>
</query>
Field Name Allowed Values Default Values
encoder
Encoding.com's encoder version.
v1, v3 v1
Warning: The new 'v3' version of encoder is in beta status!

10 May 2016

merge_small_segments

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>advanced_hls</output>
        <merge_small_segments>[yes|no]</merge_small_segments>
    </format>
</query>
Field Name Allowed Values Default Values
merge_small_segments
Merge last chunk with previous one if its length less than 1 second.
yes, no no

sub_path and media_path

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>advanced_hls</output>
        <stream>
            <sub_path>[Playlist sub path]</sub_path>
            <media_path>[Playlist sub path]</media_path>
        </stream>
    </format>
</query>
Field Name Allowed Values Default Values
sub_path
Stream manifest and media files location relative path
valid pathname None
media_path
Media files location path relative to the <sub_path>
valid pathname None

10 May 2016 - Custom Channel Mapping

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <audio_stream>
            <channel>
                <id>[OutputChannelID]</id>
                <in>
                    <id>[SourceTrackID:SourceChannelID]</id>
                    <gain>[ChannelGainLevel]</gain>
                </in>
                <in>
                    <!-- input channel params -->
                </in>
            </channel>
            <channel>
                <!-- audio channel params -->
            </channel>
            <normalize>[yes|no]</normalize>
            <layout>[AudioLayoutName]</layout>
        </audio_stream>
        <!-- multiple audio streams -->
        <audio_stream>
            <!-- audio stream params -->
        </audio_stream>
    </format>
</query>
Field Name Allowed Values Default Values
Mapping params
normalize
Renormalize output output track to avoid clipping noise
yes, no  
layout
Output channels layout
One of these channel layouts:
  • mono — FC
  • stereo — FL+FR
  • 2.1 — FL+FR+LFE
  • 3.0 — FL+FR+FC
  • 3.0-back — FL+FR+BC
  • 4.0 — FL+FR+FC+BC
  • quad — FL+FR+BL+BR
  • quad-side — FL+FR+SL+SR
  • 3.1 — FL+FR+FC+LFE
  • 5.0 — FL+FR+FC+BL+BR
  • 5.0-side — FL+FR+FC+SL+SR
  • 4.1 — FL+FR+FC+LFE+BC
  • 5.1 — FL+FR+FC+LFE+BL+BR
  • 5.1-side — FL+FR+FC+LFE+SL+SR
  • 6.0 — FL+FR+FC+BC+SL+SR
  • 6.0-front — FL+FR+FLC+FRC+SL+SR
  • hexagonal — FL+FR+FC+BL+BR+BC
  • 6.1 — FL+FR+FC+LFE+BC+SL+SR
  • 6.1 — FL+FR+FC+LFE+BL+BR+BC
  • 6.1-front — FL+FR+LFE+FLC+FRC+SL+SR
  • 7.0 — FL+FR+FC+BL+BR+SL+SR
  • 7.0-front — FL+FR+FC+FLC+FRC+SL+SR
  • 7.1 — FL+FR+FC+LFE+BL+BR+SL+SR
  • 7.1-wide — FL+FR+FC+LFE+BL+BR+FLC+FRC
  • 7.1-wide-side — FL+FR+FC+LFE+FLC+FRC+SL+SR
  • octagonal — FL+FR+FC+BL+BR+BC+SL+SR
  • downmix — DL+DR
 
<channel> - ouput audio channel params
<in> - input audio channel params
<id > - output audio channel params
id
Input audio channel ID
Input channel ID in format [track_id]:[channel_id]  
gain
Input audio channel gain level
Float positive number from 0 to 1 1
id
Output channel ID
Channel number or one of these channel names:
  • FL — front left
  • FR — front right
  • FC — front center
  • LFE — low frequency
  • BL — back left
  • BR — back right
  • FLC — front left-of-center
  • FRC — front right-of-center
  • BC — back center
  • SL — side left
  • SR — side right
  • TC — top center
  • TFL — top front left
  • TFC — top front center
  • TFR — top front right
  • TBL — top back left
  • TBC — top back center
  • TBR — top back right
  • DL — downmix left
  • DR — downmix right
  • WL — wide left
  • WR — wide right
  • SDL — surround direct left
  • SDR — surround direct right
  • LFE2 — low frequency 2
 

28 April 2016 - AQ-strength video codec parameter

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <video_codec_parameters>
            <aq-strength>[AQStrengthNumber]</aq-strength>
        </video_codec_parameters>
    </format>
</query>
Option Name Allowed Values Default Values
aq-strength
The amount of Adaptive Quantization(AQ) that is applied to the frames.
positive float number
0.5 - low AQ
1.5 - strong AQ
1.0

8 April 2016 Live Transcoding Zixi support and new Retranslation Endpoints format

Live Transcoding Zixi support

You can start the Live Transcoding process using your device with Zixi Feeder. To start the stream follow these several steps:
  1. Use, or create a Retranslation Endpoint
  2. Configure your device, using the zixi-credentials from your endpoint.
  3. Create media with the zixi-source
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid><!-- REQUIRED -->
    <userkey>[UserKey]</userkey><!-- REQUIRED -->
    <action>AddMedia</action>
    <source>zixi://stream.encoding.com/live/[ZixiStreamID]</source>
    <format>
        <output>live_hls</output>
    </format>
</query>

New Live Transcoding Retranslation Endpoints format

Now our Retranslation Endpoints service can be used as a Zixi Feeder endpoint.

Note: Note: We've changed endpoint's domain, but the old endpoint (rtmp.encoding.com) will also work.
Endpoint syntax:
RTMP:
rtmp://stream.encoding.com/live/[EndpointToken]
Zixi:
zixi://stream.encoding.com/live/[ZixiStreamID]
Add Endpoint
Request:
Note: Maximum number of endpoints is 10.
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid><!-- REQUIRED -->
    <userkey>[UserKey]</userkey><!-- REQUIRED -->
    <type>[all|rtmp|zixi]</type>
    <action>AddStreamEndpoint</action>
</query>
Field Name Allowed Values Default Values
type
Type of Endpoint credentials used in response.
all, rtmp, zixi all

Response:
<?xml version="1.0"?>
<response>
    <endpoint>
        <rtmp>
            <url>rtmp://stream.encoding.com/live/[EndpointToken]</url>
            <credentials>
                <host>stream.encoding.com</host>
                <port>1935</port>
                <app_name>live</app_name>
                <stream>[EndpointToken]</stream>
            </credentials>
        </rtmp>
        <zixi>
            <url>zixi://stream.encoding.com/live/[ZixiStreamID]</url>
            <credentials>
                <host>stream.encoding.com</host>
                <port>2088</port>
                <channel_name>[ZixiStreamID]</channel_name>
                <password>[ZixiPassword]</password>
            </credentials>
        </zixi>
    </endpoint>
</response>
Get Endpoints
Request:
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid><!-- REQUIRED -->
    <userkey>[UserKey]</userkey><!-- REQUIRED -->
    <action>GetStreamEndpointList</action>
    <type>[all|rtmp|zixi]</type>
</query>
Field Name Allowed Values Default Values
type
Type of Endpoint credentials in response.
all, rtmp, zixi all

Response:
<?xml version="1.0"?>
<response>
    <endpoint>
        <status>[inactive|online]</status>
        <rtmp>
            <url>rtmp://stream.encoding.com/live/[EndpointToken]</url>
            <credentials>
                <host>stream.encoding.com</host>
                <port>1935</port>
                <app_name>live</app_name>
                <stream>[EndpointToken]</stream>
            </credentials>
        </rtmp>
        <zixi>
            <url>zixi://stream.encoding.com/live/[ZixiStreamID]</url>
            <credentials>
                <host>stream.encoding.com</host>
                <port>2088</port>
                <channel_name>[ZixiStreamID]</channel_name>
                <password>[ZixiPassword]</password>
            </credentials>
        </zixi>
    </endpoint>
</response>
Delete Endpoint
Request:
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid><!-- REQUIRED -->
    <userkey>[UserKey]</userkey><!-- REQUIRED -->
    <action>DeleteStreamEndpoint</action>
    <endpoint>[EndpointURL]</endpoint>
</query>

Response:
<?xml version="1.0"?>
<response>
    <success>Endpoint is deleted!</success>
</response>

4 April 2016 - Vid.ly Live

Add <vidly_live> option to make Vid.ly short URL for your translation. There would be created 3 HLS streams(480p, 720p and 1080p)

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <source>[RTMPSourceURL]</source><!-- REQUIRED -->
    <format>
        <output>live_hls</output>
        <vidly_live />
    </format>
</query>
  • Short url settings will be available in Vidly UI tab.
  • By default The JW Player 7 ADS Edition would be used for your translation.
  • You should specify <destination> if you want to add custom <stream>
  • If you specify additional <destination>, but no custom <stream>, we will upload Vidly's streams to your destination.
  • If you specify additional <destination>, and custom <stream>, we will upload only custom streams to your destination.
  • VOD HLS video would be accessible at created Vid.ly after Live Transcoding process finished.

11 March 2016 WebVTT segment duration

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <closed_captions>
            <source>[WebVTTCCSource]</source>
            <mux_type>webvtt</mux_type>
            <vtt_segment_duration>[SegmentDuration]</vtt_segment_duration>
        </closed_captions>
    </format>
</query>
Field Name Allowed Values Default Values
vtt_segment_duration
Sets segments duration for WebVTT Closed Captions.
positive integer None('segment_duration' would be used)

9 February 2016 Ken Burns slideshow

You can add Ken Burns effect for images in slideshow.

You just need to specify starting and ending frames and duration.

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <source>[SlideSource]?effect=kenburns&amp;direction=[EffectDirection]&amp;size=[SlideSize]&amp;duration=[Duration]&amp;transition=[on|off]</source>
    <source><!-- next slides --></source>
    <slideshow>1</slideshow>
    <format>
        <output>[OutputFormat]</output>
        <size>[OutputSize]</size>
    </format>
</query>

Source params description

Parameter Name Description Allowed Values
direction Effect description [StartX],[StartY],[StartWidth];[EndX],[EndY],[EndWidth]
StartX Left coordinate of the starting frame Positive Integer(in pixels)
StartY Top coordinate of the starting frame
StartWidth Starting frame width. Height would be calculated automatically.
EndX Left coordinate of the ending frame
EndY Top coordinate of the ending frame
EndWidth Ending frame width. Height would be calculated automatically.
Examples:
1. Image: 800x600; Starting frame width: 600; 10% zoom out from center. direction=100,75,600;70,53,660
2. Image: 800x600; Starting frame width: 600; 10% zoom in from center. direction=100,75,600;130,98,540
3. Image: 800x600; Starting frame width: 600; Move from left top corner to right bottom corner w/o zoom. direction=0,0,600;200,150,600
4. Image: 800x600; Starting frame width: 600; Frame at left side vertically centered zoom out to fill width. direction=0,75,600;0,0,800
size Resulting frame size [Width]x[Height]
duration Effect duration Positive integer(in seconds)
transition Enable fade transition between slides on,off

1 February 2016 S3 NetApp

S3 NetApp media source

Source media file. Must be specified only for AddMedia and AddMediaBenchmark actions.
It can be in the following formats:

Source type Description
S3 NetApp

s3://[KEY[:SECRET]@]hostname[:PORT]/[path]

S3 NetApp output destination

Source media file. Must be specified only for AddMedia and AddMediaBenchmark actions.
It can be in the following formats:

Destination type Description
S3 NetApp

s3://[KEY[:SECRET]@]hostname[:PORT]/[path]

14 January 2016 - Live Transcoding

Note: This feature is currently in 'public beta'. The usage price is $1/GB during the beta period.

RTMP media source

Source type Description
RTMP

rtmp://[user[:password]@]hostname[:port]/[path]

New output format 'live_hls'

Our live hls transcoding outputs are similar to our Advanced HLS outputs.
However, there are several requirements specific to our live capabilities:

  1. Please use only one 'live_hls' output in your API request!
  2. All Source Media Locations must be a valid RTMP-stream.
  3. Any additional media sources would be used as backup source. Transcoding will be switched to the next source after a 30 second timeout.
  4. A timeout longer than 10 minutes will end transcoding.
  5. These features are not available for output:
    • main_source
    • alternate_source
    • fade_in
    • fade_out
    • burnin_timecode
    • audio_normalization
    • copy_nielsen_metadata
    • closed_captions
    • audio_overlay
    • pack_files
  6. These features are not available for live output:
    • 'Dolby Digital +'(eac3) audio codec
    • fade_in
    • fade_out
    • burnin_timecode
    • audio_normalization
    • copy_nielsen_metadata
    • closed_captions
    • audio_overlay
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>live_hls</output>
        <stream>
            <!-- Video settings params -->
            <!-- Audio settings params -->
            <audio_codec>[libfaac|ac3|libmp3lame|copy]</audio_codec>
            <!-- Other format params -->
            <!-- Closed Captions params -->
            <!-- Editing features params -->
        </stream>
        <!-- Multiple stream params may be included in live_hls output format -->
        <!-- Maximum number of available streams is 15 -->
        <stream>
           <!-- stream params -->
        </stream>
        <!-- Format fields -->
        <add_event_manifest>[yes|no]</add_event_manifest>
        <manifest_size>[Size]</manifest_size>
        <manifest_offset>[Offset]</manifest_offset>
        <destination>[DestFile]</destination><!-- REQUIRED -->
    </format>
</query>
Field Name Allowed Values Default Values
Format params
add_event_manifest
Adds EVENT-type playlist. Event playlists will have filenames that include *.event.m3u8
yes, no no
manifest_size
Number of chunks in LIVE playlist
Positive integer 5
manifest_offset
Number of chunks that would be transcoded before playlist is uploaded
Positive integer 3
Stream params
If no streams were specified, 9 default streams with parameters recommended by Apple will be used.
Maximum number of available streams is 15
Aceptable params from:
audio_codec
Audio codec
libfaac, ac3, libmp3lame libfaac

Akamai Live HLS Ingest

Destination type Description
Akamai Live HLS Ingest

http://post.[Account].akamaihd.net/[StreamID]/[StreamName]/playlist.m3u8

You can read the full instructions for using Akamai Live HLS Ingest at our Knowledge Base.

Live to 'VOD' transcoding

VOD playlists (*.vod.m3u8) will be automatically uploaded to your destination when the Live Transcoding process is finished(using the 'StopLive' request, 'Stop' request, or after error).
Our full suite of VOD features is available for your VOD outputs, just add them to your API request.
In addition, you can specify VOD-only outputs without adding the 'live_hls' output.

Note: 'Harmonic' outputs are not supported as a VOD output for HLS.
Note: VOD processing will be started after the 'StopLive' event occurs.
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action><!-- REQUIRED -->
    <source>[RTMPSourceURL]</source><!-- REQUIRED -->
    <!-- OPTIONAL live_hls OUTPUT -->
    <format>
        <output>live_hls</output>
        <destination>[DestFile]</destination><!-- REQUIRED -->
    </format>
    <format>
        <output>[VODOutput]</output>
    </format>
</query>

StopLive API request

To stop the Live Transcoding process you need to send API requests with specified Media ID and the 'StopLive' API parameter

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid><!-- REQUIRED -->
    <userkey>[UserKey]</userkey><!-- REQUIRED -->
    <action>StopLive</action>
    <mediaid>[MediaID]</mediaid><!-- REQUIRED -->
</query>

Retranslation Endpoints

If you don't have an RTMP broadcasting server, you can use our Retranslation Endpoint service.
To use it you need to use the Endpoint URL, set it as the endpoint in your streaming tool, and set it as Media Source in your API request

Endpoint URL Syntax:
rtmp://rtmp.encoding.com/[EndpointToken]

Add Endpoint
Note: Maximum number of endpoints is 10.
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid><!-- REQUIRED -->
    <userkey>[UserKey]</userkey><!-- REQUIRED -->
    <action>AddStreamEndpoint</action>
</query>

Get Endpoints
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid><!-- REQUIRED -->
    <userkey>[UserKey]</userkey><!-- REQUIRED -->
    <action>GetStreamEndpointList</action>
</query>

Delete Endpoints
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid><!-- REQUIRED -->
    <userkey>[UserKey]</userkey><!-- REQUIRED -->
    <action>DeleteStreamEndpoint</action>
    <endpoint>[EndpointURL]</endpoint>
</query>

Live transcoding notifications

Add new 'notify_live_start' parameter.

Notify_live_start

This can be either an HTTP(S) URL for the script or a 'mailto' link using the email address to send notifications when the live stream is ready for playback.

Callback Format for notify_live_start
<?xml version="1.0"?>
<result>
    <mediaid>[MediaID]</mediaid>
    <taskid>[TaskID]</taskid>
    <destination>[DestinationLink]</destination>
    <status>[LiveStatus]</status>
</result>
Field Description
MediaID

A unique identifier of the media

TaskID

A unique identifier of the task

DestinationLink

A link to destination where task was uploaded

DestinationStatus

This is the status of your live transcoding task.
It can be one of these statuses: Open, Live, Stopped

24 December 2015 directpred video codec option

Added new video codec parameter directpred
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <video_codec_parameters>
            <directpred>[0|1|2|3]</directpred>
        </video_codec_parameters>
    </format>
</query>
Option Name Allowed Values Default Values
directpred
Set direct MV prediction mode.
0 — none,
1 — spatial,
2 — temporal,
3 — auto
main, high, baseline, smooth_streaming — 1,
roku — 3

25 November 2015 add_audio_only for Microsoft Smooth Streaming

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>smooth_streaming</output>
        <add_audio_only>[yes|no]</add_audio_only>
    </format>
</query>
Field Name Allowed Values Default Values
add_audio_only
Add standalone isma file with audio stream.
yes, no no

16 November 2015. DAI hls ad breaks

Added ability to add ad breaks to advanced_hls output format.
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>advanced_hls</output>
        <stream>
           <!-- stream params -->
        </stream>
        <!-- multiple ad_breaks may be included -->
        <ad_break>
           <start>[StartTime]</start>
           <duration>[BreakDuration]</duration>
           <drop_segments>[yes|no]</drop_segments>
        </ad_break>
        <ad_break>
           <!-- ad_break params -->
        </ad_break>
        <!-- Format fields -->
    </format>
</query>
Field Name Allowed Values Default Values
Ad breaks params
start
Start ad break time in sec.
non-negative integer number  
duration
Ad break duration in sec.
non-negative integer number  
drop_segments
Whether to drop segments while break(skip original content while break)
yes, no  

8 October 2015 eac3 codec support

Added support of 'eac3' audio codec for the output formats: 'm4a', 'mp4', 'wowza', 'roku_*', 'kindle_fire', 'wowza_multibitrate', 'wowza_multibitrate_mp4', 'roku_hls', 'hds'.
Field Name Allowed Values Default Values
audio_codec

Audio codec

m4a: libfaac, dolby_aac, dolby_heaac, dolby_heaacv2, eac3
mp4: libfaac, dolby_aac, dolby_heaac, dolby_heaacv2, ac3, eac3
wowza, roku_*, kindle_fire: libfaac, dolby_aac, dolby_heaac, dolby_heaacv2, eac3
wowza_multibitrate, wowza_multibitrate_mp4, roku_hls, hds: libfaac, dolby_aac, dolby_heaac, dolby_heaacv2, eac3
libfaac

24 September 2015 Audio multitrack settings and new video codec for MXF

MXF `imx30` video codec

Field Name Allowed Values Default Values
video_codec
Video codec
mxf: dvcpro, dvcpro50, dvcprohd, xdcamhd422, imx30 mxf: xdcamhd422

Audio multitrack settings

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <audio_stream>
            <use_stream_id>[Source media audio stream ID]</use_stream_id><!-- REQUIRED -->
            <language>[ISO639-2 language identifier]</language>
            <!-- Common audio settings -->
        </audio_stream>
        <!-- multiple audio streams -->
        <audio_stream>
            <!-- audio stream params -->
        </audio_stream>
    </format>
</query>
Field Name Allowed Values Default Values
(required) use_stream_id
Source media stream ID
Non negative integer number By default # of <audio_stream> param will be used.
language
Track language
A language code in 3 lowercase letters according to ISO639-2  

'use_stream_id' param usage example

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <audio_stream> <!-- Audio stream #0 -->
            <use_stream_id>1</use_stream_id><!-- Will be used #1 stream from the source media -->
        </audio_stream>
        <audio_stream> <!-- Audio stream #1 -->
            <use_stream_id>0</use_stream_id><!-- Will be used #0 stream from the source media -->
        </audio_stream>
        <audio_stream> <!-- Audio stream #2 -->
            <!-- Will be used #2 stream from the source media -->
        </audio_stream>
    </format>
</query>

19 August 2015 EU(Frankfurt) AWS region

Added support of the EU(Frankfurt) region(eu-central-1)

Processing Region

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <region>eu-central-1</region> 
    <format> 
    <!-- Format options -->
    </format> 
</query>
Option Location
eu-central-1 EU (Frankfurt)

Source location / Output destination

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <!-- Media options -->
    <source>http://[bucket].s3-eu-central-1.amazonaws.com/[filename]</source> 
    <format> 
        <destination>http://[bucket].s3-eu-central-1.amazonaws.com/[filename]</destination> 
    <!-- Format options -->
    </format> 
</query>

6 August 2015 DMG: downmix coefficients, repair options, and alerts

Repair options

Field Name Allowed Values Default Values
dc_repair
Corrects a DC offset
yes, no no
phase_repair
Corrects a phase difference between the L and R channels
yes, no no

DMG alerts

Field Name Allowed Values Default Values
dmg_alerts
Alerts provide information about a particular defect to the standard output. Silent Channel, DC Offset or Out of Phase Channel, for example
yes, no no

Downmix coefficients

Field Name Allowed Values Default Values
dmix_center_level
Sets Lt/Rt and Lo/Ro downmix(5.1-to-stereo) levels for the central channel.
+3.0, +1.5, 0.0, –1.5, –3.0, –4.5, –6.0, and –inf. –3.0
dmix_center_level_ltrt
Overrides the Lt/Rt downmix level setting for the central channel when <dmix_center_level> is used.
+3.0, +1.5, 0.0, –1.5, –3.0, –4.5, –6.0, and –inf. –3.0
dmix_center_level_loro
Overrides the Lo/Ro downmix level setting for the central channel when <dmix_center_level> is used.
+3.0, +1.5, 0.0, –1.5, –3.0, –4.5, –6.0, and –inf. –3.0
dmix_surround_level
Sets Lt/Rt and Lo/Ro downmix(5.1-to-stereo) levels for Ls and Rs channels.
–1.5, –3.0, –4.5, –6.0, and –inf. –3.0
dmix_surround_level_ltrt
Overrides the Lt/Rt downmix level setting for Ls and Rs channels when <dmix_surround_level> is used.
–1.5, –3.0, –4.5, –6.0, and –inf. –3.0
dmix_surround_level_loro
Overrides the Lo/Ro downmix level setting for Ls and Rs channels when <dmix_surround_level> is used.
–1.5, –3.0, –4.5, –6.0, and –inf. –3.0
The metadata does not contain downmix coefficients when the encoded audio is stereo.

18 June 2015 DMG Loudness control

Added new audio settings for loudness control:
Field Name Allowed Values Default Values
loudness_mode
Content loudness calculation mode for Dolby Media Generator
1770-2-di - level gated loudness measurement with optional speech gating
1770-1-di - ungated loudness measurement with optional speech gating
1770-2 - level gated loudness measurement
None
input_speech
Force enable/disable speech detection for Dolby Media Generator
yes, no None
audio_normalization
Target loudness for Dolby Media Generator
-31–0 or 1–100% None
dialnorm_threshold
Dialnorm threshold for Dolby Media Generator
one or two comma separated positive float numbers less than 99.9 None
input_dialnorm
Dialnorm value for Dolby Media Generator. Should be used in case input dialnorm already measured. Can't be used with audio_normalization option.
-31–-1 None
adjust_gain_for_dialnorm
Apply a gain or attenuation to the audio signal so that loudness of the output audio signal is corrected to equal the value specified by input metadata
yes, no None
clipmode
Clipmode for Dolby Media Generator
scale, prolimit, hard None
prolimiter_max_peak
Set maximum peak sample value allowed at the limiter output. Allowed only for prolimiter clipmode
-20.0–-0.1 None

2 June 2015 Changed Brightcove manifest

API request

Now default output format is mp4

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <source>http://yoursite.com/media.mov</source>
    <resend_to>http://manage.encoding.com/third_party/brightcove/add_media.php</resend_to>
    <notify>http://manage.encoding.com/third_party/brightcove/add_manifest.php</notify>
    <title>Your media title</title>
    <description>Short description of the media</description>
    <long_description>
        Put
        Long description
        Of the Media Here
    </long_description>
    <bc_userid>12345</bc_userid>
    <bc_mediaid>12345</bc_mediaid>
    <notify_email>user@mail.com</notify_email>
    <link_title>Link title</link_title>
    <link_url>http://encoding.com</link_url>
    <active>true</active>
    <tag>tag's content</tag>
    <format>
        <output>mp4</output>
        <destination>ftp://user:password@ftp.brightcove.com/encoded/media.mp4</destination>
    </format>
</query>

The manifest file format

Changed value of the 'type' attribute from 'FLV_FULL' to 'VIDEO_FULL'

Replaced the 'flash-full-refid' attribute with 'video-full-refid'

<?xml version="1.0" encoding="utf-8"?>
<publisher-upload-manifest publisher-id="{bc_userid}" preparer="encoding.com" report-success="TRUE">
    <notify email="{notify_email}"/>
    <asset filename="{result_filename}" refid="{result_filename}-{md5_hash}" size="{file_size}" hash-code="{md5_hash}" type="VIDEO_FULL"/>
    <title name="{title}" refid="{bc_mediaid}" active="{active}" video-full-refid="{result_filename}-{md5_hash}">
        <short-description>{description}</short-description>
        <long-description>{long_description}</long-description>
        <related-link-url>{link_url}</related-link-url>
        <related-link-text>{link_title}</related-link-text>
        <rendition-refid>{result_filename}-{md5_hash}</rendition-refid>
        <tag>tag's content</tag>
    </title>
</publisher-upload-manifest>

30 April 2015 Dolby Digital Plus and playlist_version

Dolby Digital Plus

Audio settings

'eac3' codec support:
Field Name Allowed Values Default Values
audio_codec

Audio codec

smooth_streaming: libfaac, dolby_aac, dolby_heaac, dolby_heaacv2, eac3
advanced hls stream: libfaac, dolby_aac, dolby_heaac, dolby_heaacv2, ac3, eac3, libmp3lame(only for 'v3' segmenter)
mpegts: ac3, eac3
mpegdash: libfaac, eac3
smooth_streaming: libfaac
advanced hls stream: libfaac
mpegdash: libfaac
mpegdash: libfaac
mpegts: ac3

New 'downmix_mode' option:
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <downmix_mode>[pl2|loro]</downmix_mode>
    </format>
</query>
Field Name Allowed Values Default Values
downmix_mode
Downmix mode for Dolby Media Generator
pl2 - Downmixing from 5.1 (6 channel) or 7.1 (8 channel) using Dolby Pro Logic II encoding (2 channel)
loro - Convert Dolby 5.1 (6 channel) or 7.1 (8 channel) to stereo (2 channel)
pl2

Advanced HLS

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>advanced_hls</output>
        <segmenter>[v1|v2|v3|dolby_segmenter]</segmenter>
    </format>
</query>
Field Name Allowed Values Default Values
segmenter
Type of segmenter.
v1 – This is the segmenter bundled with FFMPEG and carries significant overhead (as much as 27% with a 364kbps file or 17.3% with a 864kbps file!), and generated several warnings.
v2 - This is based on HTTP Live Segmenter tool. It carries with it the same overhead, but generates far fewer warnings.
v3 - This version, called tsparser, was built in-house from the ground up to be optimized for our cloud infrastructure. This has significantly less overhead (5.8% with a 364kbps file or 3.8% with a 864kbps file), and does not generate any warnings.
dolby_segmenter - Dolby Media Generator segmenter(dolby_segmenter) will update libfaac audio codec to dolby_aac, when the libfaac codec is specified. When 'copy' is specified as the audio_codec then the source audio codec will be used. In case iframe stream requested then v3 segmenter wil be used.
v3

MPEG-DASH

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>mpeg_dash</output>
        <dash_profile>[full|ondemand|live|hbbtv]</dash_profile>
    </format>
</query>
Field Name Allowed Values Default Values
dash_profile
Dolby Segmenter profile
full — old mpeg dash output
ondemand — onDemand profile
live — Live profile
hbbtv — HbbTV profile
full

Microsoft Smooth Streaming

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>smooth_streaming</output>
        <segmenter>[v1|dolby_segmenter]</segmenter>
    </format>
</query>
Field Name Allowed Values Default Values
segmenter
Type of segmenter.
v1 – old segmenter.
dolby_segmenter - Dolby Media Generator segmenter
v1

playlist_version param

Apple's HTTP Live Streaming

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>[iphone_stream|ipad_stream]</output>
        <playlist_version>[Valid EXT-X-VERSION]</playlist_version>
    </format>
</query>
Field Name Allowed Values Default Values
playlist_version
Version of m3u8 playlist file
Integer(EXT-X-VERSION) None

Advanced HLS and Apple TV

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>[advanced_hls|appletv|appletv_43]</output>
        <playlist_version>[Valid EXT-X-VERSION]</playlist_version>
        <stream>
            <!-- Stream fields -->
            <playlist_version>[Valid EXT-X-VERSION]</playlist_version>
        </stream>
    </format>
</query>
Field Name Allowed Values Default Values
playlist_version
Version of m3u8 playlist file
Integer(EXT-X-VERSION) None

20 April 2015 Apple TV outputs

appletv and appletv_43 are output formats based on advanced_hls with predefined sets of streams.

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>[appletv|appletv_43]</output>
        <duration_precision>3</duration_precision>
        <stream>
            <!-- Predefined set of streams -->
        </stream>
        <main_source>
            <type>video</type>
        </main_source>
        <alternate_source>
            <type>audio</type>
            <audio_name>audio 1</audio_name>
        </alternate_source>
    </format>
</query>
Field Name Allowed Values Default Values
Format params
output appletv: preset for screens with 16:9 resolution
appletv_43: preset for screens with 4:3 resolution
duration_precision
Sets number of decimal points for duration in playlist file.
integer 3
Stream params
List of predefined set of streams

02 April 2015 Harmonic JSON API

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>harmonic_json</output>
        <preset_file_transcode>[PresetFileURL]</preset_file_transcode> <!-- REQUIRED -->
        <preset_file_transcode_2>[PresetFileURL]</preset_file_transcode_2>
        <preset_file_multiplex>[PresetFileURL]</preset_file_multiplex>
        <!-- Destination fields -->
        <destination>[DestFile]</destination> <!-- REQUIRED -->
    </format>
</query>
Field Name Allowed Values Default Values
preset_file_transcode
Harmonic transcode preset file
Valid URL  
preset_file_transcode_2
Harmonic transcode preset file for second pass
Valid URL  
preset_file_multiplex
Harmonic multiplex preset file
Valid URL  

Note (02.04.2015): We don't pack into tar archive multiple output files.

16 February 2015.

Widevine DRM packager.

Available for output formats: mpeg_dash.

Additional information: http://www.widevine.com/wv_drm.html

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <widevine>yes</widevine>
        <widevine_key_server_url>[Key server URL(https:// only)]</widevine_key_server_url>
        <widevine_aes_signing_key>[AES signing key(HEX)]</widevine_aes_signing_key>
        <widevine_aes_signing_iv>[AES signing initialization vector(HEX)]</widevine_aes_signing_iv>
        <widevine_signer>[Signer name]</widevine_signer>
        <widevine_content_id>[Content ID]</widevine_content_id>
    </format>
</query>
Field Name Allowed Values Default Values
widevine
use Widevine DRM
yes, no no
widevine_key_server_url
Key server URL
Valid URL None
widevine_aes_signing_key
AES key
32 HEX chars None
widevine_aes_signing_iv
AES initialization vector
32 HEX chars None
widevine_signer
Signer name
String None
widevine_content_id
Content ID
String None

Output encryption.

Supported by all formats except iphone_stream, ipad_stream, roku_hls and advanced_hls formats(these formats have own encryption implementation).

Destination required for encryption without specifying encryption_key or encryption_key_file.
Key used for encryption would be uploaded to the same destination as output file, with .key extension.

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <encryption>[yes|no]</encryption>
        <encryption_method>[aes-128-cbc|aes-128-ctr|aes-256-cbc|aes-256-ctr]</encryption_method>
        <encryption_key>[Hexidecimal string]</encryption_key>
        <encryption_key_file>[URL]</encryption_key_file>
        <encryption_iv>[Hexidecimal string]</encryption_iv>
        <encryption_password>[Password]</encryption_password>
    </format>
</query>
Field Name Allowed Values Default Values
encryption
Encrypt output file
yes, no no
encryption_method
Encryption method
aes-128-cbc, aes-128-ctr, aes-256-cbc, aes-256-ctr aes-128-cbc
encryption_key
Encryption key
32 hexidecimal characters ([0-9a-f]) None
encryption_key_file
Encryption key file URL
Valid URL to encryption key file None
encryption_iv
Encryption initialization vector
32 hexidecimal characters ([0-9a-f]) None
encryption_password
Password use for initialization vector generation
any set of characters None

Source media decryption.

You can use encrypted source files for your media - just add following decryption params to the <query> container.

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <source>[FileURL]</source>
    <decryption>[yes|no]</decryption>
    <decryption_method>[aes-128-cbc|aes-128-ctr|aes-256-cbc|aes-256-ctr]</decryption_method>
    <decryption_key>[Hexidecimal string]</decryption_key>
    <decryption_key_file>[URL]</decryption_key_file>
    <decryption_iv>[Hexidecimal string]</decryption_iv>
    <decryption_password>[Password]</decryption_password>
    <format>
        <!-- Format Fields -->
    </format>
</query>
Field Name Allowed Values Default Values
decryption
Encrypt output file
yes, no no
decryption_method
Decryption method
aes-128-cbc, aes-128-ctr, aes-256-cbc, aes-256-ctr aes-128-cbc
decryption_key
Decryption key
32 hexidecimal characters ([0-9a-f]) None
decryption_key_file
Decryption key file URL
Valid URL to decryption key file None
decryption_iv
Decryption initialization vector
32 hexidecimal characters ([0-9a-f]) None
decryption_password
Password use for initialization vector generation
any set of characters None

Alpha-transparent video overlay

Added support of 'RLE(qtrle)' video format for video overlay.

Harmonic GRID encoder

Added option to disable GRID encoder for Harmonic format

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>harmonic</output>
        <!-- harmonic preset options -->
        <use_grid_encoder>[yes|no]</use_grid_encoder> 
    </format>
</query>
Field Name Allowed Values Default Values
use_grid_encoder
Use GRID encoder
*The GOP structure may be changed to "variable" while using GRID encoder
yes, no yes

21 January 2015

Auto audio_sync

Field Name Allowed Values Default Values
audio_sync
It adjusts the audio stream to match the timestamps, in # of samples per second. 1 is special value that means automatic.
positive integer or auto if you want us to handle audio synchronization issues None

Slices

Field Name Allowed Values Default Values
slices
Number of slices, used in parallelized encoding.
Positive integer None

Additional image2image params

Field Name Allowed Values Default Values
gravity
Sets the current gravity suggestion for various other options
northwest, north, northeast, west, center, east, southwest, south, southeast None
shave
Shave pixels from the image edges
WxH None
unsharp_radius
The radius of the Gaussian
In pixels, not counting the center pixel, should be larger than unsharp_sigma. Use a radius of 0 to have the method select a suitable radius. None
unsharp_sigma
The standard deviation of the Gaussian
In pixels 1.0
unsharp_gain
The fraction of the difference between the original and the blur image that is added back into the original
Float 1.0
unsharp_threshold
The threshold, as a fraction of QuantumRange, needed to apply the difference amount
Float 0.05

25 december 2014 more features for Advanced HLS and MJPEG codec.

MJPEG codec support for MOV format

Field Name Allowed Values Default Values
video_codec
Video codec
mov: mpeg4, libx264, xdcam, dvcpro, dvcpro50, dvcprohd, mjpeg
mp4, m4v,appletv, psp, android, mov: mpeg4

Main and Alternare source

This feature allows a provider to specify one of a set of variant playlists as an "override" of the main presentation. The client will only play the override media (audio or video), and suppress any media of the same type from the main presentation, if present. This allows a presentation to offer multiple versions of the media without requiring the provider to store duplicate media, or requiring the client download all variants when it only needs one. It also allows additional media to be offered subsequently without remastering the original content. Read more at Apple dev technote

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>advanced_hls</output>
        <stream>
            <!-- stream params -->
            <group_id>[GroupID]</group_id>
        </stream>
        <stream>
            <!-- stream params -->
            <use_group_id>[CommaSeparatedList]</use_group_id>
        </stream>
        <!-- Main/alternate source fields -->
        <main_source>
            <type>[video_audio|video|audio]</type>
            <video_name>[Name]</video_name>
            <audio_name>[Name]</audio_name>
            <use_stream_id>[CommaSeparatedList]</use_stream_id>
        </main_source>
        <alternate_source>
        <!-- multiple alternate_sources may be included -->
            <source>[FileURL]</source>
            <type>[video_audio|video|audio]</type>
            <video_name>[Name]</video_name>
            <audio_name>[Name]</audio_name>
            <use_stream_id>[CommaSeparatedList]</use_stream_id>
        </alternate_source>
    </format>
</query>
Field Name Allowed Values Default Values
Stream params
group_id
Alternate group id based on current stream.
String  
use_group_id
Specifies group id list to use as alternate for current stream.
Comma separated group_id list  
Main source params
type
Sets for which stream types source will be used
video – for NOT audio_only streams
audio - for audio_only streams
video_audio - for all streams
video_audio
video_name
Name of main source video stream
string  
audio_name
Name of main source audio stream
string  
use_stream_id
Sets which source's stream will be used.
Comma separated list of stream ids  
ALternate source params
source
URL to alternate source file. Optional. If not exists main source link will be used as alternate source
Valid URL to alternate source file  
type
Sets for which stream types source will be used
video – for NOT audio_only streams
audio - for audio_only streams
video_audio - for all streams
video_audio
video_name
Name of alternate source video stream
string  
audio_name
Name of alternate source audio stream
string  
use_stream_id
Sets which source's stream will be used.
Comma separated list of stream ids  

Changes in stream and format params

New audio codec

Added new 'ac3' audio codec for streams.

Byte-range

You can now specify a media segment as a byte range (subrange) of a larger URL. This allows you to consolidate your media segments into larger files or a single large file. The primary benefit of this is when a client is playing your media, rather than downloading each successive segment file from a different location, it is actually walking through a larger file in sequence. Read more at Apple dev technote

I-Frame playlist

iOS 5 now supports Fast Forward and Reverse Playback. However, you don't need to produce special purpose content to support Fast Forward and Reverse Playback. All you need to do is specify where the I-Frames are. I-Frames, or Intra frames, are encoded video frames whose encoding does not depend on any other frame. To specify where the I-Frames are, iOS 5 introduces a new I-Frame only playlist. Read more at Apple dev technote

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>advanced_hls</output>
        <stream>
            <audio_codec>[ac3|default audio codecs for streams]</audio_codec>
            <byte_range>[yes|no]</byte_range>
            <add_iframe_stream>[yes|no]</add_iframe_stream>
            <video_only>[yes|no]</video_only>
        </stream>
        <duration_precision>[Number]</duration_precision>
    </format>
</query>
Field Name Allowed Values Default Values
Format params
duration_precision
Sets number of decimals after point for duration in playlist file.
integer 0
Stream params
byte_range
Use byte-range playlist - do not split mpeg-ts file to segments
yes, no no
add_iframe_stream
Add i-frame playlist for this stream (allowed only for video)
yes, no no
audio_only
Result segments will contain only audio stream
yes, no no

13 November 2014 - Nielsen metadata and copy_timestamps

Nielsen metadata

You can change settings of Nielsen metadata for mp4, iphone_stream, ipad_stream and advanced_hls output formats.
Field Name Allowed Values Default Values
copy_nielsen_metadata
Copy Nielsen audio watermarks and Nielsen ID3 tags from source
yes, no no
nielsen_breakout_code
Nilesen breakout code
00 — Live content with same TV ads. Original simulcast content with same ad-load.
03 — Content with same TV ads for 3 days. Content with original ad-load for at least 3 days.
07 — Content with same TV ads for 7 days. Content with original ad-load for at least 7 days.
09 — Content without same TV ads. Content with changed/added ad-load. FOR DIGITAL PROGRAM RATING ONLY.
 
nielsen_distributor_id
Nielsen distributor id
Appropriate distributor ID  

copy_timestamps

Field Name Allowed Values Default Values
copy_timestamps
Do not process input timestamps, but keep their values without trying to generate them.
yes, no yes

30 October 2014 - S3 endpoints and S3 Content-Disposition header

Using specific S3 endpoints

To use specific endpoint in the media source or in the format destination replace 's3.amazonaws.com' in your S3 URL with one of the following:

  • us-east-1 — s3-external-1.amazonaws.com
  • us-west-2 — s3-us-west-2.amazonaws.com
  • us-west-1 — s3-us-west-1.amazonaws.com
  • eu-west-1 — s3-eu-west-1.amazonaws.com
  • ap-southeast-1 — s3-ap-southeast-1.amazonaws.com
  • ap-southeast-2 — s3-ap-southeast-2.amazonaws.com
  • ap-northeast-1 — s3-ap-northeast-1.amazonaws.com
  • sa-east-1 — s3-sa-east-1.amazonaws.com

Setting 'Content-Disposition' response header for S3 files

You can specify 'Content-Disposition' response header for S3 destination by setting it in 'content_disposition' param in GET query. For example:
http://[bucket].s3.amazonaws.com/[filename][?acl=public-read | authenticated-read]&content_disposition=attachment

01 September 2014 - OpenStack cloud storage support

Added suuport of OpenStack cloud storage support for <source> and <destination> fields.
URL type Description
OpenStack Cloud Storage

URL for Oracle cloud storage:

http(s)://[user[:password]@]storage.[region].oraclecloud.com/v1/[service-endpoint]/[container]/[object]

Swift tempauth(v1)

swift://[user[:password]@]hostname[:port]/v1/[tenant]/[container]/[object]

Swift identity (v2.0)

swift://[user[:password]@]hostname[:port]/v2.0/[tenant]/[container]/[object]

31 July 2014 - Advanced HLS and Notify_upload

Advanced HLS

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>advanced_hls</output>
        <stream>
            <!-- Video settings params -->
            <profile>[high|main|baseline]</profile>
            <!-- Audio settings params -->
            <!-- Other format params -->
            <!-- Closed Captions params -->
            <!-- Editing features params -->
            <audio_only>[yes|no]</audio_only>
            <still_image>[no|each_segment|first_segment]</still_image>
            <still_image_time>[Time]</still_image_time>
            <still_image_size>[Size]</still_image_size>
        </stream>
        <!-- multiple stream params may be included in advanced_hls output format -->
        <stream>
           <!-- stream params -->
        </stream>
        <!-- Format fields -->
        <segment_duration>[Duration]</segment_duration>
        <pack_files>[yes|no]</pack_files>
        <pack_type>[tar|zip]</pack_type>
        <pack_each_stream>[yes|no]</pack_each_stream>
        <encryption>[yes|no]</encryption>
        <encryption_key>[128bit-key]</encryption_key>
        <encryption_key_file>[SourceURL]</encryption_key_file>
        <copy_nielsen_metadata>[yes|no]</copy_nielsen_metadata>
        <segmenter>[v1|v2|v3]</segmenter>
        <destination>[DestFile]</destination>
    </format>
</query>
Field Name Allowed Values Default Values
Format params
segment_duration Segment duration to split media (in seconds) Non-negative integer 9
pack_files Whether to pack resulting files to a single archive yes, no yes
pack_type Archive type tar, zip tar
Parameter would be ignored in case of pack_files=no
pack_each_stream Pack each stream in separate archive yes, no no
Parameter would be ignored in case of pack_files=no
encryption Encrypt TS segements using AES-128 yes, no no
encryption_key Encryption key 32 hexidecimal characters ([0-9a-f]) None
encryption_key_file link to encryption key file Valid URL None
copy_nielsen_metadata Copy Nielsen audio watermarks and Nielsen ID3 tags from source yes, no none
segmenter Type of segmenter. v1 – This is the segmenter bundled with FFMPEG and carries significant overhead (as much as 27% with a 364kbps file or 17.3% with a 864kbps file!), and generated several warnings. v2 - This is based on HTTP Live Segmenter based tool. It carries with it the same overhead, but generates far fewer warnings. v3 - his version, we call tsparser, we built in-house from the ground up to be optimized for our cloud infrastructure. This has significantly less overhead (5.8% with a 364kbps file or 3.8% with a 864kbps file), and does not generate any warnings. v3
Stream params
Aceptable params from:
audio_only Result segments will contain only audio stream yes, no no
still_image Embed still image in the audio-only stream no, each_segment, first_segment no
still_image_time The time from the beginning of segment to capture still image Non-negative number greater than 0.01 or hh:mm:ss.ms None
still_image_size The size of the still image WxH where W and H — positive integers None
base_name Custom stream result file name valid filename None

Notify_upload

Can be either an HTTP(S) URL for the script or a mailto: link with email address for which result info will be sent when media uploaded to the specified destination.
Note: for advanced_hls notify for each stream will be sent

Callback Format

<?xml version="1.0"?>
<result>
    <mediaid>[MediaID]</mediaid>
    <taskid>[TaskID]</taskid>
    <destination>[DestinationLink]</destination>
    <status>[DestinationStatus]</status>
</result>
Field Description
MediaID A unique identifier of the media
TaskID A unique identifier of the task
DestinationLink A link to destination where task was uploaded
DestinationStatus A status of task
 

16 June 2014 - Apple HLS profile

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>[iphone_stream|ipad_stream]</output>
        <profile>[CommaSeparatedList]</profile>
        <bitrates>[CommaSeparatedList]</bitrates>
    </format>
</query>
Field Name Allowed Values Default Values
profile
Comma separated list of profiles
high, main, baseline baseline

 

17 April 2014 - Harmonic ProMedia Carbon

The Harmonic ProMedia Carbon transcoding engine is known for delivering the highest quality with support for broadcast formats including Apple ProRes, MPEG2-TS, DNxHD, XDCAM, and DVCPRO. This Harmonic transcoding engine is now available in our cloud infrastructure. All of your existing Harmonic workflow presets can be automated via our API and integrated seamlessly with the Harmonic WFS XML API.

Either <preset_file>, or <preset_guid> should be specified for harmonic output format

Harmonic preset file

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>harmonic</output>
        <preset_file>[HarmonicPresetUrl]</preset_file>
        <source_filter_1_file>[FileURL]</source_filter_1_file>
        <destination_filter_0_file>[FileURL]</destination_filter_0_file>
        <destination>[DestinationUrl]</destination> 
    </format>
</query>
Field Name Allowed Values
preset_file
Harmonic preset file.
*Only first destination module of Harmonic preset file will be used.
Valid URL to Harmonic preset file
source_filter_N_file
Source file for Source filter N in Harmonic preset file, where N is positive integer and equal to Source filter number.
Valid URL
destination_filter_N_file
Source file for Destination filter N in Harmonic preset file, where N is positive integer and equal to Destination filter number.
Valid URL

Source_filter_N_file/destination_filter_N_file parameters should be used only if filter requires sidecar source file as argument. For example, filter "Caption inject from .SCC file", requires sidecar SCC file

Harmonic preset GUID

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>harmonic</output>
        <preset_guid>[HarmonicPresetUrl]</preset_guid>
        <destination>[DestinationUrl]</destination> 
    </format>
</query>
Field Name Allowed Values
preset_guid
Harmonic preset GUID
*GUID of predefined Harmonic preset
GUID from list
You can view the full list of supported preset GUIDs.

10 April 2014

h265(hevc) video codec for MP4 container

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>mp4</output>
        <video_codec>hevc</video_codec>
        <video_codec_parameters>
            <refresh>1</refresh>
            <rc-lookahead>20</rc-lookahead>
            <b-adapt>2</b-adapt>
            <bframes>4</bframes>
            <b-pyramid>1</b-pyramid>
            <ref>3</ref>
            <ctu>64</ctu>
            <tu-intra-depth>1</tu-intra-depth>
            <tu-inter-depth>1</tu-inter-depth>
            <me>1</me>
            <subme>2</subme>
            <merange>60</merange>
            <max-merge>2</max-merge>
            <rect>1</rect>
            <amp>1</amp>
            <early-skip>0</early-skip>
            <fast-cbf>0</fast-cbf>
            <signhide>1</signhide>
            <lft>1</lft>
            <tskip>0</tskip>
            <sao>1</sao>
            <weightp>1</weightp>
            <tskip-fast>0</tskip-fast>
        </video_codec_parameters>
    </format>
</query>

Parameters Description

Field Name Allowed Values Default Values
Slice decision options
refresh
Intra refresh type
0 — none
1 — CDR
2 — IDR
1
rc-lookahead
Number of frames for frame-type lookahead
an integer less than or equal to 250 and greater than maximum consecutive bframes count 20
b-adapt
Adaptive B frame scheduling
0 — none
1 — fast
2 — full (trellis)
2
bframes
Maximum number of consecutive b-frames
integer from 0 to 16 4
b-pyramid
Use B-frames as references


0 — Disabled
1 — Enabled
1
ref
Max number of L0 references to be allowed
Values: integer from 0 to 16 3
weightp
Enable weighted prediction in P slices
0 — Disabled
1 — Enabled
1
Quad-tree analusis
ctu
Maximum CU size (width and height)
16,32,64 64
tu-intra-depth
Max TU recursive depth for intra CUs
1,2,3,4 1
tu-inter-depth
Max TU recursive depth for inter CUs
1,2,3,4 1
Motion search options
me
Motion search method
0 — dia
1 — hex
2 — umh
3 — star
4 — full
1
subme
Amount of subpel refinement to perform
integer from 0 to 7 (0: least ... 7: most) 2
merange
Motion search range
integer from 0 to 32768 60
max-merge
Maximum number of merge candidates
integer from 1 to 5 2
rect
Rectangual motions partitions Nx2N and 2NxN
0 — Disable
1 — Enable
1
amp
Asymmetric motion partitions (requires rect enabled)
0 — Disable
1 — Enable
1
early-skip
Enable early SKIP detection
0 — Disable
1 — Enable
0
fast-cbf
CBF fast mode
0 — Disable
1 — Enable
0
Rate control
rd
Level of RD in mode decision
0 — Least
1 — Lightweight RDO Analysis
0
signhide
Hide sign bit of one coeff per TU
0 — Disable
1 — Enable
1
Loop filter
lft
Loop filter
0 — Disable
1 — Enable
1
Intra options
tskip
Intra transform skipping
0 — Disable
1 — Enable
0
tskip-fast
Fast intra transform skipping
0 — Disable
1 — Enable
0
Sample Adaptive Offset loop filter
sao
Simple adaptive offset
0 — Disable
1 — Enable
1

Mpeg_dash output format

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>mpeg_dash</output>
        <bitrates>[CommaSeparatedList]</bitrates>
        <sizes>[CommaSeparatedList]</sizes>
        <pack_files>[yes|no]</pack_files>
        <!-- Destination fields -->
        <destination>[DestFile]</destination> <!-- REQUIRED -->
    </format>
</query>

Parameters Description

Field Name Allowed Values Default Values
bitrates
Comma separated list of video bitrates
One or more valid bitrate values separated by commas 270k, 570k, 1000k, 1200k, 1400k
sizes
Comma separated list of video sizes
One or more valid size values separated by commas 320x180,512x288,768x432,1024x576,1152x648
segment_duration
Segment duration to split media (in seconds)
Non-negative integer 10
pack_files
Whether to pack resulting files to a single tarball
yes, no yes

Wowza_multibitrate_mp4 format

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>wowza_multibitrate_mp4</output>
        <bitrates>[CommaSeparatedList]</bitrates>
        <sizes>[CommaSeparatedList]</sizes>
        <!-- Destination fields -->
        <destination>[DestFile]</destination> <!-- REQUIRED -->
    </format>
</query>

Parameters Description

Field Name Allowed Values
output
Output format type
wowza_multibitrate_mp4 — MP4 container

CEA-708 closed captions mux type

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <closed_captions>
            <source>[CCSource]</source>
            <copy>[yes|no]</copy>
            <extract>[srt|scc|dfxp]</extract>
            <mux_type>cea-708</mux_type>
            <language>[LanguageCode]</language>
            <time_offset>[TimeOffset]</time_offset>
        </closed_captions>
    </format>
</query>

Parameters Description

Field Name Allowed Values Default Values
mux_type
Closed captions mux type

cea-708 — 608 closed captions would be up-converted to 708 closed captions. And both, cea-608 and cea-708 closed captions, would be muxed in video stream

None

Audio_bitrate field in GetMediaInfo response

<?xml version="1.0"?>
<response>
    <bitrate>1807k</bitrate>
    <duration>6464.83</duration>
    <audio_bitrate>128k</audio_bitrate>
    <video_codec>mpeg4</video_codec>
    <video_bitrate>1679k</video_bitrate>
    <frame_rate>23.98</frame_rate>
    <size>640x352</size>
    <pixel_aspect_ratio>1:1</pixel_aspect_ratio>
    <display_aspect_ratio>20:11</display_aspect_ratio>
    <audio_codec>ac3</audio_codec>
    <audio_sample_rate>48000</audio_sample_rate>
    <audio_channels>2</audio_channels>
</response>

Parameters Description

Field Name Description
audio_bitrate Audio bitrate for the media file.

6 February 2014

Burn-in timecode

To burn in timecode with default parameters specify <burnin_timecode>yes</burnin_timecode> in format fields.

To customize burn in timecode, following parameters can be used (inside <burnin_timecode> ... </burnin_timecode> parameter)

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <burnin_timecode>
            <start>00:00:00:00</start>
            <left>0</left>
            <right>0</right>
            <top>0</top>
            <bottom>0</bottom>
        </burnin_timecode>
    </format>
</query>
Field Name Allowed Values Default Values
start
start of timecode counter
timecode in format HH:MM:SS[:;]FF
HH - hours
MM - minutes
SS - seconds
FF - frames
[:;] - : - non drop-frame, ; - drop-frame;
00:00:00:00
Note: drop frame can be used only for 29.97 or 59.94 output frame rates
left
position x of left timecode's side (with starting point from left)
non-negative integer none
right
position x of right timecode's side(with starting point from right)
non-negative integer none
Note: if right and left specified simultaneously - right would be ignored
top
position y of top timecode's side (with starting point from top)
non-negative integer none
bottom
position y of bottom timecode's side (with starting point from bottom)
non-negative integer none
Note: if bottom and top specified simultaneously - bottom would be ignored

19 December 2013

New output formats and video codecs

New output formats: mov_prores, mxf, dnxhd_mxf.

For output mov added videocodecs: dvcpro, dvcpro50, dvcprohd.

For new mxf output added video codecs: dvcpro, dvcpro50, dvcprohd, xdcamhd422.

Field Name Allowed Values Default Values
video_codec

mov: mpeg4, libx264, xdcam, dvcpro, dvcpro50, dvcprohd

mxf: dvcpro, dvcpro50, dvcprohd, xdcamhd422

mov: libx264

mxf: xdcamhd422

audio_codec

mov_prores: pcm_s16le, pcm_s24le

mxf: pcm_s16le, pcm_s24le

dnxhd_mxf: pcm_s16le, pcm_s24le

mov_prores: pcm_s16le

mxf: pcm_s24le

dnxhd_mxf: pcm_s16le

size

mxf: 720x480, 960x720, 1280x720, 1280x1080, 1440x1080, 1920x1080

None

Akamai NetStorage HTTP API destination

Added Akamai NetStorage for output destination

Destination type Description
Akamai NetStorage HTTP API

http://[Key-Name]:[Key]@[Connection-Host]/[Root-Directory]/[Filename]

SRT video subtitle burn-in

To burn in closed captions you should specify <mux_type>burn-in</mux_type> in closed_captions block.

Field Name Allowed Values Default Values
mux_type
Closed captions mux type
timed-text – Closed Captions would be muxed in video as 3GPP Timed Text track
cea-608 – Closed Captions would be muxed in video as cea-608 track (works only with video codec libx264)
webvtt – webvtt file would be uploaded to same destination as result file (for HLS it would be segmented)
burn-in – SRT video subtitle burn-in
None

Nielsen SDK Integration

Added new parameter for Apple's HTTP Live Streaming: copy_nielsen_metadata. This enables copy of Nielsen audio watermarks and Nielsen ID3 tags from source.
Also implemented additional segmenter v3. Default segmenter version is detected automatically.

Field Name Allowed Values Default Values

copy_nielsen_metadata

Copy Nielsen audio watermarks and Nielsen ID3 tags from source

yes, no no
segmenter auto, v1, v2, v3 auto
Note: if copy_nielsen_metadata equals to yes, then segmenter automaticaly switches to v3

Waveform output

Added new output: <output>waveform</output> which render waveforms from sound files as png images.

Used library: rendersound

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>waveform</output>
        <video_codec>png</video_codec>
        <width>500</width>
        <height>50</height>
        <color>FF0000</color>
        <factor>4</factor>
    </format>
</query>

Supported parameters:

Field Name Allowed Values Default Values
width
Width in pixels of output
Integer 500
height
Height in pixels of output
Integer 50
color Color expressed as rgb hex FF0000
factor
Super sampling factor for anti aliasing
Integer 4

 

26 November 2013

JSON API

Encoding.com API endpoint now supports requests in JSON format. Response will be in JSON format as well. Also notifications now support JSON result format as well, all you need to do is specify <notify_format>json</notify_format> in format section. And we updated source code blocks in the API documentation for convenience - look for json/xml toggle.

DFXP closed captions output format

You can extract DFXP closed captions from video:

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <closed_captions>
            <source>[CCSource]</source>
            <copy>[yes|no]</copy>
            <extract>[srt|scc|dfxp]</extract>
            <mux_type>[cea-608|timed-text|webvtt]</mux_type>
            <language>[LanguageCode]</language>
            <time_offset>[TimeOffset]</time_offset>
        </closed_captions>
    </format>
</query>

… or convert to DXFP from another closed captions format:

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <source>[CLOSED_CAPTIONS_SOURCE]</source>
    <format>
        <output>closed_captions</output>
        <type>[srt|scc|webvtt|dfxp]</type>
        <strip_formatting>[yes|no]</strip_formatting>
        <time_offset>[TIME_OFFSET]</time_offset>
    </format>
</query>
Field Name Allowed Values Default Values
type
Convert closed captions to specified type
srt, scc, webvtt or dfxp srt
strip_formatting
Remove all formatting tags (available only for DFXP)
yes, no no

2 October 2013

Video Overlay

Now you can use keep_audio parameter if you want to keep overlay's audio.

Field Name Allowed Values Default Values
keep_audio
keep overlay's audio
0,1 0

Audio Overlay

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <audio_overlay>
            <overlay_source>[AudioOverlay1Source]</overlay_source> 
            <overlay_start>[AudioOverlay1Start]</overlay_start> 
            <overlay_duration>[AudioOverlay1Duration]</overlay_duration> 
        </audio_overlay>
        <!-- ... -->
        <audio_overlay>
            <overlay_source>[AudioOverlayNSource]</overlay_source> 
            <overlay_start>[AudioOverlayNStart]</overlay_start> 
            <overlay_duration>[AudioOverlayNDuration]</overlay_duration> 
        </audio_overlay>
    </format>
</query>
Field Name Allowed Values Default Values
(required)
overlay_source
overlay's source URL
Valid url None
overlay_start
overlay's start time (in seconds)
positive float value 0
overlay_duration
overlay's duration (in seconds)
positive float value 0

18 September 2013

Video Overlay changes

Parameters overlay_x and overlay_y are now deprecated. Please use overlay_left, overlay_right, overlay_top and overlay_bottom parameters for video overlay positioning.

Also now you can specify video overlay size as percent from result video width.

Field Name Allowed Values Default Values
overlay_left
position x of left overlay's side (with starting point from left)
non-negative integer or % from output video width None
overlay_right
position x of right overlay's side(with starting point from right)
non-negative integer or % from output video width None
Note: If overlay_right and overlay_left specified simultaneously - overlay_right would be ignored
overlay_top
position y of top overlay's side (with starting point from top)
non-negative integer or % from output video width None
overlay_bottom
position y of bottom overlay's side (with starting point from bottom)
non-negative integer or % from output video width None
Note: If overlay_bottom and overlay_top specified simultaneously - overlay_bottom would be ignored
size
overlay's size
WxH where W and H - positive integers, or % from result video width None

 

5 September 2013

Digital Rights Management

Flash Access DRM

Available for output formats: flv, mp4, hds.

Additional information: http://www.adobe.com/products/adobe-access.html

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <drm>yes</drm>
        <drm-license-server-url>[License server url]</drm-license-server-url>
        <drm-content-id>[Content ID]</drm-content-id>
        <drm-common-key>[Key file url]</drm-common-key>
        <drm-license-server-cert>[Certificate file url]</drm-license-server-cert>
        <drm-transport-cert>[Certificate file url]</drm-transport-cert>
        <drm-packager-credential>[Credential file url]</drm-packager-credential>
        <drm-credential-pwd>[Password]</drm-credential-pwd>
        <drm-policy-file>[Policy file url]</drm-policy-file>
    </format>
</query>

KeyOS for PlayReady DRM

Available for output formats: smooth_streaming.

Additional information: http://buydrm.com

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <playready>yes</playready>
        <playready-apikey>[KeyOS api key]</playready-apikey>
        <playready-profileid>[KeyOS profile id]</playready-profileid>
        <playready-templateid>[KeyOS template id]</playready-templateid>
    </format>
</query>

Video Settings

Frame accurate timecode editing

Field Name Allowed Values Default Values
start
Start encoding from (sec or timecode)
non-negative float or timecode None
finish
Finish encoding at (sec or timecode)
positive float or timecode None
Note:Timecode should have following format
HH:MM:SS[:;]FF, where:
HH - hours
MM - minutes
SS - seconds
FF - frames
[:;] - : - non drop-frame, ; - drop-frame;

XDCAM codec for QuickTime .mov output

Supported formats: mov

Field Name Allowed Values Default Values
video_codec xdcam None

Aspect ratio in Wowza Multi-Bitrate (SMIL)

Default values changed:

Field Name Allowed Values Default Values
sizes Comma separated list of video sizes One or more valid size values separated by commas 320x180, 512x288, 720x406, 1024x576, 1080x608

Mpeg2video video codec for mpegts

Field Name Allowed Values Default Values
video_codec mpegts: libx264, mpeg2video mpegts: libx264

Ability to set FTYP for mp4 format

Field Name Allowed Values Default Values
ftyp
Specify format ftyp.
mp42, 3gp5 None

Audio Settings

Dolby Digital AC3

Supported formats: mpeg2, mp4

Field Name Allowed Values Default Values
audio_codec ac3 None

Multichannel audio extracting

Allow to select and remap audio channels

Field Name Allowed Values Default Values
pan
Allow to select and remap audio channels.
output_audio_chanel,input_audio_channel:output_audio_chanel,input_audio_channel
Example: 0,0:1,1
None

Ability to specify audio_minrate, audio_maxrate, audio_bufsize

Field Name Allowed Values Default Values
audio_minrate
Minimum allowed audio bitrate.
N or Nk — where N is any non-zero integer None
audio_maxrate
Maximum allowed audio bitrate.
N or Nk — where N is any non-zero integer None
audio_bufsize
Rate control buffer size (bits).
N or Nk — where N is any non-zero integer None

Closed captions

WebVTT closed captions for HLS

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <closed_captions>
            <source>[CLOSED_CAPTIONS_SOURCE]</source>
            <mux_type>webvtt</mux_type>
        </closed_captions>
    </format>
</query>
Field Name Allowed Values Default Values
mux_type webvtt None
Note:webvtt file will be uploaded to destination with encoded output (for HLS it will be segmented)

Caption to caption conversion

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <source>[CLOSED_CAPTIONS_SOURCE]</source>
    <format>
        <output>closed_captions</output> 
        <type>[srt|scc|webvtt]</type>
        <time_offset>[TIME_OFFSET]</time_offset>
    </format>
</query>

Other changes

Cache-control and expires options for S3 destination

Destination Type Description
Amazon Web Services (S3)
  • http://[bucket].s3.amazonaws.com/[filename]?cache_control=[string]

    — cache_control - Can be used to specify caching behavior along the request/reply chain.

  • http://[bucket].s3.amazonaws.com/[filename]?expires=[string]

    — expires - The date and time at which the object is no longer cacheable.

Ability to disable EPSV for FTP source

Source type Description
FTP / SFTP

Parameter "?disable-epsv" in source URL disables extended passive mode

30 May 2013

New Vidly features

Added new preset - Vidly Lite - <output>vidly_lite</output>. This preset creates new vid.ly short URL and generates only 5 output formats. We also added support for HD player button in vid.ly player and HLS support for Vidly Lite URL's.

Field Name Allowed Values Default Values
vidly_hls
Enables HLS format for Vidly Lite URL
yes, no no
vidly_hd
Enables HD button in Vid.ly player. High Definition (720p) videos will be generated.
yes, no no

VTT feature

New option in thumbnail format:

Field Name Allowed Values Default Values
use_vtt
Join resulting thumbnails in single video tooltip thumbnail (VTT)
yes, no no
vtt_line_size
Set the count of thumbnails in line on VTT image
Non-negative integer 4

Support FTP multithreading

Parameter "?multithread=1" in source url turns on multithread download for http/ftp.

Link your encoding.com account with your YouTube account

In order to simplify usage of YouTube as output destination, we added ability to link your encoding.com account with your YouTube account in "My Account" section of User Interface. In that case you may not specify [YoutubeLogin] and [YoutubePassword].

HRD information and bitstream packing

Specifying HRD information and packing the bitstream to the specified bitrate is now possible with following option in format fields:

Field Name Allowed Values Default Values
hard_cbr
Specify HRD information and pack the bitstream to the specified bitrate
yes, no no

Segmenter option for Apple HTTP Live Streaming

Field Name Allowed Values Default Values
segmenter v1, v2 v1

 

27 Feb 2013

Slideshow

If you want to create slideshow from your sources you should specify <slideshow>1</slideshow> in Main Fields. Now we can support following input formats for slideshow: jpeg, png, mpeg audio, mpeg-4, wave. If audio file was specified - it would be used as audio stream in output slideshow video. By default each slide has duration equal to 3 seconds. If you want to change it, you should add duration parameter to your source.

Text overlay

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <text_overlay>
            <text>[Font1Source]</text>
            <font_source>[Font1Source]</font_source>
            <font_size>[Font1Size]</font_size>
            <font_rotate>[Font1Rotate]</font_rotate>
            <font_color>[Font1Color]</font_color>
            <align_center>[0|1]</align_center>
            <overlay_x>[TextOverlay1PositionX]</overlay_x>
            <overlay_y>[TextOverlay1PositionY]</overlay_y>
            <size>[TextOverlay1Size]</size>
            <overlay_start>[TextOverlay1StartInSeconds]</overlay_start>
            <overlay_duration>[TextOverlay1DurationInSeconds]</overlay_duration>
        </text_overlay>
        <!-- ... -->
    	<text_overlay>
            <text>[FontNSource]</text>
            <font_source>[FontNSource]</font_source>
            <font_size>[FontNSize]</font_size>
            <font_rotate>[FontNRotate]</font_rotate>
            <font_color>[FontNColor]</font_color>
            <align_center>[0|1]</align_center>
            <overlay_x>[TextOverlayNPositionX]</overlay_x>
            <overlay_y>[TextOverlayNPositionY]</overlay_y>
            <size>[TextOverlayNSize]</size>
            <overlay_start>[TextOverlayNStartInSeconds]</overlay_start>
            <overlay_duration>[TextOverlayNDurationInSeconds]</overlay_duration>
        </text_overlay>
    </format>
</query>
Field Name Allowed Values Default Values
(required)
text
Text for overlay
Valid url None
(required)
font_source
Font's source URL
Valid url None
font_size
Text font's size
non-negative integer 20
font_rotate
Angle on which text should be rotated
integer 0
font_color
Font color
6-digits hexadecimal 000000-FFFFFF 000000
align_center
Align text by center
0 or 1 0
overlay_x
Overlay's position X
non-negative integer 0
overlay_y
Overlay's position Y
non-negative integer 0
size
Size of the text block
WxH where W and H - positive integers None
overlay_start
Overlay's start time (in seconds)
positive float value 0
overlay_duration
Overlay's duration (in seconds)
positive float value None

Ability to add paddings to video

If you want to add paddings to video you should specify in format fields:
Field Name Allowed Values Default Values
padd_top
Padding Top
Non-negative integer 0
padd_left
Padding Left
Non-negative integer 0
padd_right
Padding Right
Non-negative integer 0
padd_bottom
Padding Bottom
Non-negative integer 0

Feature Request: Avid DNxHD format for .mov output

Added <output>dnxhd</output>. Additionally the following options are available in <format> fields:
Field Name Allowed Values Default Values
best_quality
Best quality mode (very slow)
yes, no no
interlaced yes, no no
Note: bitrate is specified separately and the default is 145m

Feature request: adaptive framesize HLS preset using RESOLUTION parameter

Several sizes may be specified in <size> for Apple's HTTP Live Streaming (HLS) output.
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>[iphone_stream|ipad_stream]</output>
        <size>[CommaSeparatedList]</size>
        <bitrates>[CommaSeparatedList]</bitrates>
    </format>
</query>
Field Name Allowed Values Default Values
size
Comma separated list of video sizes
One or more valid size values separated by commas iphone_stream: 400x300
ipad_stream: 640x480

Force YUV420p colorspace

Added <pix_format> option in format fields to lock output to YUV420p colorspace.
Field Name Allowed Values Default Values
pix_format
Pixel format
yuv420p, yuv422p, yuvj420p, yuvj422p, source yuv420p
Note:If 'source' specified as value, then <pix_format> won't be added to format options.

Dec 20 2012

Text Overlay

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <text_overlay>
            <text>[Font1Source]</text>
            <font_source>[Font1Source]</font_source>
            <font_size>[Font1Size]</font_size>
            <font_rotate>[Font1Rotate]</font_rotate>
            <font_color>[Font1Color]</font_color>
            <align_center>[0|1]</align_center>
            <overlay_x>[TextOverlay1PositionX]</overlay_x>
            <overlay_y>[TextOverlay1PositionY]</overlay_y>
            <size>[TextOverlay1Size]</size>
            <overlay_start>[TextOverlay1StartInSeconds]</overlay_start>
            <overlay_duration>[TextOverlay1DurationInSeconds]</overlay_duration>
        </text_overlay>
        <!-- ... -->
        <text_overlay>
            <text>[FontNSource]</text>
            <font_source>[FontNSource]</font_source>
            <font_size>[FontNSize]</font_size>
            <font_rotate>[FontNRotate]</font_rotate>
            <font_color>[FontNColor]</font_color>
            <align_center>[0|1]</align_center>
            <overlay_x>[TextOverlayNPositionX]</overlay_x>
            <overlay_y>[TextOverlayNPositionY]</overlay_y>
            <size>[TextOverlayNSize]</size>
            <overlay_start>[TextOverlayNStartInSeconds]</overlay_start>
            <overlay_duration>[TextOverlayNDurationInSeconds]</overlay_duration>
        </text_overlay>    
    </format>
</query>
Format Name Allowed Values Default Values

(required) text

Text for overlay

Valid url None

(required) font_source

Font's source URL

Valid url None

font_size

Text font's size

non-negative integer 20

font_rotate

Angle on which text should be rotated

integer 0

font_color

Font color

6-digits hexadecimal 000000-FFFFFF 000000

align_center

Align text by center

0 or 1 0

overlay_x

Overlay's position X

non-negative integer 0

overlay_y

Overlay's position Y

non-negative integer 0

size

Size of the text block

WxH where W and H - positive integers None

overlay_start

Overlay's start time (in seconds)

positive float value 0

overlay_duration

Overlay's duration (in seconds)

positive float value None

 

Time Offset For Closed Captions

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <closed_captions>
            <!-- ... -->
            <time_offset>[TimeOffset]</time_offset>        
        </closed_captions>   
    </format>
</query>
Format Name Allowed Values Default Values

time_offset

Set time offset for time in CC file

positive or negative integer 0

 

Sydney Region Support

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <region>ap-southeast-2</region> 
    <format>
        <!-- Format fields -->
    </format>
</query>

region

Allow you to specify instance's region where your file should be processed

ap-southeast-2 - Asia Pacific (Sydney),
us-east-1

Nov 12 2012

Private Cloud Processing

region

Allow you to specify instance's region where your file should be processed

 

oak-private-clive - Private Cloud (California)

Oct 17 2012

Closed Captions

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <region>ap-southeast-2</region> 
    <format>
        <!-- Format fields -->
        <closed_captions>
            <source>[CCSource]</source>
            <copy>[yes|no]</copy>
            <extract>[srt|scc]</extract>
            <mux_type>[cea-608|timed-text]</mux_type>
            <language>[LanguageCode]</language>
        </closed_captions>
    </format>
</query>
Format Name Allowed Values Default Values

source

URL to Closed Captions file.

Valid URL to Closed Captions file in one of the following formats: SCC, SubRip, DFXP (TTML), SAMI None

copy

If video has Clossed Captions data stored in Timed Text or cea-608/cea-708 tracks, system will try to extract closed captions, and mux them back while encoding.
If you want to mux Closed Captions to video in other (than in source video) format, you should specify mux_type.

yes, no no

mux_type

Closed captions mux type

timed-text – Closed Captions would be muxed in video as 3GPP Timed Text track
cea-608 - Closed Captions would be muxed in video as cea-608 track (works only with video codec libx264)
None

language

Set language of 3GPP Timed Text track. Works only for mux_type=timed-text

either ISO 639-1 2-char code, ISO 639-2 3-char code, or the full language name None

extract

If video has Clossed Captions data stored in Timed Text or cea-608/cea-708 tracks, system will try to extract closed captions, and upload them to same destination as result file. If video has multiple text tracks extracted files will have integer suffix.

srt – Closed Captions would be extracted in SubRip format,
scc – Closed Captions would be extracted in Scenarist Closed Captions format
None

 

Sep 12 2012

Overlay

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <overlay>
            <overlay_source>[Overlay1Source]</overlay_source>
            <overlay_x>[Overlay1PositionX]</overlay_x>
            <overlay_y>[Overlay1PositionY]</overlay_y>
            <size>[Overlay1Size]</size>
            <overlay_start>[Overlay1StartInSeconds]</overlay_start>
            <overlay_duration>[Overlay1DurationInSeconds]</overlay_duration>
        </overlay>
        <!-- ... -->
        <overlay>
            <overlay_source>[OverlayNSource]</overlay_source>
            <overlay_x>[OverlayNPositionX]</overlay_x>
            <overlay_y>[OverlayNPositionY]</overlay_y>
            <size>[OverlayNSize]</size>
            <overlay_start>[OverlayNStartInSeconds]</overlay_start>
            <overlay_duration>[OverlayNDurationInSeconds]</overlay_duration>
        </overlay>
    </format>
</query>
Format Name Allowed Values Default Values

(required) overlay_source

overlay's source URL

Valid url None

overlay_x

overlay's position X

non-negative integer 0

overlay_y

overlay's position Y

non-negative integer 0

size

overlay's size

WxH where W and H - positive integers None

overlay_start

overlay's start time (in seconds)

positive float value 0

overlay_duration

overlay's duration (in seconds)

positive float value None

 

Split Screen

Combine several sources to one split screen video

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <!-- Main fields -->
    <source>[SourceFile1]</source>
    <!-- ... -->   
    <source>[SourceFileN]</source>
    <split_screen>
        <columns>[ColumnsNumber]</columns>
        <rows>[RowsNumber]</rows>
        <padding_left>[PaddingLeftInPx]</padding_left>
        <padding_right>[PaddingRightInPx]</padding_right>
        <padding_bottom>[PaddingBottomInPx]</padding_bottom>
        <padding_top>[PaddingTopInPx]</padding_top>
    </split_screen>
</query>
Format Name Allowed Values Default Values

columns

Number of columns in split screen

non-negative integer Sources count

rows

Number of rows in split screen

non-negative integer 1

padding_top

Padding (in pixels) from top to split screen's main area

non-negative integer 0

padding_right

Padding (in pixels) from right to split screen's main area

non-negative integer 0

padding_bottom

Padding (in pixels) from bottom to split screen's main area

non-negative integer 0

padding_left

Padding (in pixels) from left to split screen's main area

non-negative integer 0

 

YouTube destination

  Allowed Values Default Values
destination

YouTube

http://[YoutubeLogin]:[YoutubePassword]@youtube.com/?title=[VideoTitle]&category=[VideoCategory]&keywords=[VideoKeywords]&description=[VideoDescription]&acl=[ACL]

 

[YoutubeLogin] – Login on YouTube (mandatory)

[YoutubePassword] – Password on YouTube (mandatory)

[VideoTitle] – Video title on YouTube (optional, default: filename)

[VideoCategory] – Video category. Allowed values: Film, Autos, Music, Animals, Sports, Travel, Games, People, Comedy, Entertainment, News, Howto, Education, Tech, Nonprofit (optional, default: Film)

[VideoKeywords] – Video keywords on YouTube (optional, default: none)

[VideoDescription] – Video description on YouTube (optional, default: none)

[ACL] – Access Control List to video on YouTube (optional, default: private). Allowed values:
private – only owner can get access to the video,
public-read – everyone can get access to the video,
unlisted - only users with direct link can get access to the video

 

None

 

Force_interlaced default to no

force_interlaced

Interlaced encoding type

mpegts: tff,bff,no mpegts: no

 

MPEG-1 video

Option Allowed Values Default Values

(required) output

Format type

flv, fl9, wmv, 3gp, mp4, m4v, ipod, iphone, ipad, android, ogg, webm, appletv, psp, zune, mp3, wma, m4a, thumbnail, image, mpeg1, mpeg2 (just experimental feature, please use with care, feedback is welcome), iphone_stream, ipad_stream, muxer, wowza, wowza_multibitrate, roku_800, roku_1200, roku_1800, roku_2700, roku_hls, mpegts, vidly, kindle_fire, eac3, smooth_streaming, hds. None.
video_codec
Video codec
flv: flv, libx264, vp6
fl9, mpegts: libx264
wmv, zune: wmv2, msmpeg4
3gp, android: h263, mpeg4, libx264
m4v: mpeg4
mp4, ipod, iphone, ipad, appletv, psp: mpeg4, libx264
ogg: libtheora
webm: libvpx
mp3, wma: none
mpeg2: mpeg2video
mpeg1: mpeg1video
flv: flv
fl9, ipod, iphone, ipad: libx264
wmv, zune: wmv2
3gp: h263
mp4, m4v,appletv, psp, android: mpeg4
ogg: libtheora
webm: libvpx
mpeg2: mpeg2video
mpeg1: mpeg1video
audio_codec
Audio codec
mp3: libmp3lame
m4a: libfaac, dolby_aac, dolby_heaac, dolby_heaacv2
flv: libmp3lame, libfaac, dolby_aac, dolby_heaac, dolby_heaacv2
fl9, mp4, m4v, ipod, iphone, ipad, appletv, psp, wowza, roku_*, kindle_fire: libfaac, dolby_aac, dolby_heaac, dolby_heaacv2
mov: libfaac, dolby_aac, dolby_heaac, dolby_heaacv2, eac3
iphone_stream, ipad_stream, wowza_multibitrate, roku_hls, smooth_streaming, hds: libfaac, dolby_aac, dolby_heaac, dolby_heaacv2
wmv, wma, zune: wmav2, libmp3lame
ogg, webm: libvorbis
3gp: libamr_nb
android: libamr_nb, libfaac
mpeg2: pcm_s16be, pcm_s16le
mpeg1: mp2, copy
mpegts: ac3
flv, mp3: libmp3lame
fl9, mp4, m4v, ipod, iphone, ipad, appletv, psp, wowza, roku_*, kindle_fire: libfaac
mov: libfaac
iphone_stream, ipad_stream, wowza_multibitrate, roku_hls, smooth_streaming, hds: libfaac
wmv, zune: wmav2
ogg, webm: libvorbis
3gp, android: libamr_nb
mpeg2: pcm_s16be
mpeg1: mp2
m4a: libfaac

Jun 21 2012

Video sync method option

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <video_sync>old|passthrough|cfr|vfr|auto</video_sync>
        <!-- ... -->
    </format>
</query>

video_sync

Video sync method.

old - Keep old behavior (for compatibility)
passthrough - Each frame is passed with its timestamp from the demuxer to the muxer
cfr - Frames will be duplicated and dropped to achieve exactly the requested constant framerate
vfr - Frames are passed through with their timestamp or dropped so as to prevent 2 frames from having the same timestamp
auto - Chooses between cfr and vfr depending on muxer capabilities
old

Jun 05 2012

Dolby AAC, HE-AAC, HE-AACv2

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <audio_codec>[dolby_aac, dolby_heaac, dolby_heaacv2]</audio_codec>
        <!-- ... -->
    </format>
</query>

Dolby AAC codec, and AAC profiles HE-AAC, HE-AACv2 compatible with the following presets:
appletv, fl9, flv, hds, ipad, ipad_stream, iphone, iphone_stream, ipod, kindle_fire, m4a, mov, mp4, psp, roku_*, smooth_streaming, wowza, wowza_multibitrate

Dolby Digital Plus Audio Codec

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <audio_codec>eac3</audio_codec>
        <!-- ... -->
    </format>
</query>

Dolby Digital Plus Audio Codec compatible with Mov format.

Dolby Digital Plus Audio Preset

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>eac3</output>

        <!-- ... -->
    </format>
</query>

(required) output

Format type

..., eac3. None.

 

HTTP Dynamic Streaming

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>hds</output>
        <bitrates>[CommaSeparatedList]</bitrates> 
        <sizes>[CommaSeparatedList]</sizes> 
        <pack_files>[yes|no]</pack_files> 
        <!-- Destination fields -->
        <destination>[DestFile]</destination> <!-- REQUIRED -->
    </format>
</query>
Format Name Allowed Values Default Values

bitrates

Comma separated list of video bitrates

One or more valid bitrate values separated by commas 300k,600k,1200k,2400k

sizes

Comma separated list of video sizes

One or more valid size values separated by commas None

pack_files

Whether to pack resulting files to a single tarball

yes, no yes

 

Smooth Streaming

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>smooth_streaming</output>
        <bitrates>[CommaSeparatedList]</bitrates> 
        <sizes>[CommaSeparatedList]</sizes> 
        <pack_files>[yes|no]</pack_files> 
        <!-- Destination fields -->
        <destination>[DestFile]</destination> <!-- REQUIRED -->
    </format>
</query>
Format Name Allowed Values Default Values

bitrates

Comma separated list of video bitrates

One or more valid bitrate values separated by commas 300k,600k,1200k,2400k

sizes

Comma separated list of video sizes

One or more valid size values separated by commas 224x0,448x0,768x0,1280x0

pack_files

Whether to pack resulting files to a single tarball

yes, no yes

 

Stop media tasks

<?xml version="1.0"?>
<query>
    <!-- Main fields -->
    <userid>[UserID]</userid>
    <userkey>[UserKey]</userkey>
    <action>StopMedia</action>
    <mediaid>[MediaID]</mediaid>
</query>
StopMedia Stop media downloading/processing/uploading. If at least one destination is saved, media will be finished, otherwise it will be stopped.

 

Notify Encoding Errors URL

<?xml version="1.0"?>
<query>
    <!-- Main fields -->
    <userid>[UserID]</userid>
    <userkey>[UserKey]</userkey>
    <action>AddMedia</action>
    <notify_encoding_errors>[NotifyEncodingErrorURL]</notify_encoding_errors>
    <format>
        <!-- Format fields -->
    </format>
</query>
NotifyEncodingErrorURL Can be either an HTTP(S) URL for the script or a mailto: link with email address. Result info will be sent only if media finished with encoding errors.

 

Start/Duration parameters in sub-second intervals

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <start>1.5</start> 
        <duration>7.5</duration>
        <!-- ... -->
    </format>
</query>
start
Start encoding from (sec)
positive float value None
duration
Duration (sec)
positive float value None

 

Audio normalization

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <audio_normalization>[0-100]</audio_normalization>
        <!-- ... -->
    </format>
</query>

audio_normalization

This option specifies that a gain should be applied so that the final dialogue normalization value of the audio signal is equal to the specified value.

Non-negative integer from 0 to 100 None

 

Frame Rate Upper Threshold

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <framerate_upper_threshold>[Frame Rate Upper Threshold]</framerate_upper_threshold>
        <!-- ... -->
    </format>
</query>
framerate_upper_threshold
If source frame rate lower then framerate_upper_threshold, then source frame rate will be used
Any non-zero integer or N/M where N and M are non-zero integers None

Mar 03 2012

HLS Encryption

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>[iphone_stream|ipad_stream]</output>
        <!-- ... -->
        <encryption>[yes|no]</encryption>
        <encryption_key>[128bit-key]</encryption_key>
        <encryption_key_file>[SourceURL]</encryption_key_file>
        <!-- ... -->
    </format>
</query>
Format Name Allowed Values Default Values

encryption

Encrypt TS segements using AES-128

yes, no no

encryption_key

Encryption key

32 hexidecimal characters ([0-9a-f]) None

encryption_key_file

Encryption key file URL

HTTP, FTP, SFTP or S3/CloudFiles URL None

 

Aspera Server and Microsof Azure Support

SourceFile

Source media file. Must be specified only for AddMedia and AddMediaBenchmark actions.

Aspera Server

Please use such URL if your source is on the Aspera Enterprise Server or Aspera Connect Server (TM)

fasp://[user[:password]@]hostname/[path]/[filename]

 

Windows Azure Blob

To access to files stored on azure blob storage use next way:

http(s)://[access_key]@[account].blob.core.windows.net/[container]/path

access_key should be urlencoded


 

destination

Aspera Server

fasp://[user[:password]@]hostname/[path]/[filename]

 

Windows Azure Blob

http(s)://[access_key]@[account].blob.core.windows.net/[container]/path

access_key should be urlencoded

Also, you can add ?acl=public-read OR ?acl=public-container OR ?acl=private after the filename. This will explicitly set access rights to the container instead of the default settings




 

 

None

 

International processing

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <region>[us-east-1|us-west-1|us-west-2|eu-west-1|ap-southeast-1|ap-northeast-1|sa-east-1]</region>
    <format>
        <!-- Format fields -->
    </format>
</query>

region

Allow you to specify instance's region where your file should be processed

us-east-1 - US (Nothern Verginia),
us-west-1 - US (Nothern California),
us-west-2 - US (Oregon),
eu-west-1 - EU (Ireland),
ap-southeast-1 - Asia Pacific (Singapore),
ap-northeast-1 - Asia Pacific (Tokyo),
sa-east-1 - South Amerika (Sou Paulo)
us-east-1

 

Strip chapters

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <strip_chapters>[yes|no]</strip_chapters>
        <!-- ... -->
    </format>
</query>

strip_chapters

Strip chapters markers

yes, no no

 

Kindle Fire Preset

(required) output

Format type

flv, fl9, wmv, 3gp, mp4, m4v, ipod, iphone, ipad, android, ogg, webm, appletv, psp, zune, mp3, wma, m4a, thumbnail, image, mpeg2 (just experimental feature, please use with care, feedback is welcome), iphone_stream, ipad_stream, muxer, wowza, wowza_multibitrate, roku_800, roku_1200, roku_1800, roku_2700, roku_hls,mpegts, vidly, kindle_fire. None.

 

Dec 09 2011

Lossless rotation (MOV format)

Option Allowed Values Default Values
set_rotate
Set rotation meta-data (MOV only).

0 - don't set anything
90 - rotate by 90 degree CW
180 - rotate by 180 degree
270 - rotate by 270 degree CW
source - keep the source value (if any)

0

 

Copy Display Aspect Ratio from Source file

Option Allowed Values Default Values

set_aspect_ratio

Display aspect ratio (DAR). When set, the option keep_aspect_ratio will be ignored. The option only works with the following formats: fl9, 3gp, mp4, m4v, ipod, iphone, ipad, android, ogg, webm, appletv, psp, iphone_stream, ipad_stream.

Positive float value or N:M: where N and M are any positive integers.
source: display aspect ratio will be copied from source file
None

 

GoToMeeting input format added

GoToMeeting sources support is now available in test mode

 

Metadata 'copy' tag added

Format Name Description
copy — copy metatags from the source media

 

Auto de-interlacing added

Format Name Allowed Values Default Values
deinterlacing - Whether to use de-interlacing

yes, no, auto

auto - use de-interlacing if source's scan type is interlaced

auto

 

Dec 09 2011

MPEG-TS format added

(required) output

Format type

flv, fl9, wmv, 3gp, mp4, m4v, ipod, iphone, ipad, android, ogg, webm, appletv, psp, zune, mp3, wma, m4a, thumbnail, image, mpeg2 (just experimental feature, please use with care, feedback is welcome), iphone_stream, ipad_stream, muxer, wowza, wowza_multibitrate, roku_800, roku_1200, roku_1800, roku_2700, roku_hls, mpegts None.

force_interlaced

Interlaced encoding type

mpegts: tff,bff,no mpegts: tff

 

Sep 28 2011.

Fade In / Fade Out effects

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <fade_in>[FadeInStart:FadeInDuration]</fade_in>
        <fade_out>[FadeOutStart:FadeOutDuration]</fade_out>
        <!-- ... -->
    </format>
</query>

 

Option Allowed Values Default Values
fade_in
Add fade in effect to audio and video streams.
FadeInStart:FadeInDuration - where both parameters are positive float values

FadeInStart - start of fade in effect (in seconds)

FadeInDuration - duration of fade in effect (in seconds)
 
None
fade_out
Add fade out effect to audio and video streams.
FadeOutStart:FadeOutDuration - where both parameters are positive float values

FadeOutStart - start of fade out effect (in seconds). If you will specify this parameter equal to 0, fade out effect will be applied to the end of video/audio

FadeOutDuration - duration of fadeOut effect (in seconds)
 
None

Roku presets

Option Allowed Values Default Values

(required) output

Format type

...
roku_800, roku_1200, roku_1800, roku_2700, roku_hls
None.

Sep 19 2011. Audio sync option

Option Allowed Values Default Values

audio_sync

It adjusts the audio stream to match the timestamps, in # of samples per second. 1 is special value that means automatic.

Positive integer None

 

Aug 12 2011.

S3 source option

SourceFile ...
http://[AWS_KEY:AWS_SECRET@][bucket].s3.amazonaws.com/[filename]?nocopy - if 'nocopy' is specified, the source file will be downloaded directly from your bucket (for each encoding task), it saves time, please use it if your buckets are located in the US. If not specified, the source will be copied to encoding.com bucket first, it saves your traffic in case of non-US buckets and more than one encoding task per source.
...

Preset for Wowza Multi-bitrate

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>wowza_multibitrate</output>
        <bitrates>[CommaSeparatedList]</bitrates> 
        <sizes>[CommaSeparatedList]</sizes> 
        <!-- Destination fields -->
        <destination>[DestFile]</destination> <!-- REQUIRED -->
    </format>
</query>
Format Name Allowed Values Default Values

bitrates

Comma separated list of video bitrates

One or more valid bitrate values separated by commas 270k,570k,1000k,1200k,1400k

sizes

Comma separated list of video sizes

One or more valid size values separated by commas 320x180,420x270,720x406,1024x576,1080x608

New presets

Option Allowed Values Default Values

(required) output

Format type

...
wowza, wowza_multibitrate.
None.

Keep audio parameters

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <audio_codec>copy</audio_codec>
        <!-- ... -->
    </format>
</query>

If you specify audio_codec equal to 'copy', the options audio_channels_number, audio_sample_rate, audio_bitrate will be ignored and their values will be copied from your source file.

PNG with alpha-channel as Logo source

If your logo source is PNG with alpha-channel, set logo_mode equal to 1, to keep transparency.

1 July 2011. Ability to specify the region where file should be processed

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <region>[us-east-1|us-west-1]</region>
    <format>
        <!-- Format fields -->
    </format>
</query>
Allow you to specify instance's region where your file should be processed

17 June 2011. Restarting jobs and tasks.

RestartMedia Complete restart the entire job
RestartMediaErrors Only retry tasks ended with error
RestartMediaTask Only restart the specified task (format). Additional parameter <taskid> must be specified.

24 May 2011. Twin-turbo encoding speed now available

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <twin_turbo>yes</twin_turbo>
        <!-- ... -->
    </format>
</query>
NOTE: Additional encoding bandwidth charges apply, see the Turbo Encoding Help Article for more details.

5 May 2011

Muxing from different sources

Note: muxing is supported for only two sources now.
Sample XML to mux video from one source and audio from another one:

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <source>[Video source]</source>
    <source>[Audio source]</source>
    <format>
        <output>muxer</output>
        <target>ntsc-dvd</target>
        <maps>0:0,1:0</maps>
    </format>
</query>

21 Apr 2011.

Custom presets in API call

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>[PRESET_NAME]</output>
    </format>
</query>
You could create and configure your custom output format in the user Interface. After that you will be able to use custom output formats in API calls as well.

Setting display aspect ratio

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <set_aspect_ratio>[ASPECT_RATIO]</set_aspect_ratio>
        <!-- ... -->
    </format>
</query>
Format Name Allowed Values Default Values
set_aspect_ratio — Display aspect ratio (DAR). When set, the option keep_aspect_ratio will be ignored. The option only has effect when used with the following formats: fl9, 3gp, mp4, m4v, ipod, iphone, ipad, android, ogg, webm, appletv, psp, iphone_stream, ipad_stream Positive float value or N:M - where N and M are any positive integers. None

Thumbnail time in intervals

Added ability to make thumbnail each time interval by sign '!'. Thumbnail image files will be named with number at the end.

Added a Noise Reduction filter

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <noise_reduction>luma_spatial:chroma_spatial:luma_temp</noise_reduction>
        <!-- ... -->
    </format>
</query>
Format Name Allowed Values Default Values
luma_spatial — Spatial Luma Strength. [0,255] 4:3:6
chroma_spatial — Spatial Chroma Strength [0,255] 4:3:6
luma_temp — Temporal Luma Strength. [0,255] 4:3:6

New MPEG-2 options

Audio codec MP2 added and set as default for MPEG-2.

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>mpeg2</output>
        <keyframe>[12|15|25|30]</keyframe> 
        <bframes>[2|0]</bframes>
        <gop>[cgop|sgop]</gop>
        <!-- ... -->
    </format>
</query>
Format Name Allowed Values Default Values
keyframe 12 [12 PAL DVD] , 15 [15 NTSC DVD], 25 [25 PAL Long GOP], 30 [30 NTSC Long GOP] 15
bframes 2 [on = IBBPBBP], 0 [off = IPPPPPP] 2
gop sgop [Strict (Locked)], cgop [Closed (Scene Detection)] cgop

 

Audio codec MP2 added and set as default for MPEG-2.

13 Feb 2011. New image format (tiff)

Format Name Allowed values: Default values:
image_format [required] — Format of resulting image. jpg, png, gif, tiff jpg

 

24 Dec 2010

Multiple source (combine several video files to one file)

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <source>[SourceFile]</source>
    <source>[SourceFile1]</source> 
    <!-- if multiple SourceFile added, they will be concatenated --> 
    ... 
    <source>[SourceFileN]</source>
    <format>
        <!-- Format fields -->
    </format>
</query>
SourceFile1..SourceFileN – you can specify several source files as well. All of them will be combined to one file (in sequential order) during the encoding process. You can use different source URLs (HTTP, FTP, S3, CloudFiles) with different media properties (format, frame size, bitrate, codec, etc.) Read more

Multiple destination for each format (task)

Destination fields

There can by multiple <destination> elements within each <format>.
...
GetStatus action
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <!-- if multiple SourceFile added, they will be concatenated --> 
    ... 
    <source>[SourceFileN]</source>
    <format>
        <!-- Format fields -->
        <destination>[URL]</destination>
        <destination>[URL_2]</destination>
        ...
        <destination>[URL_N]</destination>
    </format>
</query>
...

Encoding Result XML format

<?xml version="1.0"?>
<response>
    <format>
        <id>[ID]</id>
        <status>[Status]</status>
        ...
        <destination>[URL]</destination>
        <destination_status>[Saved|Error (ErrorDescription)]</destination_status> 
        <destination>[URL_2]</destination>
        <destination_status>[Saved|Error (ErrorDescription)]</destination_status>
        ...
        <destination>[URL_N]</destination>
        <destination_status>[Saved|Error (ErrorDescription)]</destination_status>
    </format>
</response>

18 Nov 2010. Specifying AWS user ID and content-type for S3 object

Thumbnail time in percentage rate

Format Name Allowed Values
time — Timestamp (in seconds or percentage rate) to capture thumbnail. Non-negative number greater than 0.01 or hh:mm:ss.ms or 1-100% percentage rate.

Destination fields

Format Name Allowed Values
destination - The destination URL to put the encoded file. ftp://[user[:password]@]hostname[:port]/[path]/[filename][?passive=yes], sftp://[user[:password]@]hostname[:port]/[path]/[filename], http://[bucket].s3.amazonaws.com/[filename][?acl=public-read | authenticated-read]&canonical_id=AWS_CANONICAL_USER_ID - if you specify AWS canonical user ID in the URL, FULL_CONTROL on the object will be granted to the specified user. Also, you can add ?acl=public-read OR ?acl=authenticated-read parameter. This will explicitly set access rights to the saved object instead of the default settings. http://[bucket].s3.amazonaws.com/[filename][?acl=public-read&content_type=your-own/content-type - if you specify Content type then Amazon will add appropriate Content-type header when the object is accessed via the web.
http://[AWS_KEY:AWS_SECRET@][bucket].s3.amazonaws.com/[filename][?acl=public-read | authenticated-read] - If you need your S3 files to be accessed with your own AWS credentials, add your AWS key/secret to the URL. If you use the Access key and Secret key they must be urlencode. Let the Key and the Secret are: 1ZG3YAKJ8W0VOA9L7WT6, lQT5MsQLirc8owb:SxX/9EhU4M+QarasFelQ0v2M First, we must urlencode the Secret as it contains special URL's characters: ':','+' and '/'. The encoded Secret is: lQT5MsQLirc8owb%3ASxX%2F9EhU4M%2BQarasFelQ0v2M We should not encode the colon between Key and Secret nor the '@' after them.
So, the destination URL will be:
http://1ZG3YAKJ8W0VOA9L7WT6:lQT5MsQLirc8owb%3ASxX%2F9EhU4M%2BQarasFelQ0v2M
@encode.video.s3.amazonaws.com/v/encoded/
http://[RS_USER:RS_KEY@]storage.cloudfiles.com/[path]/[filename] - Virtual URL
https://storage4.clouddrive.com/v1/MossoCloudFS_cea19775-aa94-4d78-8da9-1a7b4bbbd548/your_folder
/file.ext?auth-token=c2633419-7b79-3d58-8417-d63666dddfd5
- Real URL like this if you were authenticated yourself recently Note: do not forget to encode your AWS_SECRET, specifically replace '/ ' with '%2F'. If you don't specify AWS key/secret, the bucket must have READ and WRITE permissions for AWS user 1a85ad8fea02b4d948b962948f69972a72da6bed800a7e9ca7d0b43dc61d5869, See
http://docs.amazonwebservices.com/AmazonS3/latest/dev/ACLOverview.html#SpecifyingGrantee for details.

 

16 Sep 2010. WebM/VP8 and Ogg/Theora presets added

Format Name Allowed Values Default Values
output (required) — output format. Specify format of encoded file. flv, fl9, wmv, 3gp, mp4, m4v, ipod, iphone, ipad, android, ogg, webm, appletv, psp, zune, mp3, wma, m4a, thumbnail*, image **, mpeg2 ***, iphone_stream, ipad_stream ****.  
video_codec - Video codec. flv: flv, libx264, vp6 **
fl9: libx264
wmv, zune: wmv2, msmpeg4
3gp, android: h263, mpeg4, libx264
m4v: mpeg4
mp4, ipod, iphone, ipad, appletv, psp: mpeg4, libx264
ogg: libtheora
webm: libvpx
mp3, wma: none
mpeg2: mpeg2video
flv: flv fl9, ipod, iphone, ipad: libx264
wmv, zune: wmv2
3gp: h263
mp4, m4v,appletv, psp, android: mpeg4
ogg: libtheora
webm: libvpx

mpeg2: mpeg2video
audio_bitrate - Audio bitrate. Nk - where N is any non-zero integer
3gp: 4.75k, 5.15k, 5.9k, 6.7k, 7.4k, 7.95k, 10.2k, 12.2k
flv, wmv, mp3, wma, zune: 32k, 40k, 48k, 56k, 64k, 80k, 96k, 112k, 128k, 144k, 160k, 192k, 224k, 256k, 320k
ogg, webm: 45k,64k, 80k, 96k, 112k, 128k, 160k, 192k, 224k, 256k, 320k, 500k
All: 64k
3gp, android: 12.2k
ipod, iphone, ipad, psp: 128k
audio_sample_rate - Audio sampling frequency (Hz). All: any non-zero integer.
3gp: 8000
flv, mp3: 11025, 22050, 44100
ogg, webm: 16000, 32000, 44100, 22050, 11025, 192000
wmv, wma, zune: 11025, 22050, 32000, 44100, 48000
mpeg2: 44100, 48000
All: none
3gp, android: 8000
flv, mp3, zune, mpeg2: 44100
audio_codec - Audio codec. mp3: libmp3lame
m4a: libfaac
flv: libmp3lame, libfaac
fl9, mp4, m4v, ipod, iphone, ipad, appletv, psp: libfaac
wmv, wma, zune: wmav2, libmp3lame
ogg, webm: libvorbis
3gp: libamr_nb
android: libamr_nb, libfaac
mpeg2: pcm_s16be, pcm_s16le
flv, mp3: libmp3lame
fl9, mp4, m4v, ipod, iphone, ipad, appletv, psp: libfaac
wmv, zune: wmav2
ogg, webm: libvorbis
3gp, android: libamr_nb
mpeg2: pcm_s16be
m4a: libfaac

 

12 Oct 2010. VP6 Flix

Format Name Allowed Values / Description
output (required) – output format. Specify format of encoded file. flv, fl9, wmv, 3gp, mp4, m4v, ipod, iphone, ipad, android, ogg, webm, appletv, psp, zune, mp3, wma, m4a, thumbnail*, image , mpeg2 *, iphone_stream, ipad_stream, vp6_flix .
vp6_profile Encoding profile
noise_reduction Determines the level of noise filtering to apply in the preprocessor.
upct Parameter for undershoot percentage.
kfinttype Keyframe interval type.
keyframe Keyframe period (in frames)
sharpness Controls the sharpness of the image in the output
cxmode Compress mode
logo_transparent Transparent color mask. Use for vp6_flix format only.

 

29 Sep 2010. Metadata tags added

Format Name Description
title — Title of the media
copyright — Copyright information
author — Source author
description — Media description
album — Media album

 

16 Sep 2010. Hinting MP4 files

Format Name Allowed Values Default Values
hint - MP4 only. Whether to add RTP data (for streaming servers). yes, no. All: None
mp4: no

29 Jul 2010. Android preset added

Format Name Allowed Values
output [required] — output format. Specify format of encoded file. flv, fl9, wmv, 3gp, mp4, m4v, ipod, iphone, ipad, android, appletv, psp, zune, mp3, wma, m4a, thumbnail*, image **, mpeg2 ***, iphone_stream, ipad_stream ****.

 

14 Jul 2010. New defaults and preset for iPhone Streaming

Format Name Allowed Values Default Values
output — output format. Specify format of encoded file. flv, fl9, wmv, 3gp, mp4, m4v, ipod, iphone, ipad, appletv, psp, zune, mp3, wma, m4a, thumbnail*, image **, mpeg2 ***, iphone_stream, ipad_stream ****. none
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>[iphone_stream|ipad_stream]</output>
        <bitrates>[CommaSeparatedList]</bitrates> 
        <framerates>[CommaSeparatedList]</framerates> 
        <keyframes>[CommaSeparatedList]</keyframes> 
        <segment_duration>[Duration]</segment_duration>
        <pack_files>[yes|no]</pack_files>
        <add_audio_only>[yes|no]</add_audio_only>
        <still_image>[no|each_segment|first_segment]</still_image>
        <still_image_time>[Time]</still_image_time>
        <still_image_size>[Size]</still_image_size>
        <!-- Destination fields -->
        <destination>[DestFile]</destination> <!-- REQUIRED -->
        <!-- ... -->
    </format>
</query>
Format Name Allowed Values Default Values
bitrates — Comma separated list of video bitrates. One or more valid bitrate values, separated by comma iphone_stream: 600k,400k,200k,110k ipad_stream: 1200k,800k,600k,400k,200k,110k
framerates — Comma separated list of framerates, according to previous parameter One or more valid framerate values, separated by comma iphone_stream: 29.97,29.97,15,10 ipad_stream: 29.97,29.97,29.97,29.97,15,10
keyframes — Comma separated list of keyframe parameters. One or more valid keyframe values, separated by comma iphone_stream: 90,90,45,30 ipad_stream: 90,90,90,90,45,30
segment_duration - Segment duration to split media (in seconds) Non-negative integer 10
pack_files - Whether to pack result files to single tarball yes, no yes
add_audio_only - Whether to add audio-only stream yes, no no
still_image - Embed still image in the audio-only stream no, each_segment, first_segment no
still_image_time - The time from the beginning of segment to capture still image Non-negative number greater than 0.01 or hh:mm:ss.ms none
still_image_size - The size of the still image WxH where W and H - positive integers 480x320

 

20 May 2010. Audio-only stream for iPhone Streaming

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>iphone_stream</output>
        <bitrates>[CommaSeparatedList]</bitrates> 
        <segment_duration>[Duration]</segment_duration>
        <pack_files>[yes|no]</pack_files>
        <add_audio_only>[yes|no]</add_audio_only>
        <still_image>[no|each_segment|first_segment]</still_image>
        <still_image_time>[Time]</still_image_time>
        <still_image_size>[Size]</still_image_size>
        <!-- Destination fields -->
        <destination>[DestFile]</destination> <!-- optional -->
        <!-- ... -->
    </format>
</query>
Format Name Allowed Values Default Values
add_audio_only - Whether to add audio-only stream yes, no no
still_image - Embed still image in the audio-only stream no, each_segment, first_segment no
still_image_time - The time from the beginning of segment to capture still image Non-negative number greater than 0.01 or hh:mm:ss.ms none
still_image_size - The size of the still image WxH where W and H - positive integers 320x240

6 Apr 2010. iPad preset added

Format Name Allowed Values
output (required) — output format. Specify format of encoded file. flv, fl9, wmv, 3gp, mp4, m4v, ipod, iphone, ipad, appletv, psp, zune, mp3, wma, m4a, thumbnail*, image **, mpeg2 ***, iphone_stream ****.

 

3 Feb 2010

iPhone Streaming Features

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>iphone_stream</output>
        <bitrates>[CommaSeparatedList]</bitrates> 
        <segment_duration>[Duration]</segment_duration>
        <pack_files>[yes|no]</pack_files>
        <!-- Destination fields -->
        <destination>[DestFile]</destination> <!-- optional -->
        <!-- ... -->
    </format>
</query>

With the following specific parameters:

Format Name Allowed Values Default Values
bitrates — Comma separated list of bitrates. One or more valid bitrate values, separated by comma 96k,256k,800k
segment_duration - Segment duration to split media (in seconds) Non-negative integer 10
pack_files - Whether to pack result files to single tarball yes, no yes

Image Converting Changes

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>image</output>
        <image_format>jpg</image_format>
        <resize_method>resize</resize_method>
        <size>560x420</size>
        <keep_aspect_ratio>yes</keep_aspect_ratio>
        <quality>75</quality>
        <sharpen_radius>1</sharpen_radius>
        <sharpen_sigma>0.5</sharpen_sigma>
        <remove_metadata>no</remove_metadata>
        <!-- Destination fields -->
        <destination>[DestFile]</destination>
        <!-- ... -->
    </format>
</query>

With the following specific parameters:

Format Name Allowed Values Default Values
image_format [required] — Format of resulting image. jpg, png, gif jpg
size — Size of resulting image. WxH or Wx0 or 0xH or Wx or xH, where W and H are positive integers none
resize_method - How the original picture will be inscribed to new size resize, crop, combine resize
keep_aspect_ratio - Whether to keep width to height ratio of original picture yes, no yes
quality - JPEG quality jpg: 1-100
All: none
80
sharpen_radius - Sharpen radius (use 0 in most cases) Integer: 0-10 none
sharpen_sigma - Sharpen amount (best are 0.5-1.0) Float: 0, 0.2-10 0
remove_metadata - Whether to remove image meta data (incl. EXIF) yes, no no

Advanced H.264 Parameters

To see the example for parameters please follow this link

23 Dec 2009. Extended GetStatus action

Simple mode

<?xml version="1.0"?>
<response>
    <id>[MediaID]</id>
    <userid>[UserID]</userid>
    <sourcefile>[SourceFile]</sourcefile>
    <status>[MediaStatus]</status>
    <notifyurl>[NotifyURL]</notifyurl>
    <created>[Date]</created>
    <started>[Date]</started>
    <finished>[Date]</finished>
    <prevstatus>[MediaStatus]</prevstatus>
    <downloaded>[Date]</downloaded>
    <uploaded>[Date]</uploaded>
    <time_left>[TotalTimeLeft]</time_left>
    <progress>[TotalProgress]</progress>
    <time_left_current>[StatusTimeLeft]</time_left_current>
    <progress_current>[StatusProgress]</progress_current>   
    <format>
        <id>[ID]</id>
        <status>[Status]</status>
        <created>[Date]</created>
        <started>[Date]</started>
        <finished>[Date]</finished>
        <!-- Format fields -->
        <s3_destination>[TempS3Link]</s3_destination> <!-- optional -->
        <cf_destination>[TempCFLink]</cf_destination> <!-- optional -->
    </format>
    <format>
        <!-- ... -->
    </format>
</response>
 
Where Date is of the format: YYYY-MM-DD HH:MM:SS 
FormatFields is a set of fields corresponding to <format> section of an user's API request
TotalTimeLeft is an estimated time until the media processing would be finished
StatusTimeLeft is an estimated time left for the media's current status
TotalProgress is an estimated progress for entire media processing (in percent)
StatusProgress is an estimated progress for the media's current status (in percent)
TempS3Link S3 URL of the encoded file, if the <destination> was empty and result put to S3
TempCFLink CDN URL of the encoded file, if the <destination> was empty and result put to Rackspace CloudFiles
 
MediaStatus can take the following values: 'New', 'Downloading', 'Ready to process', 'Waiting for encoder', 'Processing', 'Saving', 'Finished', 'Error'.
 
Status can take the following values: 'New', 'Waiting for encoder', 'Processing', 'Saving', 'Finished', 'Error'.
 

Extended (batch) mode

to request the status of several medias in one request:
 
Request:
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid>
    <userkey>[UserKey]</userkey>
    <action>GetStatus</action>
    <extended>yes</extended>
    <mediaid>[CommaSeparatedList]</mediaid>
</query>
 
Response:
<response>
    <job>
        <id>[MediaID]</id>
        <userid>[UserID]</userid>
        <sourcefile>[SourceFile]</sourcefile>
        <status>[MediaStatus]</status>
        <notifyurl>[NotifyURL]</notifyurl>
        <created>[Date]</created>
        <started>[Date]</started>
        <finished>[Date]</finished>
        <prevstatus>[MediaStatus]</prevstatus>
        <downloaded>[Date]</downloaded>
        <filesize>[FileSize]</filesize>
        <processor>[AMAZON | RACKSPACE]</processor>
        <progress>[TotalProgress]</progress>
        <time_left>[TotalTimeLeft]</time_left>
        <format>
            <id>[ID]</id>
            <status>[Status]</status>
            <created>[Date]</created>
            <started>[Date]</started>
            <finished>[Date]</finished>
            <s3_destination>[TempS3Link]</s3_destination> <!-- optional -->
            <cf_destination>[TempCFLink]</cf_destination> <!-- optional -->
            <convertedsize>[FileSize]</convertedsize>
            <time_left>[TotalTimeLeft]</time_left>
            <progress>[TotalProgress]</progress>
            <time_left_current>[StatusTimeLeft]</time_left_current>
            <progress_current>[StatusPorgress]</progress_current>
            <file_size>[FileSize]</file_size>
        </format>
        <format>
            <!-- ... -->
        </format>
    </job>
    <job>
        lt;!-- ... -->
    </job>
    <!-- ... -->
</response>

22 Dec 2009

MPEG-2 output

Format Name Allowed Values Default Values
output (required) – output format. Specify format of encoded file. flv, fl9, wmv, 3gp, mp4, m4v, ipod, iphone, appletv, psp, zune, mp3, wma, mpeg2, thumbnail*, image **, mpeg2 ***.  
video_codec - Video codec. flv: flv, libx264, vp6 **
fl9: libx264
wmv, zune: wmv2, msmpeg4
3gp: h263, libx264
m4v: mpeg4
mp4, ipod, iphone, appletv, psp: mpeg4, libx264
mpeg2: mpeg2video
mp3, wma: none
flv: flv
fl9: libx264
wmv, zune: wmv2
3gp: h263
mp4, m4v, ipod, iphone, appletv, psp: mpeg4
mpeg2: mpeg2video
* - see Thumbnail Features
** - see Image Converting Features
*** - just experimental feature, please use with case, feedback is welcome
audio_sample_rate - Audio sampling frequency (Hz). All: any non-zero integer.
3gp: 8000
flv, mp3: 11025, 22050, 44100
wmv, wma, zune: 11025, 22050, 32000, 44100, 48000 mpeg2: 44100, 48000
All: none
3gp: 8000
flv, mp3, zune, mpeg2: 44100
audio_codec - Audio codec. mp3: libmp3lame
flv: libmp3lame, libfaac
fl9, mp4, m4v, ipod, iphone, appletv, psp: libfaac
wmv, wma, zune: wmav2, libmp3lame
3gp: libamr_nb
mpeg2: pcm_s16be, pcm_s16le
flv, mp3: libmp3lame
fl9, mp4, m4v, ipod, iphone, appletv, psp: libfaac
wmv, zune: wmav2
3gp: libamr_nb
mpeg2: pcm_s16be

 

Using Rackspace Cloud Files as a source or a destination

 
To specify your source file are to be taken from or result files to be put to Rackspace Cloud Files folder, you should specify your source or destination URLs in two different ways:
 
1) virtual URL http://RS_USER:RS_KEY@storage.cloudfiles.com/your_folder/file.ext
 
2) Real URL if you were authenticated yourself recently like this:
 
https://storage4.clouddrive.com/v1/MossoCloudFS_cea19775-aa94-4d78-8da9-1a7b4bbbd548/your_folder/file.ext?auth-token=c2633419-7b79-3d58-8417-d63666dddfd5
 

Image Converting Features

 
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>image</output>
        <image_format>jpg</image_format>
        <resize_method>resize</resize_method>
        <size>560x420</size>
        <keep_aspect_ratio>yes</keep_aspect_ratio>
        <quality>75</quality>
        <sharpen_radius>1</sharpen_radius>
        <sharpen_sigma>0.5</sharpen_sigma>
        <!-- Destination fields -->
        <destination>[DestFile]</destination>
    </format>
</query>
 
With the following specific parameters:
 
Format Name Allowed Values Default Values
image_format [required] – Format of resulting image. jpg, png, gif jpg
size [required] – Size of resulting image. WxH or Wx or xH, where W and H are positive integers none
resize_method - How the original picture will be inscribed to new size resize, crop, combine resize
keep_aspect_ratio - Whether to keep width to height ratio of original picture yes, no yes
quality - JPEG quality jpg: 1-100 All: none 80
sharpen_radius - Sharpen radius (use 0 in most cases) Integer: 0-10 none
sharpen_sigma - Sharpen amount (best are 0.5-1.0) Float: 0.2-10 0.5

 

20 Oct 2008. Additional S3 Options

Main fields

UserID – an unique user identifier. Can be taken from user's page.
UserKey – user's key string. Creates automatically when user created and can be changed by user.
Action – the action to be performed.
  • AddMedia – add new media to user's media list, creates new items in a queue according to formats specified in XML
  • AddMediaBenchmark - add new media to user's media list and set a flag for NOT processing it after downloading. Format fields could be specified as well. If NotifyURL is set, a notification will be sent after the media will have been ready for processing.
  • UpdateMedia – replace information about existing media's formats. All old format items will be deleted, and the new ones added.
  • ProcessMedia - start encoding of previously downloaded media (one that added with AddMediaBenchmark action)
  • CancelMedia – delete specified media and all its items in queue
  • GetMediaList – return list of user's media
  • GetStatus – return information about selected user's media and all its items in queue
  • GetMediaInfo - returns some video parameters of the specified media, if available
MediaID – an unique identifier of media. This field must be specified for the following actions: UpdateMedia, CancelMedia, GetStatus.
SourceFile – media source file. It can be in the following formats: http://[user]:[password]@ [server]/[path]/[filename] or ftp://[user]:[password]@[server]/[path]/[filename] or sftp://[user]:[password]@[server]/[path]/[filename] or http://[AWS_KEY:AWS_PWD@][bucket].s3.amazonaws.com/[filename] – If you need your S3 files to be accessed with your own AWS credentials, add your AWS key/secret to the URL. Note: do not forget to encode your AWS_SECRET, specifically replace '/ ' with '%2F'. If you don't specify AWS key/secret, the object must have READ permission for AWS user 1a85ad8fea02b4d948b962948f69972a72da6bed800a7e9ca7d0b43dc61d5869 (or for all users). See http://docs.amazonwebservices.com/AmazonS3/latest/dev/ACLOverview.html#SpecifyingGrantee for details. This field must be specified only for AddMedia and AddMediaBenchmark actions.
NotifyURL – could be either an HTTP(S) URL of the script the result would be posted to, or a mailto: link with email address the result info to be sent. This field may be specified for AddMedia and AddMediaBenchmark actions.
 
...
 

Destination fields

 
Format Name Allowed Values Default Values
destination - The destination URL to put the encoded file. ftp://[user]:[password]@[server]/[path]/[filename][?passive=yes],
sftp://[user]:[password]@[server]/[path]/[filename],
http://[AWS_KEY:AWS_SECRET@][bucket].s3.amazonaws.com/[filename][?acl=public-read | authenticated-read] - If you need your S3 files to be accessed with your own AWS credentials, add your AWS key/secret to the URL.
Note: do not forget to encode your AWS_SECRET, specifically replace '/ ' with '%2F'.
If you don't specify AWS key/secret, the bucket must have WRITE permission for AWS user 1a85ad8fea02b4d948b962948f69972a72da6bed800a7e9ca7d0b43dc61d5869, See http://docs.amazonwebservices.com/AmazonS3/latest/dev/ACLOverview.html#SpecifyingGrantee for details.
Also, you can add ?acl=public-read OR ?acl=authenticated-read after the filename. This will explicitly set access rights to the saved object instead of the default settings.
None
thumb_destination - The destination URL to put the thumbnail. ftp://[user]:[password]@[server]/[path]/[filename], http://[AWS_KEY:AWS_SECRET@][bucket].s3.amazonaws.com/[filename] None

 

18 Nov 2009

AAC added as an option for FLV

Format Name Allowed values: Default values:
audio_codec [optional] — Audio codec. mp3: libmp3lame
flv: libmp3lame, libfaac
fl9, mp4, m4v, ipod, iphone, appletv, psp: libfaac
wmv, wma, zune: wmav2, libmp3lame
3gp: libamr_nb
flv, mp3: libmp3lame
fl9, mp4, m4v, ipod, iphone, appletv, psp: libfaac
wmv, zune: wmav2
3gp: libamr_nb

Frame resizing ability added

Format Name Allowed Values Default Values
keep_aspect_ratio - Whether to keep width to height ratio of the original frame size yes, no yes
Additional watermarking options

Logo fields

Format Name Allowed Values Default Values
logo_source [required] - The URL of the logo image. The image format can be GIF, JPG or PNG. http://[user[:password]@]hostname[:port]/[path]/[filename],
ftp://[user[:password]@]hostname[:port]/[path]/[filename][?passive=yes],
sftp://[user[:password]@]hostname[:port]/[path]/[filename],
none
logo_x  - left offset of logo image non-negative integer 10
logo_y  - top offset of logo image non-negative integer 10
logo_mode  - video and watermarking picture mixing mode 0, 1 1
logo_threshold  - Threshold color mask 6-digits hexadecimal 000000-FFFFFF 000000

How mode and threshold work

logo_mode 0: The watermark picture works like this (assuming color intensities 0..0xFF): Per color do this (assuming logo_threshold is '808080'): If mask color is 0x80, no change to the original frame. If mask color is < 0x80 the absolute difference is subtracted from the frame. If result < 0, result = 0. If mask color is > 0x80 the absolute difference is added to the frame. If result > 0xFF, result = 0xFF. If threshold is 000000 the color value of watermark is added to the destination.

logo_mode 1: Per color do this: If mask color > threshold color then the watermark pixel is used.

24 June 2009. Turbo encoding speed now available

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <turbo>yes</turbo>
        <!-- ... -->
    </format>
</query>
NOTE: Additional encoding bandwidth charges apply, see the Turbo Encoding Help Article for more details.

21 May 2009

Audio output formats added

Format Name Allowed Values Default Values
output (required) – output format. Specify format of encoded file. flv, fl9, wmv, 3gp, mp4, m4v, ipod, iphone, appletv, psp, zune, mp3, wma and thumbnail*. none

Adjusting audio volume

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <audio_volume>[Volume]</audio_volume>
        <!-- ... -->
    </format>
</query>
 
Format Name Allowed Values Default Values
audio_volume - Audio volume level, in percent. non-negative integer 100

H.264 in FLV container

Format Name Allowed Values Default Values
video_codec - Video codec. flv: flv, libx264, vp6 **
fl9: libx264
wmv, zune: wmv2, msmpeg4
3gp: h263, libx264
m4v: mpeg4
mp4, ipod, iphone, appletv, psp: mpeg4, libx264
mp3, wma: none
flv: flv
fl9: libx264
wmv, zune: wmv2
3gp: h263
mp4, m4v, ipod, iphone, appletv, psp: mpeg4
mp3, wma: none

 

27 Feb 2009. thumb_* parameters are going away

Format Name Allowed Values Default Values
thumb_time [optional, deprecated***] - Timestamp (in seconds) to capture thumbnail. integer None
thumb_size [optional, deprecated***] - Thumbnail size (in pixels). WxH, where W and H are any non-zero integers. None
thumb_destination [optional, deprecated***] - The destination URL to put the thumbnail. ftp://[user]:[password]@[server]/[path]/[filename],
http://[AWS_KEY:AWS_SECRET@][bucket].s3.amazonaws.com/[filename]
None
*** - see Thumbnail Features chapter

 

30 Dec 2008

VP6 encoding moved under FLV format

Format Name Allowed Values Default Values
video_codec — Video codec. flv: flv, vp6 fl9: libx264 wmv, zune: wmv2, msmpeg4 3gp: h263, libx264 m4v: mpeg4 mp4, ipod, iphone, appletv, psp: mpeg4, libx264 flv: flv fl9: libx264 wmv, zune: wmv2 3gp: h263 mp4, m4v, ipod, iphone, appletv, psp: mpeg4

VP6 Features

If you choose 'vp6' codec for 'flv' output format, your XML query will differ (less number of parameters are supported, see below):

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>flv</output>
        <video_codec>vp6</video_codec>
        <bitrate></bitrate> <!-- optional -->
        <size></size> <!-- optional -->
        <audio_bitrate>64k</audio_bitrate> <!-- optional -->
        <audio_sample_rate>44100</audio_sample_rate> <!-- optional -->
        <audio_channels_number>2</audio_channels_number> <!-- optional -->
        <framerate></framerate> <!-- optional -->
        <destination></destination> <!-- optional -->
    </format>
</query>
Note: old-style requests with <output>vp6</output> are deprecated and will be automatically converted to the new form.
 
Custom keyframe interval and video splicing added
 
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <keyframe>[Keyframe Period (GOP)]</keyframe>
        <start>[Start From]</start>
        <duration>[Result Duration]</duration>
        <!-- Destination fields -->
        <!-- ... -->
        <!-- Logo fields (OPTIONAL) -->
        <!-- ... -->
    </format>
</query>
 

Format fields

 
Format Name Allowed Values Default Values
keyframe — Keyframe period, in frames. positive integer. 300
start — Start encoding from (sec). non-negative integer. None
duration — Duration (sec). positive integer. None

 

26 Dec 2008. H.264 is now available for mp4, ipod, iphone, appletv, psp and 3gp formats

Format Name Allowed Values
video_codec — Video codec. flv: flv
fl9: libx264
wmv, zune: wmv2, msmpeg4
3gp: h263, libx264
m4v: mpeg4
mp4, ipod, iphone, appletv, psp: mpeg4, libx264

 

6 Nov 2008. Automatic frame size calculation (maintaining aspect ratio)

Format Name Allowed Values Default Values
size — Video frame size. All: WxH, where W and N are any even integers.
3gp: 128x96, 176x144, 352x288, 704x576, 1408x1152
ipod: 320x240, 640x480
iphone: 480x368
appletv: 710x480
zune: 320x180, 320x240
All: none
3gp: 176x144
iphone: 480x368
appletv: 710x480
psp: 368x192
zune: 320x180
Note: You can specify only one dimension: either width or height. In this case, set other dimension to 0. (I.e. 640x0).

21 Oct 2008. Additional encoding options

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>[Output format]</output>
        <video_codec>[Video Codec]</video_codec>
        <audio_codec>[Audio Codec]</audio_codec>
        <bitrate>[Video bitrate]</bitrate>
        <audio_bitrate>[Audio bitrate]</audio_bitrate>
        <audio_sample_rate>[Audio quality]</audio_sample_rate>
        <size>[Size]</size>
        <crop_left>[Crop Left]</crop_left>
        <crop_top>[Crop Top]</crop_top>
        <crop_right>[Crop Right]</crop_right>
        <crop_bottom>[Crop Bottom]</crop_bottom>
        <thumb_time>[Thumb time]</thumb_time>
        <thumb_size>[Thumb size]</thumb_size>
        <add_meta>[yes/no]</add_meta>
        <rc_init_occupancy>[RC Occupancy]</rc_init_occupancy>
        <minrate>[Min Rate]</minrate>
        <maxrate>[Max Rate]</maxrate>
        <bufsize>[RC Buffer Size]</bufsize>
        <!-- Destination fields -->
        <!-- ... -->
        <!-- Logo fields (OPTIONAL) -->     
        <!-- ... -->
    </format>
</query>

Format fields

Format Name Allowed Values Default Values
maxrate - Maximum allowed video bitrate. N or Nk - where N is any non-zero integer. None
minrate - Minimum allowed video bitrate. N or Nk - where N is any non-zero integer. None
bufsize - Rate control buffer size (bits). N or Nk - where N is any non-zero integer. None
rc_init_occpancy - Initial rate control buffer occupancy (bits). N or Nk - where N is any non-zero integer. None

20 Oct 2008. Watermarking

XML format for user's API request

<?xml version="1.0"?>
<query>
    <!-- Main fields -->
    <userid>[UserID]</userid>
    <userkey>[UserKey]</userkey>
    <action>[Action]</action>
    <mediaid>[MediaID]</mediaid>
    <source>[SourceFile]</source>
    <notify>[NotifyURL]</notify>
    <format>
        <!-- Format fields -->
        <output>[Output format]</output>
        <video_codec>[Video Codec]</video_codec>
        <audio_codec>[Audio Codec]</audio_codec>
        <bitrate>[Video bitrate]</bitrate>
        <audio_bitrate>[Audio bitrate]</audio_bitrate>
        <audio_sample_rate>[Audio quality]</audio_sample_rate>
        <size>[Size]</size>
        <crop_left>[Crop Left]</crop_left>
        <crop_top>[Crop Top]</crop_top>
        <crop_right>[Crop Right]</crop_right>
        <crop_bottom>[Crop Bottom]</crop_bottom>
        <thumb_time>[Thumb time]</thumb_time>
        <thumb_size>[Thumb size]</thumb_size>
        <add_meta>[yes/no]</add_meta>
        <!-- Destination fields -->
        <destination>[DestFile]</destination>
        <thumb_destination>[Thumb Dest]</thumb_destination>
        <!-- Logo fields (OPTIONAL) -->     
        <logo>
                <logo_source>[LogoURL]</logo_source>
                <logo_x>[LogoLeft]</logo_x>     
                <logo_y>[LogoTop]</logo_y>                      
        </logo>
    </format>
</query>

Logo fields

Format Name Allowed Values Default Values
logo_source [required] - The URL of the logo image. The image format can be GIF, JPG or PNG. http://[user]:[password]@ [server]/[path]/[filename], ftp://[user]:[password]@[server]/[path]/[filename][?passive=yes], sftp://[user]:[password]@[server]/[path]/[filename], None
logo_x - left offset of logo image non-negative integer 10
logo_y - top offset of logo image non-negative integer 10

 

29 Sep 2008. Passive FTP support

Main fields

UserID – an unique user identifier. Can be taken from user's page.
UserKey – user's key string. Creates automatically when user created and can be changed by user.
Action – the action to be performed.
  • AddMedia – add new media to user's media list, creates new items in a queue according to formats specified in XML
  • AddMediaBenchmark - add new media to user's media list and set a flag for NOT processing it after downloading. Format fields could be specified as well.
  • UpdateMedia – replace information about existing media's formats. All old format items will be deleted, and the new ones added.
  • ProcessMedia - start encoding of previously downloaded media (one that added with AddMediaBenchmark action)
  • CancelMedia – delete specified media and all its items in queue
  • GetMediaList – return list of user's media
  • GetStatus – return information about selected user's media and all its items in queue
  • GetMediaInfo - returns some video parameters of the specified media, if available
MediaID – an unique identifier of media. This field must be specified for the following actions: UpdateMedia, CancelMedia, GetStatus.
SourceFile – media source file. It can be in the following formats: http://[user]:[password]@ [server]/[path]/[filename] or ftp://[user]:[password]@[server]/[path]/[filename][?passive=yes] or sftp://[user]:[password]@[server]/[path]/[filename] or http://[bucket].s3.amazonaws.com/[filename] – the object must have READ permission for AWS user 1a85ad8fea02b4d948b962948f69972a72da6bed800a7e9ca7d0b43dc61d5869 (or for all users). See http://docs.amazonwebservices.com/AmazonS3/latest/dev/ACLOverview.html#SpecifyingGranteefor details. This field must be specified only for AddMedia action.
 
NotifyURL – could be either an URL of the script the result would be posted to, or a mailto: link with email address the result info to be sent. This field may be specified for AddMedia action.

Destination fields

Format Name Allowed Values Default Values
destination - The destination URL to put the encoded file. ftp://[user]:[password]@[server]/[path]/[filename][?passive=yes], sftp://[user]:[password]@[server]/[path]/[filename], http://[bucket].s3.amazonaws.com/[filename] (the bucket must have WRITE permission for AWS user 1a85ad8fea02b4d948b962948f69972a72da6bed800a7e9ca7d0b43dc61d5869, See http://docs.amazonwebservices.com/AmazonS3/latest/dev/ACLOverview.html#SpecifyingGrantee for details).
 
None
thumb_destination - The destination URL to put the thumbnail. ftp://[user]:[password]@[server]/[path]/[filename], http://[bucket].s3.amazonaws.com/[filename] (the bucket must have WRITE permission for AWS user 1a85ad8fea02b4d948b962948f69972a72da6bed800a7e9ca7d0b43dc61d5869, See http://docs.amazonwebservices.com/AmazonS3/latest/dev/ACLOverview.html#SpecifyingGrantee for details).
 
None

Note: Adding ?passive=yes to the FTP URL forces downloader/uploader use Passive Mode for FTP Transfer. Also, you can specify ?passive=no (the default) explicitly. It will take the same effect that if you don't specify this parameter at all.

Realtime status updates

GetStatus action

 
<?xml version="1.0"?>
<response>
    <id>[MediaID]</id>
    <userid>[UserID]</userid>
    <sourcefile>[SourceFile]</sourcefile>
    <status>[MediaStatus]</status>
    <notifyurl>[NotifyURL]</notifyurl>
    <created>[Date]</created>
    <started>[Date]</started>
    <finished>[Date]</finished>
    <downloaded>[Date]</downloaded>
    <time_left>[TotalTimeLeft]</time_left>
    <progress>[TotalProgress]</progress>
    <time_left_current>[StatusTimeLeft]</time_left_current>
    <progress_current>[StatusProgress]</progress_current>   
    <format>
        <id>[ID]</id>
        <status>[Status]</status>
        <created>[Date]</created>
        <started>[Date]</started>
        <finished>[Date]</finished>
        <!-- Format fields -->
    </format>
    <format>
        <!-- ... -->
    </format>
</response>
 
Where Date is of the format: YYYY-MM-DD HH:MM:SS 
FormatFields is a set of fields corresponding to <format> section of an user's API request
TotalTimeLeft is an estimated time until the media processing would be finished
StatusTimeLeft is an estimated time left for the media's current status
TotalProgress is an estimated progress for entire media processing (in percent)
StatusProgress is an estimated progress for the media's current status (in percent)
Notification after AddMediaBenchMark call

Main fields

UserID – an unique user identifier. Can be taken from user's page.
UserKey – user's key string. Creates automatically when user created and can be changed by user.
Action – the action to be performed.
  • AddMedia – add new media to user's media list, creates new items in a queue according to formats specified in XML
  • AddMediaBenchmark - add new media to user's media list and set a flag for NOT processing it after downloading. Format fields could be specified as well. If NotifyURL is set, a notification will be sent after the media will have been ready for processing.
 

29 Sep 2008. Temporary http download of encoded videos

GetStatus action

<?xml version="1.0"?>
<response>
    <id>[MediaID]</id>
    <userid>[UserID]</userid>
    <sourcefile>[SourceFile]</sourcefile>
    <status>[MediaStatus]</status>
    <notifyurl>[NotifyURL]</notifyurl>
    <created>[Date]</created>
    <started>[Date]</started>
    <finished>[Date]</finished>
    <prevstatus>[MediaStatus]</prevstatus>
    <downloaded>[Date]</downloaded>
    <uploaded>[Date]</uploaded>
    <time_left>[TotalTimeLeft]</time_left>
    <progress>[TotalProgress]</progress>
    <time_left_current>[StatusTimeLeft]</time_left_current>
    <progress_current>[StatusProgress]</progress_current>   
    <format>
        <id>[ID]</id>
        <status>[Status]</status>
        <created>[Date]</created>
        <started>[Date]</started>
        <finished>[Date]</finished>
        <!-- Format fields -->
        <s3_destination>[TempS3Link]</s3_destination>
    </format>
    <format>
        lt;!-- ... -->
    </format>
</response>
 
Where Date is of the format: YYYY-MM-DD HH:MM:SS 
FormatFields is a set of fields corresponding to <format> section of an user's API request
TotalTimeLeft is an estimated time until the media processing would be finished
StatusTimeLeft is an estimated time left for the media's current status
TotalProgress is an estimated progress for entire media processing (in percent)
StatusProgress is an estimated progress for the media's current status (in percent)
TempS3Link S3 URL of the encoded file, if the <destination> was empty
 

28 Aug 2008. API requests through SSL

The XML API Overview

The communication with the encoding.com is realized through a single interface: by sending HTTP(S) requests to the manage.encoding.com/. All client requests and server answers use XML format. Client must send HTTP(S) POST request with single parameter named xml.
The server response is a normal XML document.
 

20 Aug 2008. Additional information added to GetMediaInfo response

GetMediaInfo action

<?xml version="1.0"?>
<response>
    <bitrate>364k</bitrate>
    <duration>175.21</duration>
    <video_codec>h264</video_codec>
    <frame_rate>23.98</frame_rate>  
    <audio_sample_rate>44100</audio_sample_rate>        
    <size>352x288</size>
</response>

19 Aug 2008. New API features

Format fields

The following parameters was added:
Format Name Allowed Values Default Values
two_pass - Whether to use 2-pass encoding yes, no no
cbr - Whether to use CBR (Constant bitrate) yes, no no
deinterlacing - Whether to use de-interlacing yes, no no

 

06 Aug 2008. Default frame size changed

Changed:

Format fields

Format Name Allowed Values Default Values
size - Video frame size. All: WxH, whereW and N are any non-zero even integers. 3gp: 128x96, 176x144, 352x288, 704x576, 1408x1152 ipod: 320x240, 640x480 iphone: 480x368 appletv: 710x480 zune: 320x180, 320x240 All: none 3gp: 176x144 iphone: 480x368 appletv: 710x480 psp: 368x192 zune: 320x180
Media Benchmarking API functions
At the section XML format for user's API request
Changed:

Main fields

UserID – an unique user identifier. Can be taken from user's page.
UserKey – user's key string. Creates automatically when user created and can be changed by user.
Action – the action to be performed.
  • AddMedia – add new media to user's media list, creates new items in a queue according to formats specified in XML
  • AddMediaBenchmark - add new media to user's media list and set a flag for NOT processing it after downloading. Format fields could be specified as well.
  • UpdateMedia – replace information about existing media's formats. All old format items will be deleted, and the new ones added.
  • ProcessMedia - start encoding of previously downloaded media (one that added with AddMediaBenchmark action)
  • CancelMedia – delete specified media and all its items in queue
  • GetMediaList – return list of user's media
  • GetStatus – return information about selected user's media and all its items in queue
  • GetMediaInfo - returns some video parameters of the specified media, if available
MediaID – an unique identifier of media. This field must be specified for the following actions: UpdateMedia, CancelMedia, GetStatus.
SourceFile – media source file. It can be in the following formats: http://[user]:[password]@ [server]/[path]/[filename] or ftp://[user]:[password]@[server]/[path]/[filename] or sftp://[user]:[password]@[server]/[path]/[filename] or http://[bucket].s3.amazonaws.com/[filename] – the object must have READ permission for AWS user 1a85ad8fea02b4d948b962948f69972a72da6bed800a7e9ca7d0b43dc61d5869 (or for all users). See http://docs.amazonwebservices.com/AmazonS3/latest/dev/ACLOverview.html#SpecifyingGrantee for details. This field must be specified only for AddMedia action.
 
NotifyURL – could be either an URL of the script the result would be posted to, or a mailto: link with email address the result info to be sent. This field may be specified for AddMedia action.
 

Added:
GetMediaInfo action

<?xml version="1.0"?>
<response>
    <bitrate>364k</bitrate>
    <duration>175.21</duration>
    <video_codec>h264</video_codec>
    <size>352x288</size>
</response>

15 Jul 2008

Added: 

Multiple Thumbnail Support

Instead of using thumb_ parameters within <format>, you can specify separate encoding task with output = thumbnail:
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>thumbnail</output>
        <time>[Size]</time>     
        <width>[Width]</width>
        <height>[Size]</height>
        <!-- Destination fields -->
        <destination>[DestFile]</destination>
        <!-- ... -->
    </format>
</query>
 
With the following specific parameters:
Format Name Allowed Values Default Values
time – Timestamp (in seconds) to capture thumbnail. Non-negative integer or hh:mm:ss.ms 5
width - Thumbnail width (in pixels) Non-negative integer none
height - Thumbnail height (in pixels) Non-negative integer none

 

destination  — The destination URL to put the thumbnail.
If you specify both width and height, you'll get a thumbnail with these dimensions, and if your video have another aspect ratio than the thumbnail, black spaces will be added to the picture.
If you specify only one parameter from this pair, the other one will be calculated according to your video size.
If none of those parameters specified, the thumbnail will have the same size as your video have.
Now only JPEG format is supported for thumbnails.
 
At the section Server Response XML format
New server response format added:

AddMedia action

<?xml version="1.0"?>
<response>
    <message>Added</message>
    <MediaID>[MediaID]</MediaID>
</response>

3 Jul 2008. VP6 Support

Added:

VP6 Features

If you choose vp6 for output format, your XML query will differ (you can specify only two parameters in addition to output at format fields section):
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <!-- Format fields -->
        <output>vp6</output>
        <profile>[VP6 profile]</profile>
        <size>[Size]</size>
        <!-- Destination fields -->
        <destination>[DestFile]</destination>
        <!-- ... -->
    </format>
</query>
The specific parameter profile is added:
Format Name Allowed Values Default Values
profile — VP6 profile. VP6-E, VP6-S VP6-E

destination [required] - The destination URL to put the encoded file.

Concatenate Videos

With this feature, you can combine multiple source video files into one file.  To use this feature via the User Interface, you can add multiple video sources in the "Add Media" section and they will automatically combine into one file (in sequential order) during the encoding process. To utilize this concatenation feature via the API, you should use several <source> elements in your XML request which will be added sequentially during the encoding process.  In addition, you can use different source video URLs / locations (HTTP, FTP, S3, CloudFiles) along with different media properties for each source video (format, frame size, bitrate, codec, etc...).  [Read more]  For example:

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <source>[SourceFile]</source>
    <source>[SourceFile1]</source> 
    <!-- if multiple SourceFile added, they will be concatenated --> 
    ... 
    <source>[SourceFileN]</source>
    <format>
        <!-- Format fields -->
    </format>
</query>