Encoding.com API Documentation

The Encoding.com API

Welcome to the EDC developer hub. You'll find comprehensive guides and documentation to help you start working with EDC as quickly as possible, as well as support if you get stuck. Let's jump right in!

    Recent API Changes
Suggest Edits

Welcome Developers

This page will help you get started with the Encoding.com API.

 

It's time to integrate an ultra fast cloud media processing service into your CMS, MAM or proprietary media workflow. Our API will give you access to over 40 professionally maintained encoding engines for all your media processing needs, from decoding, transcoding, audio processing, image processing, closed caption conversion, programmatic editing, adaptive bitrate packaging and digital right management.

1. Register

Access both the Encoding.com and Vid.ly APIs via our Developer account that includes API credentials, 1 GB of free encoding bandwidth per month and access to all of our powerful features. Usage rates apply to Vid.ly usage.

When ready to deploy your video application, simply log in to the Encoding.com Client Interface and select one of the Monthly or Pre-Pay plans to meet your projected encoding volumes and SLA requirements. High-volume users should connect directly with us for custom plans. All of our plans are designed to scale with your usage.

2. Build and Post

Select target formats
Utilize one of our expert-designed web, mobile or set-top box presets, or customize and save your own encoding profiles. Presets are a great way to begin.

Build your XML or JSON template
Copy the XML from our web interface or code from scratch using our complete API documentation.

Post and Go
Send your XML/JSON template to our API endpoint via an HTTP post. Or, use our browser-based XML/JSON submission tool to verify and test your XML/JSON without writing a single line of code.

3. Integrate

Accelerate your development
We have API wrappers for all popular languages: PHP, Zend, Ruby, Python, Java, ColdFusion, .NET, VBS

Design your workflow
Chose from basic or advanced workflows using AddMedia or AddMediaBenchmark. Add a simple listener script to receive our notification posts informing you when jobs are complete.

Browser video upload system (UGV)
Enable end users to upload videos directly to Encoding.com. Use our out-of-the-box PHP or .NET code that includes API integration, browser-based upload functions, a progress bar, notifications and cloud storage.

Suggest Edits

Workflow Overview

 

API Workflow Overview

API Workflow Overview

The Encoding.com API allows you to automate your high volume workflow by integrating a fast and scalable media processing platform into your, CMS, MAM, or application. Our XML or JSON API is the most mature, well documented and feature rich cloud encoding API on the market. Our API Builder will help generate properly formatted XML, to test your JSON or XML requests before writing a single line of code. Here is how is works: Your application sends either the AddMedia or AddMediaBenchmark API request to Encoding.com which includes:

   * The [source location](https://api.encoding.com/#sourcemedialocation) of your video.
   * Job notification location (http or email)
   * One or multiple custom or preset encoding recipes.
   * One or multiple [delivery destinations](https://api.encoding.com/#outputdestinations) for your video.

Encoding.com responds immediately with a media ID so your application can track the progress of the job. With the fastest SLA backed queue times in the industry, Encoding.com processes all of your jobs in parallel on dedicated multi core servers. Our platform scales and assigns compute in realtime based on your needs so if you sent us 1 job with 1 output, it would process just as fast as if you sent us 250 jobs each with 10 outputs. When processing is complete, we will automatically send your output to your specified destination and send an http or email notification to your application. Notification posts are originating from 34.193.0.100 or 52.200.5.10. See our help article for a complete list of IP ranges if you are interested in allowing firewall access. However, please note the IP addresses within a public cloud environment are subject to change often and without notice. Our XML or JSON API can be quickly integrated into applications written in any language. To accelerate your development, we provide and support code libraries in many popular languages: PHP, Java, CFM, C#. There are also dozens of unofficial code libraries. Some API Features to note: Easily copy custom or preset XML encoding templates in the client interface and then use with the API GetStatus or GetStatusExtended : Will deliver individual job progress per media ID throughout all phases of the job. Possible status results are: New, Downloading, Downloaded, Ready to process, Waiting for encoder, Processing, Saving, Finished, Error, Stopped Perform advanced editing: watermarks, cropping, thumbnail generation, concatenation, picture in picture, custom text overlay. GetmediaInfo: Get detailed media information about your source video to store in your application or customize your encoding recipes. Complete sub user account system lets you manage sub users and isolate sub users encoding usage.

Suggest Edits

End Point

This is where Encoding.com API requests are sent.

 

To send API requests to Encoding.com, please send HTTP(S) post requests to:

http(s)://manage.encoding.com

All client requests and server responses use the XML or JSON format. Clients must send the HTTP(S) POST request with a single parameter named xml (or json for JSON request). The server response will be a normal XML document or JSON string. Please urlencode any special characters in source or destination url paths and then url encode the entire XML request using content-type: application/x-www-form-urlencoded.

Suggest Edits

Authentication

How to access your Encoding.com account securely.

 

UserID
A unique user identifier. This number can be found in the My Account tab of the Client Interface.

UserKey
A user’s unique authentication key string. Created automatically when a user is created and can be regenerated at anytime in the My Account tab of the User Interface.

Suggest Edits

Sample MP4 Template

Below is a template to create a basic mp4 output.

 
<?xml version="1.0"?>
<query>
  <userid><<id>></userid>
  <userkey><<key>></userkey>
  <action>AddMedia</action>
  <source>[SOURCE URL]</source>
    <format> 
        <output>mp4</output> 
        <size>320x240</size> 
        <bitrate>256k</bitrate> 
        <audio_bitrate>64k</audio_bitrate> 
        <audio_channels_number>2</audio_channels_number> 
        <keep_aspect_ratio>yes</keep_aspect_ratio> 
        <video_codec>mpeg4</video_codec> 
        <profile>main</profile> 
        <VCodecParameters>no</VCodecParameters> 
        <audio_codec>libfaac</audio_codec> 
        <two_pass>no</two_pass> 
        <cbr>no</cbr> 
        <deinterlacing>no</deinterlacing> 
        <keyframe>300</keyframe> 
        <audio_volume>100</audio_volume> 
        <file_extension>mp4</file_extension> 
        <hint>no</hint> 
    </format>
</query>
{
  "query": {
    "userid": "",
    "userkey": "",
    "action": "AddMedia",
    "source": "[SOURCE URL]",
    "format": {
      "output": "mp4",
      "size": "320x240",
      "bitrate": "256k",
      "audio_bitrate": "64k",
      "audio_channels_number": "2",
      "keep_aspect_ratio": "yes",
      "video_codec": "mpeg4",
      "profile": "main",
      "VCodecParameters": "no",
      "audio_codec": "libfaac",
      "two_pass": "no",
      "cbr": "no",
      "deinterlacing": "no",
      "keyframe": "300",
      "audio_volume": "100",
      "file_extension": "mp4",
      "hint": "no"
    }
  }
}
Suggest Edits

Sample HLS Template

 

Below is a basic HLS output using our advanced_hls output format.

<?xml version="1.0"?>
<query>
  <userid><<id>></userid>
  <userkey><<key>></userkey>
  <action>AddMedia</action>
  <source>[SOURCE URL]</source>
  <format>
    <destination>[DESTINATION URL]</destination>
    <output>advanced_hls</output>
    <stream>
      <audio_bitrate>64k</audio_bitrate>
      <audio_codec>dolby_heaac</audio_codec>
      <bitrate>200k</bitrate>
      <framerate>29.97</framerate>
      <keyframe>90</keyframe>
      <profile>baseline</profile>
      <video_codec>libx264</video_codec>
      <video_codec_parameters>
        <sc_threshold>0</sc_threshold>
        <coder>0</coder>
        <flags>+loop</flags>
        <flags2>-wpred-dct8x8</flags2>
        <cmp>+chroma</cmp>
        <partitions>+parti8x8+parti4x4+partp8x8+partb8x8</partitions>
        <me_method>hex</me_method>
        <subq>7</subq>
        <me_range>16</me_range>
        <bf>0</bf>
        <keyint_min>25</keyint_min>
        <i_qfactor>0.71</i_qfactor>
        <b_strategy>1</b_strategy>
        <qcomp>0.6</qcomp>
        <qmin>10</qmin>
        <qmax>51</qmax>
        <qdiff>4</qdiff>
        <directpred>1</directpred>
        <trellis>1</trellis>
        <level>13</level>
        <refs>3</refs>
        <wpredp>0</wpredp>
        <vprofile>baseline</vprofile>
      </video_codec_parameters>
      <ftyp>mp42</ftyp>
      <size>416x234</size>
      <audio_sample_rate>44100</audio_sample_rate>
      <audio_channels_number>2</audio_channels_number>
      <keep_aspect_ratio>yes</keep_aspect_ratio>
      <two_pass>no</two_pass>
      <cbr>no</cbr>
      <hard_cbr>no</hard_cbr>
      <deinterlacing>auto</deinterlacing>
      <video_sync>old</video_sync>
      <audio_volume>100</audio_volume>
      <rotate>def</rotate>
      <metadata_copy>no</metadata_copy>
      <strip_chapters>no</strip_chapters>
      <pix_format>yuv420p</pix_format>
      <veryfast>auto</veryfast>
      <copy_timestamps>yes</copy_timestamps>
      <encryption>no</encryption>
      <encryption_method>aes-128-cbc</encryption_method>
      <hint>no</hint>
      <set_rotate>0</set_rotate>
      <copy_nielsen_metadata>no</copy_nielsen_metadata>
      <nielsen_distributor_id></nielsen_distributor_id>
      <duration_precision>0</duration_precision>
      <audio_only>no</audio_only>
      <video_only>no</video_only>
      <add_iframe_stream>no</add_iframe_stream>
      <still_image>no</still_image>
      <still_image_time>5</still_image_time>
      <still_image_size>480x320</still_image_size>
      <byte_range>no</byte_range>
      <group_id></group_id>
      <use_group_id></use_group_id>
      <drm>no</drm>
      <init_video_codec_parameters>
        <sc_threshold>0</sc_threshold>
      </init_video_codec_parameters>
    </stream>
    <stream>
      <audio_bitrate>64k</audio_bitrate>
      <audio_codec>dolby_heaac</audio_codec>
      <two_pass>yes</two_pass>
      <bitrate>400k</bitrate>
      <framerate>29.97</framerate>
      <keyframe>90</keyframe>
      <profile>baseline</profile>
      <video_codec>libx264</video_codec>
      <video_codec_parameters>
        <sc_threshold>0</sc_threshold>
        <coder>0</coder>
        <flags>+loop</flags>
        <flags2>-wpred-dct8x8</flags2>
        <cmp>+chroma</cmp>
        <partitions>+parti8x8+parti4x4+partp8x8+partb8x8</partitions>
        <me_method>hex</me_method>
        <subq>7</subq>
        <me_range>16</me_range>
        <bf>0</bf>
        <keyint_min>25</keyint_min>
        <i_qfactor>0.71</i_qfactor>
        <b_strategy>1</b_strategy>
        <qcomp>0.6</qcomp>
        <qmin>10</qmin>
        <qmax>51</qmax>
        <qdiff>4</qdiff>
        <directpred>1</directpred>
        <trellis>1</trellis>
        <level>13</level>
        <refs>3</refs>
        <wpredp>0</wpredp>
        <vprofile>baseline</vprofile>
      </video_codec_parameters>
      <ftyp>mp42</ftyp>
      <size>480x270</size>
      <audio_sample_rate>44100</audio_sample_rate>
      <audio_channels_number>2</audio_channels_number>
      <keep_aspect_ratio>yes</keep_aspect_ratio>
      <cbr>no</cbr>
      <hard_cbr>no</hard_cbr>
      <deinterlacing>auto</deinterlacing>
      <video_sync>old</video_sync>
      <audio_volume>100</audio_volume>
      <rotate>def</rotate>
      <metadata_copy>no</metadata_copy>
      <strip_chapters>no</strip_chapters>
      <pix_format>yuv420p</pix_format>
      <veryfast>auto</veryfast>
      <copy_timestamps>yes</copy_timestamps>
      <encryption>no</encryption>
      <encryption_method>aes-128-cbc</encryption_method>
      <hint>no</hint>
      <set_rotate>0</set_rotate>
      <copy_nielsen_metadata>no</copy_nielsen_metadata>
      <nielsen_distributor_id></nielsen_distributor_id>
      <duration_precision>0</duration_precision>
      <audio_only>no</audio_only>
      <video_only>no</video_only>
      <add_iframe_stream>no</add_iframe_stream>
      <still_image>no</still_image>
      <still_image_time>5</still_image_time>
      <still_image_size>480x320</still_image_size>
      <byte_range>no</byte_range>
      <group_id></group_id>
      <use_group_id></use_group_id>
      <drm>no</drm>
      <init_video_codec_parameters>
        <sc_threshold>0</sc_threshold>
      </init_video_codec_parameters>
    </stream>
    <stream>
      <audio_bitrate>64k</audio_bitrate>
      <audio_codec>dolby_heaac</audio_codec>
      <two_pass>yes</two_pass>
      <bitrate>600k</bitrate>
      <framerate>29.97</framerate>
      <profile>baseline</profile>
      <video_codec>libx264</video_codec>
      <video_codec_parameters>
        <sc_threshold>0</sc_threshold>
        <coder>0</coder>
        <flags>+loop</flags>
        <flags2>-wpred-dct8x8</flags2>
        <cmp>+chroma</cmp>
        <partitions>+parti8x8+parti4x4+partp8x8+partb8x8</partitions>
        <me_method>hex</me_method>
        <subq>7</subq>
        <me_range>16</me_range>
        <bf>0</bf>
        <keyint_min>25</keyint_min>
        <i_qfactor>0.71</i_qfactor>
        <b_strategy>1</b_strategy>
        <qcomp>0.6</qcomp>
        <qmin>10</qmin>
        <qmax>51</qmax>
        <qdiff>4</qdiff>
        <directpred>1</directpred>
        <trellis>1</trellis>
        <level>13</level>
        <refs>3</refs>
        <wpredp>0</wpredp>
        <vprofile>baseline</vprofile>
      </video_codec_parameters>
      <ftyp>mp42</ftyp>
      <size>640x360</size>
      <audio_sample_rate>44100</audio_sample_rate>
      <audio_channels_number>2</audio_channels_number>
      <keep_aspect_ratio>yes</keep_aspect_ratio>
      <cbr>no</cbr>
      <hard_cbr>no</hard_cbr>
      <deinterlacing>auto</deinterlacing>
      <video_sync>old</video_sync>
      <keyframe>90</keyframe>
      <audio_volume>100</audio_volume>
      <rotate>def</rotate>
      <metadata_copy>no</metadata_copy>
      <strip_chapters>no</strip_chapters>
      <pix_format>yuv420p</pix_format>
      <veryfast>auto</veryfast>
      <copy_timestamps>yes</copy_timestamps>
      <encryption>no</encryption>
      <encryption_method>aes-128-cbc</encryption_method>
      <hint>no</hint>
      <set_rotate>0</set_rotate>
      <copy_nielsen_metadata>no</copy_nielsen_metadata>
      <nielsen_distributor_id></nielsen_distributor_id>
      <duration_precision>0</duration_precision>
      <audio_only>no</audio_only>
      <video_only>no</video_only>
      <add_iframe_stream>no</add_iframe_stream>
      <still_image>no</still_image>
      <still_image_time>5</still_image_time>
      <still_image_size>480x320</still_image_size>
      <byte_range>no</byte_range>
      <group_id></group_id>
      <use_group_id></use_group_id>
      <drm>no</drm>
      <init_video_codec_parameters>
        <sc_threshold>0</sc_threshold>
      </init_video_codec_parameters>
    </stream>
    <stream>
      <audio_bitrate>96k</audio_bitrate>
      <audio_codec>dolby_heaac</audio_codec>
      <two_pass>yes</two_pass>
      <bitrate>1200k</bitrate>
      <framerate>29.97</framerate>
      <profile>baseline</profile>
      <video_codec>libx264</video_codec>
      <video_codec_parameters>
        <sc_threshold>0</sc_threshold>
        <coder>0</coder>
        <flags>+loop</flags>
        <flags2>-wpred-dct8x8</flags2>
        <cmp>+chroma</cmp>
        <partitions>+parti8x8+parti4x4+partp8x8+partb8x8</partitions>
        <me_method>hex</me_method>
        <subq>7</subq>
        <me_range>16</me_range>
        <bf>0</bf>
        <keyint_min>25</keyint_min>
        <i_qfactor>0.71</i_qfactor>
        <b_strategy>1</b_strategy>
        <qcomp>0.6</qcomp>
        <qmin>10</qmin>
        <qmax>51</qmax>
        <qdiff>4</qdiff>
        <directpred>1</directpred>
        <trellis>1</trellis>
        <level>13</level>
        <refs>3</refs>
        <wpredp>0</wpredp>
        <vprofile>baseline</vprofile>
      </video_codec_parameters>
      <ftyp>mp42</ftyp>
      <size>640x360</size>
      <audio_sample_rate>44100</audio_sample_rate>
      <audio_channels_number>2</audio_channels_number>
      <keep_aspect_ratio>yes</keep_aspect_ratio>
      <cbr>no</cbr>
      <hard_cbr>no</hard_cbr>
      <deinterlacing>auto</deinterlacing>
      <video_sync>old</video_sync>
      <keyframe>90</keyframe>
      <audio_volume>100</audio_volume>
      <rotate>def</rotate>
      <metadata_copy>no</metadata_copy>
      <strip_chapters>no</strip_chapters>
      <pix_format>yuv420p</pix_format>
      <veryfast>auto</veryfast>
      <copy_timestamps>yes</copy_timestamps>
      <encryption>no</encryption>
      <encryption_method>aes-128-cbc</encryption_method>
      <hint>no</hint>
      <set_rotate>0</set_rotate>
      <copy_nielsen_metadata>no</copy_nielsen_metadata>
      <nielsen_distributor_id></nielsen_distributor_id>
      <duration_precision>0</duration_precision>
      <audio_only>no</audio_only>
      <video_only>no</video_only>
      <add_iframe_stream>no</add_iframe_stream>
      <still_image>no</still_image>
      <still_image_time>5</still_image_time>
      <still_image_size>480x320</still_image_size>
      <byte_range>no</byte_range>
      <group_id></group_id>
      <use_group_id></use_group_id>
      <drm>no</drm>
      <init_video_codec_parameters>
        <sc_threshold>0</sc_threshold>
      </init_video_codec_parameters>
    </stream>
    <stream>
      <audio_bitrate>96k</audio_bitrate>
      <audio_codec>dolby_heaac</audio_codec>
      <two_pass>yes</two_pass>
      <bitrate>3500k</bitrate>
      <framerate>29.97</framerate>
      <profile>main</profile>
      <video_codec>libx264</video_codec>
      <video_codec_parameters>
        <sc_threshold>0</sc_threshold>
        <coder>1</coder>
        <flags>+loop</flags>
        <flags2>-bpyramid+fastpskip-dct8x8</flags2>
        <cmp>+chroma</cmp>
        <partitions>+parti8x8+parti4x4+partp8x8+partb8x8</partitions>
        <me_method>hex</me_method>
        <subq>6</subq>
        <me_range>16</me_range>
        <keyint_min>25</keyint_min>
        <i_qfactor>0.71</i_qfactor>
        <b_strategy>1</b_strategy>
        <qcomp>0.6</qcomp>
        <qmin>10</qmin>
        <qmax>51</qmax>
        <qdiff>4</qdiff>
        <directpred>1</directpred>
        <level>30</level>
        <vprofile>main</vprofile>
      </video_codec_parameters>
      <ftyp>mp42</ftyp>
      <size>960x540</size>
      <audio_sample_rate>44100</audio_sample_rate>
      <audio_channels_number>2</audio_channels_number>
      <keep_aspect_ratio>yes</keep_aspect_ratio>
      <cbr>no</cbr>
      <hard_cbr>no</hard_cbr>
      <deinterlacing>auto</deinterlacing>
      <video_sync>old</video_sync>
      <keyframe>90</keyframe>
      <audio_volume>100</audio_volume>
      <rotate>def</rotate>
      <metadata_copy>no</metadata_copy>
      <strip_chapters>no</strip_chapters>
      <pix_format>yuv420p</pix_format>
      <veryfast>auto</veryfast>
      <copy_timestamps>yes</copy_timestamps>
      <encryption>no</encryption>
      <encryption_method>aes-128-cbc</encryption_method>
      <hint>no</hint>
      <set_rotate>0</set_rotate>
      <copy_nielsen_metadata>no</copy_nielsen_metadata>
      <nielsen_distributor_id></nielsen_distributor_id>
      <duration_precision>0</duration_precision>
      <audio_only>no</audio_only>
      <video_only>no</video_only>
      <add_iframe_stream>no</add_iframe_stream>
      <still_image>no</still_image>
      <still_image_time>5</still_image_time>
      <still_image_size>480x320</still_image_size>
      <byte_range>no</byte_range>
      <group_id></group_id>
      <use_group_id></use_group_id>
      <drm>no</drm>
      <init_video_codec_parameters>
        <sc_threshold>0</sc_threshold>
      </init_video_codec_parameters>
    </stream>
    <stream>
      <audio_bitrate>128k</audio_bitrate>
      <audio_codec>dolby_heaac</audio_codec>
      <two_pass>yes</two_pass>
      <bitrate>5000k</bitrate>
      <framerate>29.97</framerate>
      <profile>main</profile>
      <video_codec>libx264</video_codec>
      <video_codec_parameters>
        <sc_threshold>0</sc_threshold>
        <coder>1</coder>
        <flags>+loop</flags>
        <flags2>-bpyramid+fastpskip-dct8x8</flags2>
        <cmp>+chroma</cmp>
        <partitions>+parti8x8+parti4x4+partp8x8+partb8x8</partitions>
        <me_method>hex</me_method>
        <subq>6</subq>
        <me_range>16</me_range>
        <keyint_min>25</keyint_min>
        <i_qfactor>0.71</i_qfactor>
        <b_strategy>1</b_strategy>
        <qcomp>0.6</qcomp>
        <qmin>10</qmin>
        <qmax>51</qmax>
        <qdiff>4</qdiff>
        <directpred>1</directpred>
        <level>30</level>
        <vprofile>main</vprofile>
      </video_codec_parameters>
      <ftyp>mp42</ftyp>
      <size>1280x720</size>
      <audio_sample_rate>44100</audio_sample_rate>
      <audio_channels_number>2</audio_channels_number>
      <keep_aspect_ratio>yes</keep_aspect_ratio>
      <cbr>no</cbr>
      <hard_cbr>no</hard_cbr>
      <deinterlacing>auto</deinterlacing>
      <video_sync>old</video_sync>
      <keyframe>90</keyframe>
      <audio_volume>100</audio_volume>
      <rotate>def</rotate>
      <metadata_copy>no</metadata_copy>
      <strip_chapters>no</strip_chapters>
      <pix_format>yuv420p</pix_format>
      <veryfast>auto</veryfast>
      <copy_timestamps>yes</copy_timestamps>
      <encryption>no</encryption>
      <encryption_method>aes-128-cbc</encryption_method>
      <hint>no</hint>
      <set_rotate>0</set_rotate>
      <copy_nielsen_metadata>no</copy_nielsen_metadata>
      <nielsen_distributor_id></nielsen_distributor_id>
      <duration_precision>0</duration_precision>
      <audio_only>no</audio_only>
      <video_only>no</video_only>
      <add_iframe_stream>no</add_iframe_stream>
      <still_image>no</still_image>
      <still_image_time>5</still_image_time>
      <still_image_size>480x320</still_image_size>
      <byte_range>no</byte_range>
      <group_id></group_id>
      <use_group_id></use_group_id>
      <drm>no</drm>
      <init_video_codec_parameters>
        <sc_threshold>0</sc_threshold>
      </init_video_codec_parameters>
    </stream>
    <stream>
      <audio_bitrate>128k</audio_bitrate>
      <audio_codec>dolby_heaac</audio_codec>
      <two_pass>yes</two_pass>
      <bitrate>6500k</bitrate>
      <framerate>29.97</framerate>
      <profile>main</profile>
      <video_codec>libx264</video_codec>
      <video_codec_parameters>
        <sc_threshold>0</sc_threshold>
        <coder>1</coder>
        <flags>+loop</flags>
        <flags2>-bpyramid+fastpskip-dct8x8</flags2>
        <cmp>+chroma</cmp>
        <partitions>+parti8x8+parti4x4+partp8x8+partb8x8</partitions>
        <me_method>hex</me_method>
        <subq>6</subq>
        <me_range>16</me_range>
        <keyint_min>25</keyint_min>
        <i_qfactor>0.71</i_qfactor>
        <b_strategy>1</b_strategy>
        <qcomp>0.6</qcomp>
        <qmin>10</qmin>
        <qmax>51</qmax>
        <qdiff>4</qdiff>
        <directpred>1</directpred>
        <level>30</level>
        <vprofile>main</vprofile>
      </video_codec_parameters>
      <ftyp>mp42</ftyp>
      <size>1280x720</size>
      <audio_sample_rate>44100</audio_sample_rate>
      <audio_channels_number>2</audio_channels_number>
      <keep_aspect_ratio>yes</keep_aspect_ratio>
      <cbr>no</cbr>
      <hard_cbr>no</hard_cbr>
      <deinterlacing>auto</deinterlacing>
      <video_sync>old</video_sync>
      <keyframe>90</keyframe>
      <audio_volume>100</audio_volume>
      <rotate>def</rotate>
      <metadata_copy>no</metadata_copy>
      <strip_chapters>no</strip_chapters>
      <pix_format>yuv420p</pix_format>
      <veryfast>auto</veryfast>
      <copy_timestamps>yes</copy_timestamps>
      <encryption>no</encryption>
      <encryption_method>aes-128-cbc</encryption_method>
      <hint>no</hint>
      <set_rotate>0</set_rotate>
      <copy_nielsen_metadata>no</copy_nielsen_metadata>
      <nielsen_distributor_id></nielsen_distributor_id>
      <duration_precision>0</duration_precision>
      <audio_only>no</audio_only>
      <video_only>no</video_only>
      <add_iframe_stream>no</add_iframe_stream>
      <still_image>no</still_image>
      <still_image_time>5</still_image_time>
      <still_image_size>480x320</still_image_size>
      <byte_range>no</byte_range>
      <group_id></group_id>
      <use_group_id></use_group_id>
      <drm>no</drm>
      <init_video_codec_parameters>
        <sc_threshold>0</sc_threshold>
      </init_video_codec_parameters>
    </stream>
    <stream>
      <audio_bitrate>128k</audio_bitrate>
      <audio_codec>dolby_heaac</audio_codec>
      <two_pass>yes</two_pass>
      <bitrate>8500k</bitrate>
      <framerate>29.97</framerate>
      <profile>high</profile>
      <video_codec>libx264</video_codec>
      <video_codec_parameters>
        <sc_threshold>0</sc_threshold>
        <coder>1</coder>
        <flags>+loop</flags>
        <flags2>+bpyramid+wpred+mixed_refs+dct8x8-fastpskip</flags2>
        <cmp>+chroma</cmp>
        <partitions>+parti8x8+parti4x4+partp8x8+partb8x8</partitions>
        <me_method>umh</me_method>
        <subq>7</subq>
        <me_range>16</me_range>
        <bf>16</bf>
        <keyint_min>25</keyint_min>
        <i_qfactor>0.71</i_qfactor>
        <b_strategy>1</b_strategy>
        <qcomp>0.6</qcomp>
        <qmin>10</qmin>
        <qmax>51</qmax>
        <qdiff>4</qdiff>
        <directpred>3</directpred>
        <level>30</level>
        <refs>4</refs>
        <psy>0</psy>
      </video_codec_parameters>
      <ftyp>mp42</ftyp>
      <size>1920x1080</size>
      <audio_sample_rate>44100</audio_sample_rate>
      <audio_channels_number>2</audio_channels_number>
      <keep_aspect_ratio>yes</keep_aspect_ratio>
      <cbr>no</cbr>
      <hard_cbr>no</hard_cbr>
      <deinterlacing>auto</deinterlacing>
      <video_sync>old</video_sync>
      <keyframe>90</keyframe>
      <audio_volume>100</audio_volume>
      <rotate>def</rotate>
      <metadata_copy>no</metadata_copy>
      <strip_chapters>no</strip_chapters>
      <pix_format>yuv420p</pix_format>
      <veryfast>auto</veryfast>
      <copy_timestamps>yes</copy_timestamps>
      <encryption>no</encryption>
      <encryption_method>aes-128-cbc</encryption_method>
      <hint>no</hint>
      <set_rotate>0</set_rotate>
      <copy_nielsen_metadata>no</copy_nielsen_metadata>
      <nielsen_distributor_id></nielsen_distributor_id>
      <duration_precision>0</duration_precision>
      <audio_only>no</audio_only>
      <video_only>no</video_only>
      <add_iframe_stream>no</add_iframe_stream>
      <still_image>no</still_image>
      <still_image_time>5</still_image_time>
      <still_image_size>480x320</still_image_size>
      <byte_range>no</byte_range>
      <group_id></group_id>
      <use_group_id></use_group_id>
      <drm>no</drm>
      <init_video_codec_parameters>
        <sc_threshold>0</sc_threshold>
      </init_video_codec_parameters>
    </stream>
    <stream>
      <audio_bitrate>64k</audio_bitrate>
      <still_image>first_segment</still_image>
      <two_pass>yes</two_pass>
      <profile>baseline</profile>
      <video_codec>libx264</video_codec>
      <video_codec_parameters>
        <sc_threshold>0</sc_threshold>
        <coder>0</coder>
        <flags>+loop</flags>
        <flags2>-wpred-dct8x8</flags2>
        <cmp>+chroma</cmp>
        <partitions>+parti8x8+parti4x4+partp8x8+partb8x8</partitions>
        <me_method>hex</me_method>
        <subq>7</subq>
        <me_range>16</me_range>
        <bf>0</bf>
        <keyint_min>25</keyint_min>
        <i_qfactor>0.71</i_qfactor>
        <b_strategy>1</b_strategy>
        <qcomp>0.6</qcomp>
        <qmin>10</qmin>
        <qmax>51</qmax>
        <qdiff>4</qdiff>
        <directpred>1</directpred>
        <trellis>1</trellis>
        <level>13</level>
        <refs>3</refs>
        <wpredp>0</wpredp>
        <vprofile>baseline</vprofile>
      </video_codec_parameters>
      <ftyp>mp42</ftyp>
      <audio_only>yes</audio_only>
      <size>400x300</size>
      <bitrate>1024k</bitrate>
      <audio_sample_rate>44100</audio_sample_rate>
      <audio_channels_number>2</audio_channels_number>
      <framerate>30</framerate>
      <keep_aspect_ratio>yes</keep_aspect_ratio>
      <audio_codec>libfaac</audio_codec>
      <cbr>no</cbr>
      <hard_cbr>no</hard_cbr>
      <deinterlacing>auto</deinterlacing>
      <video_sync>old</video_sync>
      <keyframe>90</keyframe>
      <audio_volume>100</audio_volume>
      <rotate>def</rotate>
      <metadata_copy>no</metadata_copy>
      <strip_chapters>no</strip_chapters>
      <pix_format>yuv420p</pix_format>
      <veryfast>auto</veryfast>
      <copy_timestamps>yes</copy_timestamps>
      <encryption>no</encryption>
      <encryption_method>aes-128-cbc</encryption_method>
      <hint>no</hint>
      <set_rotate>0</set_rotate>
      <copy_nielsen_metadata>no</copy_nielsen_metadata>
      <nielsen_distributor_id></nielsen_distributor_id>
      <duration_precision>0</duration_precision>
      <video_only>no</video_only>
      <add_iframe_stream>no</add_iframe_stream>
      <still_image_time>5</still_image_time>
      <still_image_size>480x320</still_image_size>
      <byte_range>no</byte_range>
      <group_id></group_id>
      <use_group_id></use_group_id>
      <drm>no</drm>
      <init_video_codec_parameters>
        <sc_threshold>0</sc_threshold>
      </init_video_codec_parameters>
    </stream>
    <turbo>no</turbo>
    <twin_turbo>no</twin_turbo>
    <ui_main_source></ui_main_source>
    <ui_alternate_source></ui_alternate_source>
    <ui_stream></ui_stream>
    <segment_duration>9</segment_duration>
    <duration_precision>0</duration_precision>
    <pack_files>yes</pack_files>
    <pack_type>tar</pack_type>
    <pack_each_stream>no</pack_each_stream>
    <encryption>no</encryption>
    <encryption_key></encryption_key>
    <encryption_key_file></encryption_key_file>
    <segmenter>v3</segmenter>
    <copy_nielsen_metadata>no</copy_nielsen_metadata>
    <nielsen_breakout_code></nielsen_breakout_code>
    <nielsen_distributor_id></nielsen_distributor_id>
    <file_extension>tar</file_extension>
    <main_source></main_source>
    <alternate_source></alternate_source>
  </format>
</query>
{
  "query": {
    "userid": "",
    "userkey": "",
    "action": "AddMedia",
    "source": "[SOURCE URL]",
    "format": {
      "destination": "[DESTINATION URL]",
      "output": "advanced_hls",
      "stream": [
        {
          "audio_bitrate": "64k",
          "audio_codec": "dolby_heaac",
          "bitrate": "200k",
          "framerate": "29.97",
          "keyframe": "90",
          "profile": "baseline",
          "video_codec": "libx264",
          "video_codec_parameters": {
            "sc_threshold": "0",
            "coder": "0",
            "flags": "+loop",
            "flags2": "-wpred-dct8x8",
            "cmp": "+chroma",
            "partitions": "+parti8x8+parti4x4+partp8x8+partb8x8",
            "me_method": "hex",
            "subq": "7",
            "me_range": "16",
            "bf": "0",
            "keyint_min": "25",
            "i_qfactor": "0.71",
            "b_strategy": "1",
            "qcomp": "0.6",
            "qmin": "10",
            "qmax": "51",
            "qdiff": "4",
            "directpred": "1",
            "trellis": "1",
            "level": "13",
            "refs": "3",
            "wpredp": "0",
            "vprofile": "baseline"
          },
          "ftyp": "mp42",
          "size": "416x234",
          "audio_sample_rate": "44100",
          "audio_channels_number": "2",
          "keep_aspect_ratio": "yes",
          "two_pass": "no",
          "cbr": "no",
          "hard_cbr": "no",
          "deinterlacing": "auto",
          "video_sync": "old",
          "audio_volume": "100",
          "rotate": "def",
          "metadata_copy": "no",
          "strip_chapters": "no",
          "pix_format": "yuv420p",
          "veryfast": "auto",
          "copy_timestamps": "yes",
          "encryption": "no",
          "encryption_method": "aes-128-cbc",
          "hint": "no",
          "set_rotate": "0",
          "copy_nielsen_metadata": "no",
          "duration_precision": "0",
          "audio_only": "no",
          "video_only": "no",
          "add_iframe_stream": "no",
          "still_image": "no",
          "still_image_time": "5",
          "still_image_size": "480x320",
          "byte_range": "no",
          "drm": "no",
          "init_video_codec_parameters": { "sc_threshold": "0" }
        },
        {
          "audio_bitrate": "64k",
          "audio_codec": "dolby_heaac",
          "two_pass": "yes",
          "bitrate": "400k",
          "framerate": "29.97",
          "keyframe": "90",
          "profile": "baseline",
          "video_codec": "libx264",
          "video_codec_parameters": {
            "sc_threshold": "0",
            "coder": "0",
            "flags": "+loop",
            "flags2": "-wpred-dct8x8",
            "cmp": "+chroma",
            "partitions": "+parti8x8+parti4x4+partp8x8+partb8x8",
            "me_method": "hex",
            "subq": "7",
            "me_range": "16",
            "bf": "0",
            "keyint_min": "25",
            "i_qfactor": "0.71",
            "b_strategy": "1",
            "qcomp": "0.6",
            "qmin": "10",
            "qmax": "51",
            "qdiff": "4",
            "directpred": "1",
            "trellis": "1",
            "level": "13",
            "refs": "3",
            "wpredp": "0",
            "vprofile": "baseline"
          },
          "ftyp": "mp42",
          "size": "480x270",
          "audio_sample_rate": "44100",
          "audio_channels_number": "2",
          "keep_aspect_ratio": "yes",
          "cbr": "no",
          "hard_cbr": "no",
          "deinterlacing": "auto",
          "video_sync": "old",
          "audio_volume": "100",
          "rotate": "def",
          "metadata_copy": "no",
          "strip_chapters": "no",
          "pix_format": "yuv420p",
          "veryfast": "auto",
          "copy_timestamps": "yes",
          "encryption": "no",
          "encryption_method": "aes-128-cbc",
          "hint": "no",
          "set_rotate": "0",
          "copy_nielsen_metadata": "no",
          "duration_precision": "0",
          "audio_only": "no",
          "video_only": "no",
          "add_iframe_stream": "no",
          "still_image": "no",
          "still_image_time": "5",
          "still_image_size": "480x320",
          "byte_range": "no",
          "drm": "no",
          "init_video_codec_parameters": { "sc_threshold": "0" }
        },
        {
          "audio_bitrate": "64k",
          "audio_codec": "dolby_heaac",
          "two_pass": "yes",
          "bitrate": "600k",
          "framerate": "29.97",
          "profile": "baseline",
          "video_codec": "libx264",
          "video_codec_parameters": {
            "sc_threshold": "0",
            "coder": "0",
            "flags": "+loop",
            "flags2": "-wpred-dct8x8",
            "cmp": "+chroma",
            "partitions": "+parti8x8+parti4x4+partp8x8+partb8x8",
            "me_method": "hex",
            "subq": "7",
            "me_range": "16",
            "bf": "0",
            "keyint_min": "25",
            "i_qfactor": "0.71",
            "b_strategy": "1",
            "qcomp": "0.6",
            "qmin": "10",
            "qmax": "51",
            "qdiff": "4",
            "directpred": "1",
            "trellis": "1",
            "level": "13",
            "refs": "3",
            "wpredp": "0",
            "vprofile": "baseline"
          },
          "ftyp": "mp42",
          "size": "640x360",
          "audio_sample_rate": "44100",
          "audio_channels_number": "2",
          "keep_aspect_ratio": "yes",
          "cbr": "no",
          "hard_cbr": "no",
          "deinterlacing": "auto",
          "video_sync": "old",
          "keyframe": "90",
          "audio_volume": "100",
          "rotate": "def",
          "metadata_copy": "no",
          "strip_chapters": "no",
          "pix_format": "yuv420p",
          "veryfast": "auto",
          "copy_timestamps": "yes",
          "encryption": "no",
          "encryption_method": "aes-128-cbc",
          "hint": "no",
          "set_rotate": "0",
          "copy_nielsen_metadata": "no",
          "duration_precision": "0",
          "audio_only": "no",
          "video_only": "no",
          "add_iframe_stream": "no",
          "still_image": "no",
          "still_image_time": "5",
          "still_image_size": "480x320",
          "byte_range": "no",
          "drm": "no",
          "init_video_codec_parameters": { "sc_threshold": "0" }
        },
        {
          "audio_bitrate": "96k",
          "audio_codec": "dolby_heaac",
          "two_pass": "yes",
          "bitrate": "1200k",
          "framerate": "29.97",
          "profile": "baseline",
          "video_codec": "libx264",
          "video_codec_parameters": {
            "sc_threshold": "0",
            "coder": "0",
            "flags": "+loop",
            "flags2": "-wpred-dct8x8",
            "cmp": "+chroma",
            "partitions": "+parti8x8+parti4x4+partp8x8+partb8x8",
            "me_method": "hex",
            "subq": "7",
            "me_range": "16",
            "bf": "0",
            "keyint_min": "25",
            "i_qfactor": "0.71",
            "b_strategy": "1",
            "qcomp": "0.6",
            "qmin": "10",
            "qmax": "51",
            "qdiff": "4",
            "directpred": "1",
            "trellis": "1",
            "level": "13",
            "refs": "3",
            "wpredp": "0",
            "vprofile": "baseline"
          },
          "ftyp": "mp42",
          "size": "640x360",
          "audio_sample_rate": "44100",
          "audio_channels_number": "2",
          "keep_aspect_ratio": "yes",
          "cbr": "no",
          "hard_cbr": "no",
          "deinterlacing": "auto",
          "video_sync": "old",
          "keyframe": "90",
          "audio_volume": "100",
          "rotate": "def",
          "metadata_copy": "no",
          "strip_chapters": "no",
          "pix_format": "yuv420p",
          "veryfast": "auto",
          "copy_timestamps": "yes",
          "encryption": "no",
          "encryption_method": "aes-128-cbc",
          "hint": "no",
          "set_rotate": "0",
          "copy_nielsen_metadata": "no",
          "duration_precision": "0",
          "audio_only": "no",
          "video_only": "no",
          "add_iframe_stream": "no",
          "still_image": "no",
          "still_image_time": "5",
          "still_image_size": "480x320",
          "byte_range": "no",
          "drm": "no",
          "init_video_codec_parameters": { "sc_threshold": "0" }
        },
        {
          "audio_bitrate": "96k",
          "audio_codec": "dolby_heaac",
          "two_pass": "yes",
          "bitrate": "3500k",
          "framerate": "29.97",
          "profile": "main",
          "video_codec": "libx264",
          "video_codec_parameters": {
            "sc_threshold": "0",
            "coder": "1",
            "flags": "+loop",
            "flags2": "-bpyramid+fastpskip-dct8x8",
            "cmp": "+chroma",
            "partitions": "+parti8x8+parti4x4+partp8x8+partb8x8",
            "me_method": "hex",
            "subq": "6",
            "me_range": "16",
            "keyint_min": "25",
            "i_qfactor": "0.71",
            "b_strategy": "1",
            "qcomp": "0.6",
            "qmin": "10",
            "qmax": "51",
            "qdiff": "4",
            "directpred": "1",
            "level": "30",
            "vprofile": "main"
          },
          "ftyp": "mp42",
          "size": "960x540",
          "audio_sample_rate": "44100",
          "audio_channels_number": "2",
          "keep_aspect_ratio": "yes",
          "cbr": "no",
          "hard_cbr": "no",
          "deinterlacing": "auto",
          "video_sync": "old",
          "keyframe": "90",
          "audio_volume": "100",
          "rotate": "def",
          "metadata_copy": "no",
          "strip_chapters": "no",
          "pix_format": "yuv420p",
          "veryfast": "auto",
          "copy_timestamps": "yes",
          "encryption": "no",
          "encryption_method": "aes-128-cbc",
          "hint": "no",
          "set_rotate": "0",
          "copy_nielsen_metadata": "no",
          "duration_precision": "0",
          "audio_only": "no",
          "video_only": "no",
          "add_iframe_stream": "no",
          "still_image": "no",
          "still_image_time": "5",
          "still_image_size": "480x320",
          "byte_range": "no",
          "drm": "no",
          "init_video_codec_parameters": { "sc_threshold": "0" }
        },
        {
          "audio_bitrate": "128k",
          "audio_codec": "dolby_heaac",
          "two_pass": "yes",
          "bitrate": "5000k",
          "framerate": "29.97",
          "profile": "main",
          "video_codec": "libx264",
          "video_codec_parameters": {
            "sc_threshold": "0",
            "coder": "1",
            "flags": "+loop",
            "flags2": "-bpyramid+fastpskip-dct8x8",
            "cmp": "+chroma",
            "partitions": "+parti8x8+parti4x4+partp8x8+partb8x8",
            "me_method": "hex",
            "subq": "6",
            "me_range": "16",
            "keyint_min": "25",
            "i_qfactor": "0.71",
            "b_strategy": "1",
            "qcomp": "0.6",
            "qmin": "10",
            "qmax": "51",
            "qdiff": "4",
            "directpred": "1",
            "level": "30",
            "vprofile": "main"
          },
          "ftyp": "mp42",
          "size": "1280x720",
          "audio_sample_rate": "44100",
          "audio_channels_number": "2",
          "keep_aspect_ratio": "yes",
          "cbr": "no",
          "hard_cbr": "no",
          "deinterlacing": "auto",
          "video_sync": "old",
          "keyframe": "90",
          "audio_volume": "100",
          "rotate": "def",
          "metadata_copy": "no",
          "strip_chapters": "no",
          "pix_format": "yuv420p",
          "veryfast": "auto",
          "copy_timestamps": "yes",
          "encryption": "no",
          "encryption_method": "aes-128-cbc",
          "hint": "no",
          "set_rotate": "0",
          "copy_nielsen_metadata": "no",
          "duration_precision": "0",
          "audio_only": "no",
          "video_only": "no",
          "add_iframe_stream": "no",
          "still_image": "no",
          "still_image_time": "5",
          "still_image_size": "480x320",
          "byte_range": "no",
          "drm": "no",
          "init_video_codec_parameters": { "sc_threshold": "0" }
        },
        {
          "audio_bitrate": "128k",
          "audio_codec": "dolby_heaac",
          "two_pass": "yes",
          "bitrate": "6500k",
          "framerate": "29.97",
          "profile": "main",
          "video_codec": "libx264",
          "video_codec_parameters": {
            "sc_threshold": "0",
            "coder": "1",
            "flags": "+loop",
            "flags2": "-bpyramid+fastpskip-dct8x8",
            "cmp": "+chroma",
            "partitions": "+parti8x8+parti4x4+partp8x8+partb8x8",
            "me_method": "hex",
            "subq": "6",
            "me_range": "16",
            "keyint_min": "25",
            "i_qfactor": "0.71",
            "b_strategy": "1",
            "qcomp": "0.6",
            "qmin": "10",
            "qmax": "51",
            "qdiff": "4",
            "directpred": "1",
            "level": "30",
            "vprofile": "main"
          },
          "ftyp": "mp42",
          "size": "1280x720",
          "audio_sample_rate": "44100",
          "audio_channels_number": "2",
          "keep_aspect_ratio": "yes",
          "cbr": "no",
          "hard_cbr": "no",
          "deinterlacing": "auto",
          "video_sync": "old",
          "keyframe": "90",
          "audio_volume": "100",
          "rotate": "def",
          "metadata_copy": "no",
          "strip_chapters": "no",
          "pix_format": "yuv420p",
          "veryfast": "auto",
          "copy_timestamps": "yes",
          "encryption": "no",
          "encryption_method": "aes-128-cbc",
          "hint": "no",
          "set_rotate": "0",
          "copy_nielsen_metadata": "no",
          "duration_precision": "0",
          "audio_only": "no",
          "video_only": "no",
          "add_iframe_stream": "no",
          "still_image": "no",
          "still_image_time": "5",
          "still_image_size": "480x320",
          "byte_range": "no",
          "drm": "no",
          "init_video_codec_parameters": { "sc_threshold": "0" }
        },
        {
          "audio_bitrate": "128k",
          "audio_codec": "dolby_heaac",
          "two_pass": "yes",
          "bitrate": "8500k",
          "framerate": "29.97",
          "profile": "high",
          "video_codec": "libx264",
          "video_codec_parameters": {
            "sc_threshold": "0",
            "coder": "1",
            "flags": "+loop",
            "flags2": "+bpyramid+wpred+mixed_refs+dct8x8-fastpskip",
            "cmp": "+chroma",
            "partitions": "+parti8x8+parti4x4+partp8x8+partb8x8",
            "me_method": "umh",
            "subq": "7",
            "me_range": "16",
            "bf": "16",
            "keyint_min": "25",
            "i_qfactor": "0.71",
            "b_strategy": "1",
            "qcomp": "0.6",
            "qmin": "10",
            "qmax": "51",
            "qdiff": "4",
            "directpred": "3",
            "level": "30",
            "refs": "4",
            "psy": "0"
          },
          "ftyp": "mp42",
          "size": "1920x1080",
          "audio_sample_rate": "44100",
          "audio_channels_number": "2",
          "keep_aspect_ratio": "yes",
          "cbr": "no",
          "hard_cbr": "no",
          "deinterlacing": "auto",
          "video_sync": "old",
          "keyframe": "90",
          "audio_volume": "100",
          "rotate": "def",
          "metadata_copy": "no",
          "strip_chapters": "no",
          "pix_format": "yuv420p",
          "veryfast": "auto",
          "copy_timestamps": "yes",
          "encryption": "no",
          "encryption_method": "aes-128-cbc",
          "hint": "no",
          "set_rotate": "0",
          "copy_nielsen_metadata": "no",
          "duration_precision": "0",
          "audio_only": "no",
          "video_only": "no",
          "add_iframe_stream": "no",
          "still_image": "no",
          "still_image_time": "5",
          "still_image_size": "480x320",
          "byte_range": "no",
          "drm": "no",
          "init_video_codec_parameters": { "sc_threshold": "0" }
        },
        {
          "audio_bitrate": "64k",
          "still_image": "first_segment",
          "two_pass": "yes",
          "profile": "baseline",
          "video_codec": "libx264",
          "video_codec_parameters": {
            "sc_threshold": "0",
            "coder": "0",
            "flags": "+loop",
            "flags2": "-wpred-dct8x8",
            "cmp": "+chroma",
            "partitions": "+parti8x8+parti4x4+partp8x8+partb8x8",
            "me_method": "hex",
            "subq": "7",
            "me_range": "16",
            "bf": "0",
            "keyint_min": "25",
            "i_qfactor": "0.71",
            "b_strategy": "1",
            "qcomp": "0.6",
            "qmin": "10",
            "qmax": "51",
            "qdiff": "4",
            "directpred": "1",
            "trellis": "1",
            "level": "13",
            "refs": "3",
            "wpredp": "0",
            "vprofile": "baseline"
          },
          "ftyp": "mp42",
          "audio_only": "yes",
          "size": "400x300",
          "bitrate": "1024k",
          "audio_sample_rate": "44100",
          "audio_channels_number": "2",
          "framerate": "30",
          "keep_aspect_ratio": "yes",
          "audio_codec": "libfaac",
          "cbr": "no",
          "hard_cbr": "no",
          "deinterlacing": "auto",
          "video_sync": "old",
          "keyframe": "90",
          "audio_volume": "100",
          "rotate": "def",
          "metadata_copy": "no",
          "strip_chapters": "no",
          "pix_format": "yuv420p",
          "veryfast": "auto",
          "copy_timestamps": "yes",
          "encryption": "no",
          "encryption_method": "aes-128-cbc",
          "hint": "no",
          "set_rotate": "0",
          "copy_nielsen_metadata": "no",
          "duration_precision": "0",
          "video_only": "no",
          "add_iframe_stream": "no",
          "still_image_time": "5",
          "still_image_size": "480x320",
          "byte_range": "no",
          "drm": "no",
          "init_video_codec_parameters": { "sc_threshold": "0" }
        }
      ],
      "turbo": "no",
      "twin_turbo": "no",
      "segment_duration": "9",
      "duration_precision": "0",
      "pack_files": "yes",
      "pack_type": "tar",
      "pack_each_stream": "no",
      "encryption": "no",
      "segmenter": "v3",
      "copy_nielsen_metadata": "no",
      "file_extension": "tar"
    }
  }
}
Suggest Edits

Complete Request Template

Here is a complete request sample to get you started.

 
<?xml version="1.0"?>
<query>
<!-- Main fields -->
    <userid><<i>></userid>
    <userkey><<key>></userkey>
    <action>[Action]</action>
    <mediaid>[MediaID]</mediaid>
    <source>[SourceFile]</source>
 
    <!-- if multiple SourceFile added, they will be concatenated or join to split screen-->
    <source>[SourceFile1]</source>
    <!-- ... -->
    <source>[SourceFileN]</source>
 
    <!-- Split Screen fields (OPTIONAL) -->
    <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>
 
    <region>[us-east-1|us-east-2|us-west-1|us-west-2|eu-west-1|eu-central-1|ap-southeast-1|ap-southeast-2|ap-northeast-1|sa-east-1]</region> 
    <notify_format>[xml|json]</notify_format>
    <notify>[NotifyURL]</notify>
    <notify_encoding_errors>[NotifyEncodingErrorURL]</notify_encoding_errors>
    <notify_upload>[NotifyUploadURL]</notify_upload>
    <notify_live_start>[NotifyLiveStartedURL]</notify_live_start>
    <qc_notify>[QCNotifyURL]</qc_notify>
    <format>
 
        <!-- Format fields -->
        <noise_reduction>luma_spatial:chroma_spatial:luma_temp</noise_reduction>
        <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>
        <audio_channels_number>[Audio channels number]</audio_channels_number>
        <audio_volume>[Volume]</audio_volume>   
        <framerate>[Frame Rate]</framerate>
        <framerate_upper_threshold>[Frame Rate Upper Threshold]</framerate_upper_threshold>
        <size>[Size]</size>
        <fade_in>[FadeInStart:FadeInDuration]</fade_in>
        <fade_out>[FadeOutStart:FadeOutDuration]</fade_out>
        <crop_left>[Crop Left]</crop_left>
        <crop_top>[Crop Top]</crop_top>
        <crop_right>[Crop Right]</crop_right>
        <crop_bottom>[Crop Bottom]</crop_bottom>
        <keep_aspect_ratio>[yes|no]</keep_aspect_ratio>
        <set_aspect_ratio>[ASPECT_RATIO|source]</set_aspect_ratio>
        <add_meta>[yes/no]</add_meta>
        <hint>[yes/no]</hint>
        <rc_init_occupancy>[RC Occupancy]</rc_init_occupancy>
        <minrate>[Min Rate]</minrate>
        <maxrate>[Max Rate]</maxrate>
        <bufsize>[RC Buffer Size]</bufsize>
        <keyframe>[Keyframe Period (GOP)]</keyframe>
        <start>[Start From]</start>
        <duration>[Result Duration]</duration>
        <output>mpeg2</output>
        <force_keyframes>[Keyframe Period]</force_keyframes>
        <!-- Every Nth frame <force_keyframes>*/N</force_keyframes>-->
        <!-- Specified position for keyframes <force_keyframes>1,100,230,555</force_keyframes>-->
        <bframes>[2|0]</bframes>
        <gop>[cgop|sgop]</gop> 
        <output>[PRESET_NAME]</output>
 
        <!-- Metadata fields (OPTIONAL) -->
        <metadata> 
            <title>[Title]</title>
            <copyright>[Copyright]</copyright> 
            <author>[Author]</author> 
            <description>[Description]</description> 
            <album>[Album]</album> 
        </metadata> 
 
        <!-- Destination fields --> 
        <destination>[DestFile]</destination> 
        <destination>[DestFile2]</destination> 
        <!-- ... -->
        <destination>[DestFileN]</destination>
 
        <!-- Logo fields (OPTIONAL) --> 
        <logo> 
             <logo_source>[LogoURL]</logo_source> 
             <logo_x>[LogoLeft]</logo_x> 
             <logo_y>[LogoTop]</logo_y> 
             <logo_mode>[LogoMode]</logo_mode> 
             <logo_threshold>[LogoTreshold]</logo_threshold> 
        </logo>
 
        <!-- Overlay fields (OPTIONAL) -->
        <overlay>
            <overlay_source>[Overlay1Source]</overlay_source>
            <overlay_left>[Overlay1PositionXfromLeft]</overlay_left>
            <overlay_right>[Overlay1PositionXfromRight]</overlay_right>
            <overlay_top>[Overlay1PositionYfromTop]</overlay_top>
            <overlay_bottom>[Overlay1PositionYfromBottom]</overlay_bottom>
            <size>[Overlay1Size]</size>
            <overlay_start>[OverlayNStartInSeconds]</overlay_start>
            <overlay_duration>[OverlayNDurationInSeconds]</overlay_duration>
        </overlay>
        <!-- ... -->
        <overlay>
            <overlay_source>[OverlayNSource]</overlay_source>
            <overlay_left>[OverlayNPositionXfromLeft]</overlay_left>
            <overlay_right>[OverlayNPositionXfromRight]</overlay_right>
            <overlay_top>[OverlayNPositionYfromTop]</overlay_top>
            <overlay_bottom>[OverlayNPositionYfromBottom]</overlay_bottom>
            <size>[OverlayNSize]</size>
            <overlay_start>[OverlayNStartInSeconds]</overlay_start>
            <overlay_duration>[OverlayNDurationInSeconds]</overlay_duration>
        </overlay>    
    
        <!-- Text Overlay fields (OPTIONAL) -->
        <text_overlay>
            <text>[Text1]</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>[TextN]</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>
 
        
        <!-- Video codec parameters (OPTIONAL, while only for libx264 video codec) --> 
        <video_codec_parameters> To see the example for parameters please follow this link below * </video_codec_parameters> 
 
        <!-- Profile (OPTIONAL, while only for libx264 video codec) --> 
        <profile>[high|main|baseline]</profile>
 
        <!-- Turbo Encoding switch (OPTIONAL) --> 
        <turbo>[yes|no]</turbo>
 
        <!-- Video rotation (OPTIONAL) -->
        <rotate>def|0|90|270</rotate>
        <set_rotate>def|0|90|270</set_rotate>
 
        <audio_sync>[1..N]</audio_sync> 
        <video_sync>old|passthrough|cfr|vfr|auto</video_sync>
        <force_interlaced>tff|bff|no</force_interlaced>
        <strip_chapters>[yes|no]</strip_chapters> 
    </format> 
</query>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "[Action]",
        "mediaid": "[MediaID]",
        "source": [
            "[SourceFile]",
            "[SourceFile1]",
            "[SourceFileN]"
        ],
        "split_screen": {
            "columns": "[ColumnsNumber]",
            "rows": "[RowsNumber]",
            "padding_left": "[PaddingLeftInPx]",
            "padding_right": "[PaddingRightInPx]",
            "padding_bottom": "[PaddingBottomInPx]",
            "padding_top": "[PaddingTopInPx]"
        },
        "region": "[us-east-1|us-east-2|us-west-1|us-west-2|eu-west-1|eu-central-1|ap-southeast-1|ap-southeast-2|ap-northeast-1|sa-east-1]",
        "notify_format": "[xml|json]",
        "notify": "[NotifyURL]",
        "notify_encoding_errors": "[NotifyEncodingErrorURL]",
        "notify_upload": "[NotifyUploadURL]",
        "notify_live_start": "[NotifyLiveStartedURL]",
        "qc_notify": "[QCNotifyURL]",
        "format": {
            "noise_reduction": "luma_spatial:chroma_spatial:luma_temp",
            "output": [
                "[Output format]",
                "mpeg2",
                "[PRESET_NAME]"
            ],
            "video_codec": "[Video Codec]",
            "audio_codec": "[Audio Codec]",
            "bitrate": "[Video bitrate]",
            "audio_bitrate": "[Audio bitrate]",
            "audio_sample_rate": "[Audio quality]",
            "audio_channels_number": "[Audio channels number]",
            "audio_volume": "[Volume]",
            "framerate": "[Frame Rate]",
            "framerate_upper_threshold": "[Frame Rate Upper Threshold]",
            "size": "[Size]",
            "fade_in": "[FadeInStart:FadeInDuration]",
            "fade_out": "[FadeOutStart:FadeOutDuration]",
            "crop_left": "[Crop Left]",
            "crop_top": "[Crop Top]",
            "crop_right": "[Crop Right]",
            "crop_bottom": "[Crop Bottom]",
            "keep_aspect_ratio": "[yes|no]",
            "set_aspect_ratio": "[ASPECT_RATIO|source]",
            "add_meta": "[yes/no]",
            "hint": "[yes/no]",
            "rc_init_occupancy": "[RC Occupancy]",
            "minrate": "[Min Rate]",
            "maxrate": "[Max Rate]",
            "bufsize": "[RC Buffer Size]",
            "keyframe": "[Keyframe Period (GOP)]",
            "start": "[Start From]",
            "duration": "[Result Duration]",
            "force_keyframes": "[Keyframe Period]",
            "bframes": "[2|0]",
            "gop": "[cgop|sgop]",
            "metadata": {
                "title": "[Title]",
                "copyright": "[Copyright]",
                "author": "[Author]",
                "description": "[Description]",
                "album": "[Album]"
            },
            "destination": [
                "[DestFile]",
                "[DestFile2]",
                "[DestFileN]"
            ],
            "logo": {
                "logo_source": "[LogoURL]",
                "logo_x": "[LogoLeft]",
                "logo_y": "[LogoTop]",
                "logo_mode": "[LogoMode]",
                "logo_threshold": "[LogoTreshold]"
            },
            "overlay": [
                {
                    "overlay_source": "[Overlay1Source]",
                    "overlay_left": "[Overlay1PositionXfromLeft]",
                    "overlay_right": "[Overlay1PositionXfromRight]",
                    "overlay_top": "[Overlay1PositionYfromTop]",
                    "overlay_bottom": "[Overlay1PositionYfromBottom]",
                    "size": "[Overlay1Size]",
                    "overlay_start": "[OverlayNStartInSeconds]",
                    "overlay_duration": "[OverlayNDurationInSeconds]"
                },
                {
                    "overlay_source": "[OverlayNSource]",
                    "overlay_left": "[OverlayNPositionXfromLeft]",
                    "overlay_right": "[OverlayNPositionXfromRight]",
                    "overlay_top": "[OverlayNPositionYfromTop]",
                    "overlay_bottom": "[OverlayNPositionYfromBottom]",
                    "size": "[OverlayNSize]",
                    "overlay_start": "[OverlayNStartInSeconds]",
                    "overlay_duration": "[OverlayNDurationInSeconds]"
                }
            ],
            "text_overlay": [
                {
                    "text": "[Text1]",
                    "font_source": "[Font1Source]",
                    "font_size": "[Font1Size]",
                    "font_rotate": "[Font1Rotate]",
                    "font_color": "[Font1Color]",
                    "align_center": "[0|1]",
                    "overlay_x": "[TextOverlay1PositionX]",
                    "overlay_y": "[TextOverlay1PositionY]",
                    "size": "[TextOverlay1Size]",
                    "overlay_start": "[TextOverlay1StartInSeconds]",
                    "overlay_duration": "[TextOverlay1DurationInSeconds]"
                },
                {
                    "text": "[TextN]",
                    "font_source": "[FontNSource]",
                    "font_size": "[FontNSize]",
                    "font_rotate": "[FontNRotate]",
                    "font_color": "[FontNColor]",
                    "align_center": "[0|1]",
                    "overlay_x": "[TextOverlayNPositionX]",
                    "overlay_y": "[TextOverlayNPositionY]",
                    "size": "[TextOverlayNSize]",
                    "overlay_start": "[TextOverlayNStartInSeconds]",
                    "overlay_duration": "[TextOverlayNDurationInSeconds]"
                }
            ],
            "video_codec_parameters": "To see the example for parameters please follow this link below *",
            "profile": "[high|main|baseline]",
            "turbo": "[yes|no]",
            "rotate": "def|0|90|270",
            "set_rotate": "def|0|90|270",
            "audio_sync": "[1..N]",
            "video_sync": "old|passthrough|cfr|vfr|auto",
            "force_interlaced": "tff|bff|no",
            "strip_chapters": "[yes|no]"
        }
    }
}
Suggest Edits

Test Your XML or JSON Request in Your Browser

 

We've created a simple and effective tool for testing your XML or JSON API request. This can be found here: https://manage.encoding.com/user/api-builder.php

Suggest Edits

Authentication

How to access your Encoding.com account securely.

 

UserID
A unique user identifier. This number can be found in the My Account tab of the Client Interface.

UserKey
A user’s unique authentication key string. Created automatically when a user is created and can be regenerated at anytime in the My Account tab of the User Interface.

Suggest Edits

Action List

Below is a list of call actions that can be submitted in an API request.

 
Action
Description

AddMedia

Adds new media to a user's queue, ready to be processed based on API request parameters.

AddMediaBenchmark

Adds new media to a user's queue and sets a flag to NOT when upload is complete. Output formats can be specified as well. If a NotifyURL is defined, a notification will be sent when the media is ready for processing.

UpdateMedia

Replace information about an existing media's formats. All old format items will be deleted and the new ones will be added.

ProcessMedia

Start encoding the previously downloaded media (media that has been added with the AddMediaBenchmark action).

CancelMedia

Delete specified media and all its items in the queue.

GetMediaList

Returns a list of the user's media in the queue.

GetStatus

Returns information about a selected user's media and all its items in the queue.

GetMediaInfo

Returns video parameters of the specified media when available.

GetMediaInfoEx

Returns extended video parameters of the specified media when available.

RestartMedia

Completely re-run an existing job.

RestartMediaErrors

Only retry tasks that have ended not completed due to an error.

RestartMediaTask

Only restart the specified task for an output. You must include the <taskid> when making this request.

StopMedia

Stops the specified mediaID from downloading/processing/uploading. If one or more outputs have completed, the mediaID will be complete. Otherwise it will be stopped.

Get the queue time statistics for jobs actively in the queue.

Get all queue statistics for a specified date range.

Get reserved instances usage information.

Adds the SSH RSA key for output destination host.

Get the status of quality control tests.

StopLive

Stop the live transcoding process.

AddStreamEndpoint

Create a live streaming endpoint.

GetStreamEndpointList

Retrieve existing live streaming endpoints list.

DeleteStreamEndpoint

Delete live streaming endpoint.

For AddMediaBenchmark action

The media status will be 'Ready to process' only when at least one <format /> field is specified. Otherwise, you can retrieve source media information using the GetMediaInfo action.

 

A unique identifier assigned to each api job request. This parameter must be specified for the following actions: UpdateMedia, ProcessMedia, CancelMedia, GetMediaInfo, GetStatus.

Suggest Edits

Source Media Locations

A source media file must be specified only for AddMedia and AddMediaBenchmark actions.
The table below lists all of our supported source media locations.

 
Source Location
Request Format

FTP / SFTP Server

ftp://[user[:password]@]hostname[:port]/[path]/[filename][?passive=yes]

sftp://[user[:password]@]hostname[:port]/[path]/[filename]

Aspera Server

Please use the URL structure below if your source is on an Aspera Enterprise Server™ or Aspera Connect Server™

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

Microsoft Azure Blob

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

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

OpenStack Cloud Storage

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)

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

RTMP

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

S3 NetApp

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

For FTP URL.

Adding ?passive=yes to the FTP URL forces transfer use Passive Mode for FTP.
The default is no, but this can be specified explicitly with ?passive=no.

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

For Amazon S3

  • If you don't specify an AWS key/secret, the object must have READ permission for AWS user
    1a85ad8fea02b4d948b962948f69972a72da6bed800a7e9ca7d0b43dc61d5869 (or for all users).
    See Amazon S3 ACL for details.
  • 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 URL encoded. For example, if your Key and the Secret are:

    1ZG3YAKJ8W0VOA9L7WT6lQT5MsQLirc8owb:SxX/9EhU4M+QarasFelQ0v2M

    First, we must URL encode the Secret as it contains special characters: ':','+' and '/'. The URL encoded Secret is now:

    lQT5MsQLirc8owb%3ASxX%2F9EhU4M%2BQarasFelQ0v2M

    You should NOT URL 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/

  • Using specific S3 endpoints:
    To use specific endpoint replace ‘s3.amazonaws.com‘ in your S3 URL with one of the following:

    • us-east-1s3-external-1.amazonaws.com
    • us-east-2s3-us-east-2.amazonaws.com
    • us-west-2s3-us-west-2.amazonaws.com
    • us-west-1s3-us-west-1.amazonaws.com
    • eu-west-1s3-eu-west-1.amazonaws.com
    • eu-central-1s3-eu-central-1.amazonaws.com
    • ap-southeast-1s3-ap-southeast-1.amazonaws.com
    • ap-southeast-2s3-ap-southeast-2.amazonaws.com
    • ap-northeast-1s3-ap-northeast-1.amazonaws.com
    • sa-east-1s3-sa-east-1.amazonaws.com
  • Do not forget to URL encode your AWS_SECRET, specifically replacing '/' with '%2F'.

  • See percent-encoding for more details on URLencoding.

For Aspera URL

To use private key authentication for Aspera you can include the SetHostKey parameter in your API request

For Microsoft Azure Blob

The access_key needs to be be url encoded

Suggest Edits

Source Media Decryption

You can encrypt your source media files – just add following decryption parameters to your API request.

 
<?xml version="1.0"?>
<query>
    <userid><<i>></userid> <!-- required-->
    <userkey><<key>></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>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "[Action]",
        "source": "[FileURL]",
        "decryption": "[yes|no]",
        "decryption_method": "[aes-128-cbc|aes-128-ctr|aes-256-cbc|aes-256-ctr]",
        "decryption_key": "[Hexidecimal string]",
        "decryption_key_file": "[URL]",
        "decryption_iv": "[Hexidecimal string]",
        "decryption_password": "[Password]",
        "format": ""
    }
}
Parameter
Description
Allowed Values
Default`

decryption

Encrypt your output file.

yes, no

no

decryption_method

Specify the encryption scheme.

aes-128-cbc, aes-128-ctr, aes-256-cbc, aes-256-ctr

aes-128-cbc

decryption_key

The key used to decrypt your source content.

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

None

decryption_key_file

Specify the URL where the key file is hosted.

Valid URL to decryption key file.

None

decryption_iv

Specify an initialization vector.

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

None

decryption_password

Password used to encrypt the initialization vector.

any set of characters

None

Suggest Edits

Notifications

Encoding.com offers a robust notification system via their API that provides update notifications on nearly every aspect of a job.

 
<?xml version="1.0"?>
<query>
    <!-- Main fields -->
    <userid><<id>></userid>
    <userkey><<key>></userkey>
    <action>[Action]</action>
    <source>[SourceFile]</source>
    <notify_format>[xml|json]</notify_format>
    <notify>[NotifyURL]</notify>
    <notify_encoding_errors>[NotifyEncodingErrorURL]</notify_encoding_errors>
    <notify_upload>[NotifyUploadURL]</notify_upload>
    <notify_upload_extended>[yes|no]</notify_upload_extended>
    <notify_live_start>[NotifyLiveStartedURL]</notify_live_start>
    <qc_notify>[QCNotifyURL]</qc_notify>
    <format>
        <!-- Format fields -->
    </format> 
</query>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "[Action]",
        "source": "[SourceFile]",
        "notify_format": "[xml|json]",
        "notify": "[NotifyURL]",
        "notify_encoding_errors": "[NotifyEncodingErrorURL]",
        "notify_upload": "[NotifyUploadURL]",
        "notify_upload_extended": "[yes|no]",
        "notify_live_start": "[NotifyLiveStartedURL]",
        "qc_notify": "[QCNotifyURL]",
        "format": ""
    }
}
Parameter
Description

notify_format

Can be XML (default) or JSON – defines response format.

notify

Can be either an HTTP(S) URL for the script with which the result will be posted, or an email address for which the result info will be sent. This field may be specified for AddMedia and AddMediaBenchmark actions.

notify_encoding_errors

Can be either an HTTP(S) URL for the script or an email address for which result info will be sent only if media finishes with encoding errors.

notify_upload

Can be either an HTTP(S) URL for the script or an email address for which result info will be sent when media uploaded to the specified destination.

notify_upload_extended

Same as above with output parameters included.

notify_live_start

Can be either an HTTP(S) URL for the script or an email address for which notification will be sent when live task is ready for playback.

qc_notify

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

For notify_upload parameter

For advanced_hls, advanced_mss, and advanced_dash notify for each stream will be sent.

If <notify_upload_extended /> param set to yes output params will be included to notification callback(this feature doesn’t work with multibitrate output formats).

Notify Response Format

<?xml version="1.0"?>
<result>
    <mediaid>[MediaID]</mediaid>
    <source>[SourceFile]</source>
    <status>[MediaStatus]</status>
    <description>[ ErrorDescription]</description> <!-- Only in case of Status = Error -->
    <format>
        <output>[OutputFormat]</output>
        <destination>[URL]</destination> <!-- Only in case of Status = Finished -->
        <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>
        <status>[TaskStatus]</status>
        <description>[ErrorDescription]</description> <!-- Only in case of Status = Error -->
        <suggestion>[ErrorSuggestion]</suggestion> <!-- Only in case of Status = Error -->
    </format>
</result>
{
    "result": {
        "mediaid": "[MediaID]",
        "source": "[SourceFile]",
        "status": "[MediaStatus]",
        "description": "[ ErrorDescription]",
        "format": {
            "output": "[OutputFormat]",
            "destination": [
                "[URL]",
                "[URL_2]",
                "[URL_N]"
            ],
            "destination_status": [
                "[Saved|Error (ErrorDescription)]",
                "[Saved|Error (ErrorDescription)]",
                "[Saved|Error (ErrorDescription)]"
            ],
            "status": "[TaskStatus]",
            "description": "[ErrorDescription]",
            "suggestion": "[ErrorSuggestion]"
        }
    }
}
Paremeter
Description

mediaID

A unique identifier assigned to each new media.

SourceFile

Media source file URL.

MediaStatus

Results are finished or error.

OutputFormat

Format of encoded file, as was requested in the query.

URL

Could be one of the following:

ftp://[user]:[password]@[server]/[path]/[filename]

http://[users.bucket].s3.amazonaws.com/[path]/[filename]

— the bucket must have WRITE permission for AWS user 1a85ad8fea02b4d948b962948f69972a72da6bed800a7e9ca7d0b43dc61d5869

See Amazon S3 ACL for details OR the URL below if destination was not specified in the query.

http://[encoding.bucket].s3.amazonaws.com/[path]/[filename]

TaskStatus

Results are finished or error.

ErrorDescription

If the job ends in error, an error description is provided.

ErrorSuggestion

If we have a suggested resolution for the error it will be provided.

Notify_upload Response Format

<?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>
{
    "result": {
        "mediaid": "[MediaID]",
        "taskid": "[TaskID]",
        "destination": "[DestinationLink]",
        "status": "[DestinationStatus]",
        "output_params": {
            "format": "[FormatName]",
            "bitrate": "[Bitrate]",
            "duration": "[Duration]",
            "audio_bitrate": "[AudioBitrate]",
            "audio_codec": "[AudioCodec]",
            "audio_duration": "[AudioDuration]",
            "audio_sample_rate": "[SampleRate]",
            "audio_channels": "[AudioChannels]",
            "video_bitrate": "[VideoBitrate]",
            "video_codec": "[CodecName]",
            "video_duration": "[VideoDuration]",
            "size": "[FrameSize]",
            "display_aspect_ratio": "[AspectRatio]",
            "frame_rate": "[VideoFrameRate]",
            "filesize": "[FileSize]"
        }
    }
}
Parameter
Description

mediaID

A unique identifier assigned to each new media.

TaskID

A unique identifier assigned to each output for a given mediaID.

DestinationLink

A link to the destination where the output was uploaded.

DestinationStatus

Status of uploading a given output.

OutputParams

If you set <notify_upload_extended /> param to ‘yes’, the output parameters below will be included in your response.

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

notify_live_start Response Format

<?xml version="1.0"?>
<result>
    <mediaid>[MediaID]</mediaid>
    <taskid>[TaskID]</taskid>
    <destination>[DestinationLink]</destination>
    <status>[LiveStatus]</status>
</result>
{
    "result": {
        "mediaid": "[MediaID]",
        "taskid": "[TaskID]",
        "destination": "[DestinationLink]",
        "status": "[LiveStatus]"
    }
}
Parameter
Description

mediaID

A unique identifier assigned to each new media.

TaskID

A unique identifier assigned to each output for a given mediaID.

DestinationLink

A link to the destination where the output was uploaded.

DestinationStatus

A status of live transcoding. Could be one of these statuses: Open, Live, Stopped

qc_notify Response 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>
{
    "report": {
        "mediaID": "[MediaID]",
        "queueID": "[QueueID]",
        "status": "[QCStatus]",
        "passed": {
            "test": [
                {
                    "name": "[QCTestName]",
                    "filesProcessed": "[FilesCount]"
                }
            ]
        },
        "warnings": {
            "warning": [
                {
                    "streamID": "[StreamID]",
                    "testName": "[QCTestName]",
                    "fileName": "[FileName]",
                    "message": "[Message]"
                }
            ]
        },
        "errors": {
            "error": [
                {
                    "streamID": "[StreamID]",
                    "testName": "[QCTestName]",
                    "fileName": "[FileName]",
                    "message": "[Message]"
                }
            ]
        }
    }
}

mediaID

A unique identifier assigned to each new media.

QueueID

A unique identifier assigned to each output.

status

The status of QC Processing

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.

testname

filescount

The number of files succesfully analyzed by our QC tool.

passed

Returns a list of passed QC tests.

warnings

Returns a list of QC tests that resulted in warning.

errors

Returns a list of QC tests that resulted in error.

PASSED QA RESULTS PARAMETERS BELOW

name

Names of all passed QC tests.

filesProcessed

Number of passed files processed.

FAILED QA RESULTS PARAMETERS BELOW

testname

The name of the failed QC test.

fielname

Specific filenames of failed files.

streamID

Stream IDs for failed QC tests.

message

Error message if applicable.

Suggest Edits

Global Processing Regions

The table below defines all of the current global processing regions on both AWS and our private cloud in Oakland, California, USA. We suggest processing your media in the region closest to your source content to ensure fastest transit times. The region parameters are expressed as <region></region> in your request.

 
Region
Name

us-east-1

US (Northern Virginia)

us-east-2

US (Ohio)

us-west-1

US (Northern California)

us-west-2

US (Oregon)

eu-west-1

EU (Ireland)

eu-central-1

EU (Frankfurt)

ap-southeast-1

Asia Pacific (Singapore)

ap-southeast-2

Asia Pacific (Sydney)

sa-east-1

South America (Sao Paulo)

oak-private-clive

Private Cloud (Northern California)

Suggest Edits

PHP

This sample script allows user to enter parameters and send API request for encoding.

 
<?php
function sendRequest($xml)
{
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, "https://manage.encoding.com/");
	curl_setopt($ch, CURLOPT_POSTFIELDS, "xml=" . urlencode($xml));
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_HEADER, 0);
	return curl_exec($ch);
} 
 
// Begin processing User's POST
if(!empty($_POST['source']))
{
	// Preparing XML request
  
	// Main fields
	$req = new SimpleXMLElement('<query></query>');
	$req->addChild('userid', MY_ID);
	$req->addChild('userkey', MY_KEY);
	$req->addChild('action', 'AddMedia');
	$req->addChild('source', $_POST['source']);
  
	$formatNode = $req->addChild('format');
	// Format fields
	foreach($_POST['format'] as $property => $value)
	{
		if ($value !== '')
		$formatNode->addChild($property, $value);
	}
  
	// Sending API request
	$res = sendRequest($req->asXML());
  
	try
	{
		// Creating new object from response XML
		$response = new SimpleXMLElement($res);
	  
		// If there are any errors, set error message
		if(isset($response->errors[0]->error[0])) {
			$error = $response->errors[0]->error[0] . '';
		}
		else
		if ($response->message[0]) {
			// If message received, set OK message
			$message = $response->message[0] . '';
		}
	}
	catch(Exception $e)
	{
		// If wrong XML response received
		$error = $e->getMessage();
	}
  
	// Displaying error if any
	if (!empty($error)) {
		echo '<div class="error">' . htmlspecialchars($error) . '</div>';
	}
  
	// Displaying message
	if (!empty($message)) {
		echo '<div class="message">' . htmlspecialchars($message) . '</div>';
	}
	exit;
}
?>
Suggest Edits

JAVA

Thanks to Kalpesh Balare from Mediamelon, we have a nice sample script in Java to get you started.

 
import java.io.*;
import java.net.*;
 
public class EncodingTest {
 
	private static int startEncodingWorkflow() {
		// replace ID and key with your own
		String userID = "ID";
		String userKey = "key";
		String mediaID = "1";
		StringBuffer xml = new StringBuffer();
		xml.append("<?xml version='1.0'?>");
		xml.append("<query>");
		xml.append("<userid>" userID "</userid>");
		xml.append("<userkey>" userKey "</userkey>");
		xml.append("<action>GetMediaInfo</action>");
		xml.append("<mediaid>" mediaID "</mediaid>");
		xml.append("</query>");
 
		URL server = null;
 
		try {
			String url = "https://manage.encoding.com";
			System.out.println("Connecting to:" url);
			server = new URL(url);
 
		} catch (MalformedURLException mfu) {
			mfu.printStackTrace();
			return 0;
		}
 
		try {
			String sRequest = "xml="   URLEncoder.encode(xml.toString(), "UTF8");
			System.out.println("Open new connection to tunnel");
			HttpURLConnection urlConnection = (HttpURLConnection) server.openConnection();
			urlConnection.setRequestMethod( "POST" );
			urlConnection.setDoOutput(true);
			urlConnection.setConnectTimeout(60000);
			urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
			BufferedWriter out = new BufferedWriter( new OutputStreamWriter( urlConnection.getOutputStream() ) );
			out.write(sRequest);
			out.flush();
			out.close();
			urlConnection.connect();
			InputStream is = urlConnection.getInputStream();
			String str = urlConnection.getResponseMessage();
			System.out.println("Response:" urlConnection.getResponseCode());
			System.out.println("Response:" urlConnection.getResponseMessage());
			StringBuffer strbuf = new StringBuffer();
			byte[] buffer = new byte[1024 * 4];
 
			try {
				int n = 0;
				while (-1 != (n = is.read(buffer))) {
					strbuf.append(new String(buffer, 0, n));
				}
 
				is.close();
 
			} catch (IOException ioe) {
				ioe.printStackTrace();
			}
 
			System.out.println(strbuf.toString()); 
 
		} catch (Exception exp) {
			exp.printStackTrace();
		}
 
		return 0;
	}
 
	public static void main (String[] args) {
		startEncodingWorkflow();
	}
}
Suggest Edits

ColdFusion

Take a look at our ColdFusion sample script to get you started.

 
<!-- Building our query -->
<cfsavecontent variable="xml">
<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>AddMedia</action>
    <source>http://your.server.tld/some/path/file</source>
    <format>
        <output>3gp</output>
    </format>
    <format>
        <output>wmv</output>
    </format>
    <format>
        <output>flv</output>
    </format>
</query>
</cfsavecontent>
 
<!-- Setting up the URL to send the request -->
<cfset theURL = "https://manage.encoding.com">
 
<!-- Sending the request -->
<cfhttp url="#theURL#" charset="utf-8" method="post">
    <cfhttpparam type="formfield" name="xml" value="#xml#">
</cfhttp>
 
<!-- Getting the result -->
<cfdump var="#cfhttp.fileContent#">
Suggest Edits

C#

Integrate into desktop applications using this Microsoft C# sample script.

 
static string HTTPPost(string sUrl, string sRequest)
{
	HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sUrl);
	request.Method = "POST";
	request.ContentType = "application/x-www-form-urlencoded";
	request.ContentLength = sRequest.Length;
	request.GetRequestStream().Write(Encoding.UTF8.GetBytes(sRequest), 0, sRequest.Length);
	request.GetRequestStream().Close();
	HttpWebResponse response = (HttpWebResponse)request.GetResponse();
	StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
	string result = reader.ReadToEnd();
	reader.Close();
	return result;
}
 
static void Main_Encoding(string origin, string destination)
{
	string xml, sUrl, sRequest, result, userID, userKey;
	//put your real userID and userKey below
	userID = "0";
	userKey = "your_key";
	xml = string.Format(
@"<?xml version=""1.0""?>
 
<query>
<userid>{0}</userid>
<userkey>{1}</userkey>
<action>AddMedia</action>
<source>{2}</source>
<format>
<output>flv</output>
<destination>{3}</destination>
</format>
</query>", userID, userKey, origin, destination);
 
	sUrl = "https://manage.encoding.com/";
	sRequest = "xml="   HttpUtility.UrlEncode(xml);
	result = HTTPPost(sUrl, sRequest);
}
 
static void Main(string[] args)
{
	string origin = "http://yoursite.com/video/movie.avi";
	string destination = "ftp://username:password@yourftphost.com/video/encoded/test.flv";
	Main_Encoding(origin, destination);
}
Suggest Edits

Unofficial API Wrappers

 

Ruby
Thanks to Mick Stauga- ard from podcastemachine.com he has released the following Ruby library into the public domain.

Python
Here's a Python wrapper for the Encoding.com API.

VBscript
The sample script below returns a user's media list.

Dim xml, sURL, sRequest, result, userID, userKey
' put your real userID and userKey below ' 
userID = "0"
userKey = "your_key"
 
xml = "<?xml version="'1.0'"?>" & VbCrLf
xmlxml = xml & "<query>" & VbCrLf
xmlxml = xml & "<userid>" & userID & "</userid>" & VbCrLf
xmlxml = xml & "<userkey>" & userKey & "</userkey>" & VbCrLf
xmlxml = xml & "<action>" & "GetMediaList" & "</action>" & VbCrLf
xmlxml = xml & "</query>" & VbCrLf
 
sUrl = "https://manage.encoding.com"
sRequest = "xml=" & xml
result = HTTPPost(sUrl, sRequest)
 
Function HTTPPost(sUrl, sRequest)
	Set oHTTP = CreateObject("Microsoft.XMLHTTP")
	oHTTP.open "POST", sUrl,false
	oHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
	oHTTP.setRequestHeader "Content-Length", Len(sRequest)
	oHTTP.send sRequest
	HTTPPost = oHTTP.responseText
End Function
Suggest Edits

Output Formats

Below is a list of supported output formats.

 
Suggest Edits

Use Preset As Output

You can create your own custom preset or use the Encoding.com UI presets to configure your outputs.

 
<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>addMedia</action>
    <format> <!-- REQUIRED -->
        <output_preset>[output]</output_preset> <!-- REQUIRED -->
        <!-- Format fields -->
    </format>
</query>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "addMedia",
        "format": {
            "output_preset": "[output]"
        }
    }
}
Suggest Edits

Video Settings

Here are the basic video settings available for every output.

 
<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>addMedia</action>
    <format> <!-- REQUIRED -->
        <output>[output]</output> <!-- REQUIRED -->
        <video_codec>[VideoCodec]</video_codec>
        <ftyp>[mp42|3gp5]</ftyp>
        <size>[WxH]</size>
        <keep_aspect_ratio>[yes|no]</keep_aspect_ratio>
        <set_aspect_ratio>[AspectRatio]</set_aspect_ratio>
        <bitrate>[BitRate]</bitrate>
        <maxrate>[MaxBitRate]</maxrate>
        <minrate>[MinBitRate]</minrate>
        <cbr>[yes|no]</cbr>
        <framerate>[FrameRate|copy]</framerate>
        <framerate_upper_threshold>[FrameRateThreshold]</framerate_upper_threshold>
        <keyframe>[KeyFramePeriod]</keyframe>
        <force_keyframes>[KeyFramePosition]</force_keyframes>
        <video_sync>[SyncParam]</video_sync>
        <remove_grain>[RemoveGrainFilter]</remove_grain>
    </format>
</query>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "addMedia",
        "format": {
            "output": "[output]",
            "video_codec": "[VideoCodec]",
            "ftyp": "[mp42|3gp5]",
            "size": "[WxH]",
            "keep_aspect_ratio": "[yes|no]",
            "set_aspect_ratio": "[AspectRatio]",
            "bitrate": "[BitRate]",
            "maxrate": "[MaxBitRate]",
            "minrate": "[MinBitRate]",
            "cbr": "[yes|no]",
            "framerate": "[FrameRate|copy]",
            "framerate_upper_threshold": "[FrameRateThreshold]",
            "keyframe": "[KeyFramePeriod]",
            "force_keyframes": "[KeyFramePosition]",
            "video_sync": "[SyncParam]",
            "remove_grain": "[RemoveGrainFilter]"
        }
    }
}
Parameter
Description
Allowed Values
Default Values

video_codec

Defines the codec used for your output.

flv: flv, libx264, vp6, copy
fl9: libx264, copy
wmv, zune: wmv2, msmpeg4, copy
3gp, android: h263, mpeg4, libx264, copy
m4v: mpeg4, copy
ipod, iphone, ipad, psp: mpeg4, libx264, copy
advanced_hls: libx264
fmp4_hls: libx264, hevc
advanced_mss: libx264, libvpx-vp9
advanced_dash: libx264, libvpx-vp9, hevc
mpeg_dash: mpeg4, libx264, hevc
mp4: mpeg4, libx264, hevc, copy
ogg: libtheora, copy
webm: libvpx, libvpx-vp9, copy
mp3, wma: none
mpeg2: mpeg2video, copy
mpeg1: mpeg1video, copy
mov: mpeg4, libx264, xdcam, dvcpro, dvcpro50, dvcprohd, mjpeg, copy
mpegts: libx264, mpeg2video
mxf: dvcpro, dvcpro50, dvcprohd, xdcamhd422, imx30, copy
kindle_fire: mpeg4, libx264, hevc, copy
dnxhd, dnxhd_mxf: dnxhd, copy

flv: flv
fl9, ipod, iphone, ipad: libx264
wmv, zune: wmv2
3gp: h263
mp4, m4v, psp, android, mov: mpeg4
advanced_hls, advanced_dash, advanced_mss: libx264
mpeg_dash: libx264
ogg: libtheora
webm: libvpx
mpeg2: mpeg2video
mpeg1: mpeg1video
mpegts: libx264
mxf: xdcamhd422
kindle_fire: libx264
dnxhd, dnxhd_mxf: dnxhd

ftyp

Specifies a pre-defined signature for mp4 outputs using the ftyp format.

mp42,3gp5

none

size

Specifies the video frame size.

All: WxH, where W and N are any even integers.
3gp (h263): 128×96, 176×144, 352×288, 704×576, 1408×1152
zune: 320×180, 320×240
vp6: WxH, where W and N are multiple of 16
mxf: 720×480, 960×720, 1280×720, 1280×1080, 1440×1080, 1920×1080
Custom: To match your source aspect ratio, set X value to zero and Y value to your desired height. For example, 0x360 or 0x480.

All: None (any size possible)
3gp: 176×144
iPhone: 480×368
iPad: 1280×720
Android: 800×400
zune: 320×180
psp: 368×192
mxf: None

keep_aspect_ratio

Specifies whether to maintain aspect ratio of source file.

yes, no

yes

set_aspect_ratio

Specify aspect ratio (DAR). When defined, 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, psp, iphone_stream, ipad_stream.

The ratio of width to height specified as any positive integer in the w:h format.

None

bitrate

Specifies the video bitrate.

Nk (where N is any non-zero integer)

All: 512k
3gp: 256k
iOS, Android, PSP: 1024k

maxrate

Specifies maximum allowed video bitrate.

N or Nk — where N is any non-zero integer

None

minrate

Specifies minimum allowed video bitrate.

N or Nk — where N is any non-zero integer

None

cbr

Specifies whether to use CBR (Constant bitrate).

yes, no

no

framerate

Specifies the frame rate.

Any non-zero float or N/M where N and M are non-zero integers
‘copy’ – take source’s framerate

All: none
psp: 30000/1001

framerate_upper_threshold

If the source frame rate lower then framerate_upper_threshold, then the source frame rate will be used.

Any non-zero float or N/M where N and M are non-zero

None

keyframe

Defines the keyframe interval, in number of frames.

Positive integer

300

force_keyframes

Specify when to capture keyframes.

mp4, fl9, 3gp, iOS, mov, psp: Either every N frames (when set as single integer) or on specified positions (when set as a comma separated list)

video_sync

Specify the method for video synchronization.

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

remove_grain

The removegrain filter is a spatial denoiser for progressive video.

4 integer numbers(from 0 to 23 including) separated with colon.
Each number specifies filter for each plane.
For example: 4:4:4:4
Available modes:
0 – Leave input plane unchanged. Default.
1 – Clips the pixel with the minimum and maximum
of the 8 neighbour pixels.
2 – Clips the pixel with the second minimum and maximum
of the 8 neighbour pixels.
3 – Clips the pixel with the third minimum and maximum
of the 8 neighbour pixels.
4 – Clips the pixel with the fourth minimum and maximum
of the 8 neighbour pixels. This is equivalent to a median filter.
5 – Line-sensitive clipping giving the minimal change.
6 – Line-sensitive clipping, intermediate.
7 – Line-sensitive clipping, intermediate.
8 – Line-sensitive clipping, intermediate.
9 – Line-sensitive clipping on a line where the neighbours pixels
are the closest.
10 – Replaces the target pixel with the closest neighbour.
11 – [1 2 1] horizontal and vertical kernel blur.
12 – Same as mode 11.
13 – Bob mode, interpolates top field from the line
where the neighbours pixels are the closest.
14 – Bob mode, interpolates bottom field from the line
where the neighbours pixels are the closest.
15 – Bob mode, interpolates top field. Same as 13 but with
a more complicated interpolation formula.
16 – Bob mode, interpolates bottom field. Same as 14 but with
a more complicated interpolation formula.
17 – Clips the pixel with the minimum and maximum of
respectively the maximum and minimum
of each pair of opposite neighbour pixels.
18 – Line-sensitive clipping using opposite neighbours
whose greatest distance from the current pixel is minimal.
19 – Replaces the pixel with the average of its 8 neighbours.
20 – Averages the 9 pixels ([1 1 1] horizontal and vertical blur).
21 – Clips pixels using the averages of opposite neighbour.
22 – Same as mode 21 but simpler and faster.
23 – Small edge and halo removal, but reputed useless.

For video_codec parameter

Using the 'copy' parameter value will retain all original source settings in the output and ignore any additional parameters.

For video_codec parameter

'flv' output with ‘vp6‘ video codec not supports ‘dolby_audio‘ audio codec

For size parameter

You can specify only one dimension: either width or height. In this case, set other dimension to 0. (I.e. 640×0).

For framerate_upper_threshold parameter

If framerate_upper_threshold is specified then framerate parameter will be ignored.

Suggest Edits

HEVC Video Codec

This advanced codec offers high resolution at low bitrates but takes longer to process.

 
<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>[mpeg_dash|mp4|kindle_fire]</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>
<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>[advanced_dash|fmp4_hls]</output>
        <stream>
            <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>
        </stream>
    </format>
</query>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "[Action]",
        "format": {
            "output": "[mpeg_dash|mp4|kindle_fire]",
            "video_codec": "hevc",
            "video_codec_parameters": {
                "refresh": "1",
                "rc-lookahead": "20",
                "b-adapt": "2",
                "bframes": "4",
                "b-pyramid": "1",
                "ref": "3",
                "ctu": "64",
                "tu-intra-depth": "1",
                "tu-inter-depth": "1",
                "me": "1",
                "subme": "2",
                "merange": "60",
                "max-merge": "2",
                "rect": "1",
                "amp": "1",
                "early-skip": "0",
                "fast-cbf": "0",
                "signhide": "1",
                "lft": "1",
                "tskip": "0",
                "sao": "1",
                "weightp": "1",
                "tskip-fast": "0"
            }
        }
    }
}
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "[Action]",
        "format": {
            "output": "[advanced_dash|fmp4_hls]",
            "stream": {
                "video_codec": "hevc",
                "video_codec_parameters": {
                    "refresh": "1",
                    "rc-lookahead": "20",
                    "b-adapt": "2",
                    "bframes": "4",
                    "b-pyramid": "1",
                    "ref": "3",
                    "ctu": "64",
                    "tu-intra-depth": "1",
                    "tu-inter-depth": "1",
                    "me": "1",
                    "subme": "2",
                    "merange": "60",
                    "max-merge": "2",
                    "rect": "1",
                    "amp": "1",
                    "early-skip": "0",
                    "fast-cbf": "0",
                    "signhide": "1",
                    "lft": "1",
                    "tskip": "0",
                    "sao": "1",
                    "weightp": "1",
                    "tskip-fast": "0"
                }
            }
        }
    }
}
Parameter
Definition
Allowed Values
Default Values

SLICE DECISION OPTIONS

refresh

Specify the intra refresh type

0 — none
1 — CDR
2 — IDR

1

rc-lookahead

Specify the number of frames for the frame-type lookahead.

An integer less than or equal to 250 and greater than the maximum consecutive bframes count.

20

b-adapt

Enable adaptive bframe scheduling.

0 — none
1 — fast
2 — full (trellis)

2

bframes

Specify the number of consecutive b-frames.

Positive integer from 0 to 16.

4

b-pyramid

Enable the use b-frames as references.

0 — Disabled
1 — Enabled

1

ref

Specify the max number of L0 references to be allowed.

Positive integer from 0 to 16.

3

weightp

Enable the weighted prediction in P slices.

0 — Disabled
1 — Enabled

1

QUAD-TREE ANALYSIS

ctu

Specify the maximum CU size (width and height).

16,32,64

64

tu-intra-depth

Specify the maximum TU recursive depth for intra CUs.

1,2,3,4

1

tu-inter-depth

Specify the maximum TU recursive depth for inter CUs.

1,2,3,4

1

MOTION SEARCH OPTIONS

me

Specify the motion search method.

0 — dia
1 — hex
2 — umh
3 — star
4 — full

1

subme

Specify the amount of subpel refinement to perform.

Positive integer from 0 to 7 (0: least … 7: most)

2

merange

Specify the motion search range.

Integer from 0 to 32768

60

max-merge

Specify the maximum number of merge candidates.

Positive integer from 1 to 5

2

rect

Specify the number of rectangular motion partitions Nx2N and 2NxN

0 — Disable
1 — Enable

1

amp

Specify the asymmetric motion partitions (requires rect enabled)

0 — Disable
1 — Enable

1

early-skip

Enable early SKIP detection.

0 — Disable
1 — Enable

0

fast-cbf

Enable CBF fast mode.

0 — Disable
1 — Enable

0

RATE CONTROL

rd

Specify level of rate distortion in mode decision.

0 — Least
1 — Lightweight RDO Analysis

0

signhide

Hide the sign bit of one coeff per TU.

0 — Disable
1 — Enable

1

LOOP FILTER

lft

Enable the oop filter.

0 — Disable
1 — Enable

1

INTRA OPTIONS

tskip

Enable intra transform skipping.

0 — Disable
1 — Enable

0

tskip-fast

Enable fast intra transform skipping

0 — Disable
1 — Enable

0

SAMPLE ADAPTIVE OFFSET LOOP FILTER

sao

Enable simple adaptive offset.

0 — Disable
1 — Enable

1

Suggest Edits

VP9 Video Codec

This is the open source competitor to HEVC for use with mpeg-dash.

 
<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></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>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "[Action]",
        "format": {
            "output": "webm",
            "video_codec": "libvpx-vp9",
            "video_codec_parameters": {
                "crf": "[QualityLevel]",
                "lossless": "[yes|no]",
                "speed": "[EncoderSpeed]",
                "tile-columns": "[Columns]",
                "tile-rows": "[Rows]",
                "frame-parallel": "[yes|no]",
                "auto-alt-ref": "[yes|no]",
                "lag-in-frames": "[FramesNumber]",
                "deadline": "[good|realtime]",
                "quality": "[good|realtime]",
                "static-thresh": "[Threshold]",
                "aq-mode": "[Mode]",
                "noise-sensitivity": "[Sensitivity]",
                "arnr-maxframes": "[FramesCount]",
                "arnr-strength": "[Strength]",
                "arnr-type": "[backward|forward|centered]",
                "max-intra-rate": "[Framerate]"
            }
        }
    }
}
Parameter
Description
Allowed Values
Default Value

crf

Specify the quality level.

Integer number form -1 to 63.

None

lossless

Enable or disable lossless encoding.

yes, no

no

speed

Specify the encoder speed.

Integer number form -16 to 16.

None

tile-columns

Specify the number of tile columns to use.

Integer number form -1 to 6.

None

tile-rows

Specify the number of tile rows to use.

Integer number form -1 to 2.

None

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

Specify the number of frames to look ahead for alternate reference frame selection.

Positive integer number

None

aq-mode

Specify the adaptive quantization mode.

Integer number from -1 to 3

None

noise-sensitivity

Specify the level of noise sensitivity.

Integer number from 0 to 4

None

arnr-maxframes

Specify the altref noise reduction max frame count.

Integer number from 0 to 15

None

arnr-strength

Specify the altref noise reduction filter strength.

Integer number from 0 to 6

None

arnr-type

Specify the altref noise reduction filter type.

backward, forward, centered

centered

max-intra-rate

Specify the maximum I-frame bitrate.

Positive integer number.

None

Suggest Edits

Audio Settings

Here are all of the default audio settings.

 
<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>addMedia</action>
    <format> <!-- REQUIRED -->
        <output>[output]</output> <!-- REQUIRED -->
        <audio_codec>[AudioCodec]</audio_codec>
        <audio_bitrate>[BitRate]</audio_bitrate>
        <acbr>[yes|no]</acbr>
        <audio_sample_rate>[SampleRate]</audio_sample_rate>
        <audio_channels_number>[ChannelsNumber]</audio_channels_number>
        <audio_volume>[Volume]</audio_volume>
        <audio_sync>[SyncParam]</audio_sync>
        <pan>[Pan]</pan>
        <audio_minrate>[MinBitRate]</audio_minrate>
        <audio_maxrate>[MaxBitRate]</audio_maxrate>
        <audio_bufsize>[BufferSize]</audio_bufsize>
        <loudnorm>[LoudnessNormalization]</loudnorm>
        <loudnorm_range>[NormalizationRange]</loudnorm_range>
        <loudnorm_peak>[NormalizationPeak]</loudnorm_peak>
    </format>
</query>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "addMedia",
        "format": {
            "output": "[output]",
            "audio_codec": "[AudioCodec]",
            "audio_bitrate": "[BitRate]",
            "acbr": "[yes|no]",
            "audio_sample_rate": "[SampleRate]",
            "audio_channels_number": "[ChannelsNumber]",
            "audio_volume": "[Volume]",
            "audio_sync": "[SyncParam]",
            "pan": "[Pan]",
            "audio_minrate": "[MinBitRate]",
            "audio_maxrate": "[MaxBitRate]",
            "audio_bufsize": "[BufferSize]",
            "loudnorm": "[LoudnessNormalization]",
            "loudnorm_range": "[NormalizationRange]",
            "loudnorm_peak": "[NormalizationPeak]"
        }
    }
}
Parameter
Description
Allowed Value
Default Value

audio_codec

Specify the audio codec

mp3: libmp3lame
m4a: libfaac, dolby_aac, dolby_heaac, dolby_heaacv2, eac3
flv: libmp3lame, libfaac, dolby_aac, dolby_heaac, dolby_heaacv2
mp4: libfaac, dolby_aac, dolby_heaac, dolby_heaacv2, ac3, eac3
fl9, m4v, ipod, iphone, ipad, psp: libfaac, dolby_aac, dolby_heaac, dolbyheaacv2
**wowza, roku
, kindle_fire: libfaac, dolby_aac, dolby_heaac, dolby_heaacv2, eac3 mov: libfaac, dolby_aac, dolby_heaac, dolby_heaacv2, eac3, pcm_f32be, pcm_f32le iphone_stream, ipad_stream: libfaac, dolby_aac, dolby_heaac, dolby_heaacv2 wowza_multibitrate, wowza_multibitrate_mp4, roku_hls, hds: libfaac, dolby_aac, dolby_heaac, dolby_heaacv2, eac3 smooth_streaming: libfaac, dolby_aac, dolby_heaac, dolby_heaacv2, eac3 advanced multibitrate stream: libfaac, dolby_aac, dolby_heaac, dolby_heaacv2, ac3, eac3, libmp3lame(only for ‘v3’ segmenter) live hls stream: libfaac, ac3, libmp3lame
wmv, wma, zune: wmav2, libmp3lame
wav: pcm_s16le, pcm_s24le, pcm_s32le ogg, webm: libvorbis
3gp: libamr_nb
android: libamr_nb, libfaac mpeg2: pcm_s16be, pcm_s16le, ac3 mpeg1: mp2, copy mpegts: ac3, eac3, libfaac, libmp3lame, mp2, dolby_aac, dolby_heaac, dolby_heaacv2 mpeg_dash: libfaac, eac3 mxf: pcm_s16le, pcm_s24le, copy dnxhd_mxf*
: pcm_s16le, pcm_s24le, copy

flv, mp3: libmp3lame
fl9, mp4, m4v, ipod, iphone, ipad, psp, wowza, roku_*, kindle_fire: libfaac
mov: libfaac
iphone_stream, ipad_stream, wowza_multibitrate, wowza_multibitrate_mp4, roku_hls, smooth_streaming, hds: libfaac
advanced hls stream: libfaac
wmv, zune: wmav2
wav
: pcm_s16le
ogg, webm: libvorbis
3gp, android: libamr_nb
mpeg2: pcm_s16be
mpeg1: mp2
m4a: libfaac
mpeg_dash: libfaac
mpegts: ac3
mxf: pcm_s24le
dnxhd_mxf: pcm_s16le

audio_bitrate

Specify the 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

acbr

Enable CBR (Constant bitrate) for audio streams. Only for vorbis (Ogg, Webm).

yes, no

no

audio_sample_rate

Specify the 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
mp4: 44100
3gp, android: 8000
flv, mp3, zune, mpeg2: 44100

audio_channels_number

Specify the number of audio channels.

All: any non-zero integer
3gp: 1
android: 1, 2

All: 2
3gp, android: 1

audio_volume

Specify audio volume level as a percentage.

Non-negative integer

100

audio_sync

Adjusts the audio stream to match the timestamps, in number 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

pan

Enable the selection and remapping of audio channels.

output_audio_chanel,input_audio_channel:output_audio_chanel,input_audio_channel
Example: 0,0:1,1

None

audio_minrate

Specify minimum allowed audio bitrate.

N or Nk — where N is any non-zero integer

None

audio_maxrate

Specify the maximum allowed audio bitrate.

N or Nk — where N is any non-zero integer

None

audio_bufsize

Specify rate control buffer size (bits).

N or Nk — where N is any non-zero integer

None

loudnorm

Specify the integrated loudness target.

Negative float number from -70.0 to -5.0

None

loudnorm_range

Specify the loudness range target.

Positive float number from 1.0 to 20.0

None

loudnorm_peak

Specify the maximum true peak.

Float number from -9.0 to 0.0

None

Note

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

Note

audio_volume parameter will not work with dolby_* audio codecs if audio_normalization or input_dialnorm parameters are set.

EBU requirements

loudnorm: -23
loudnorm_range: 1
loudnorm_peak: -1

Note

Loudnorm feature not supported by advanced multibitrate formats.

Note

Loudnorm feature doesn’t affect Dolby audio

Suggest Edits

Audio Multitrack Settings

Encoding.com supports the use of multiple audio tracks in a single output. You can change audio tracks settings in the <audio_stream> section.

 
<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <audio_stream>
            <use_stream_id>[SourceMediaAudioStreamID]</use_stream_id>
            <language>[ISO639-2 language identifier]</language>
            <!-- Common audio settings -->
            <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>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "[Action]",
        "format": {
            "audio_stream": [
                {
                    "use_stream_id": "[SourceMediaAudioStreamID]",
                    "language": "[ISO639-2 language identifier]",
                    "channel": [
                        {
                            "id": "[OutputChannelID]",
                            "in": [
                                {
                                    "id": "[SourceTrackID:SourceChannelID]",
                                    "gain": "[ChannelGainLevel]"
                                }
                            ]
                        }
                    ],
                    "normalize": "[yes|no]",
                    "layout": "[AudioLayoutName]"
                }
            ]
        }
    }
}
Parameter
Description
Allowed Values
Default Values

use_stream_id

Specify the source media stream ID.

Non negative integer number

By default # of <audio_stream> param will be used.

language

Specify the track language.

A language code in 3 lowercase letters according to ISO639-2.

None

MAPPING PARAMETERS

normalize

Enable the renormalization output track to avoid clipping noise.

yes, no

None

layout

Specify the 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

None

<channel> – OUTPUT AUDIO CHANNEL PARAMETERS

id

Specify the 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

None

<in> – INPUT AUDIO CHANNEL PARAMETERS

id

Specify input audio channel ID.

Input channel ID in format [track_id]:[channel_id]

None

gain

Sepcify the input audio channel gain level.

Float positive number from 0 to 1

None

Suggest Edits

Nielsen ID3 Metadata for HLS

This feature will allow source content with Nielsen's PCM watermarks to be converted into the ID3 tags of the HLS standard with the Nielsen PCM-to-ID3 SDK. Available for the advanced_hls, advanced_dash output formats.

 
Parameters
Description
Allowed Values
Default Values

copy_nielsen_metadata

Copy Nielsen audio watermarks and Nielsen ID3 tags from source.

yes, no

no

nielsen_breakout_code

Specify the Nielsen breakout code.

00 — Live content with same TV ads. Original simulcast 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 original changed/added ad-load. FOR DIGITAL PROGRAM RATING ONLY.

None

nielsen_distributor_id

Specify the Nielsen distributor id.

Appropriate distributor ID

None

Suggest Edits

Output Destinations

Encoding.com supports a wide variety of delivery destinations. You can use multiple <destination> elements within each <format>.

 
Destination Type
Description

FTP / SFTP

ftp://[user[:password]@]hostname[:port]/[path]/[filename][?passive=yes]

sftp://[user[:password]@]hostname[:port]/[path]/[filename]

Amazon Web Services (S3)

Akamai HLS Ingest

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]

S3 NetApp

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

For FTP URL

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.

For Amazon S3

  • Do not forget to URL encode your AWS_SECRET, specifically replacing '/' with '%2F'.

  • If you don't specify AWS key/secret, the bucket must have READ and WRITE permissions for AWS user:

    1a85ad8fea02b4d948b962948f69972a72da6bed800a7e9ca7d0b43dc61d5869

  • See Amazon S3 ACL for more details.

  • See Percent-encoding for more details on URLencoding.

  • Using specific S3 endpoints:
    To use specific endpoint replace ‘s3.amazonaws.com‘ in your S3 URL with one of the following:

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

For Asper URL

To use private key for Aspera authentication you could use SetHostKey API request.

Suggest Edits

Output Encryption

Supported by all formats except iphone_stream, ipad_stream, roku_hls, advanced_mss, and advanced_dash formats(these formats have their 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><<id>></userid> <!-- required-->
    <userkey><<key>></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>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "[Action]",
        "format": {
            "encryption": "[yes|no]",
            "encryption_method": "[aes-128-cbc|aes-128-ctr|aes-256-cbc|aes-256-ctr]",
            "encryption_key": "[Hexidecimal string]",
            "encryption_key_file": "[URL]",
            "encryption_iv": "[Hexidecimal string]",
            "encryption_password": "[Password]"
        }
    }
}
Parameter
Description
Allowed Values
Default Value

encryption

Encrypt the output files.

yes,no

no

encryption_method

Specify the encryption method.

aes-128-cbc, aes-128-ctr, aes-256-cbc, aes-256-ctr

aes-128-cbc

encryption_key

Specify the encryption key.

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

None

encryption_key_file

Specify the URL to the encryption key file.

Valid URL to encryption key file.

None

encryption_iv

Specify the encryption initialization vector.

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

None

encryption_password

Specify the password for to generate the initialization vector.

Any set of characters.

None

Suggest Edits

Other Format Options

Additional output configuration items can be found here.

 
<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>addMedia</action>
    <format> <!-- REQUIRED -->
        <output>[output]</output> <!-- REQUIRED -->
        <profile>[ProfileName]</profile>
        <encoder>[EncoderVersion]</encoder>
        <two_pass>[yes|no]</two_pass>
        <two_pass_decoding>[1|]</two_pass_decoding>
        <bufsize>[BufferSize]</bufsize>
        <rc_init_occupancy>[BufferOccupancy]</rc_init_occupancy>
        <deinterlacing>[yes|no|auto]</deinterlacing>
        <force_interlaced>[InterlacedType]</force_interlaced>
        <add_meta>[yes|no]</add_meta>
        <hint>[yes|no]</hint>
        <preset>[WebMPreset]</preset>
        <bframes>[BFramesMode]</bframes>
        <!-- bframes option only available for mpeg2 output -->
        <gop>[GOPType]</gop>
        <luma_spatial>[SpatialLumaStrength]</luma_spatial>
        <chroma_spatial>[SpatialChromaStrength]</chroma_spatial>
        <luma_temp>[TemporalLumaStrength]</luma_temp>
        <strip_chapters>[yes|no]</strip_chapters>
        <vidly_hls>[yes|no]</vidly_hls>
        <vidly_hd>[yes|no]</vidly_hd>
        <hard_cbr>[yes|no]</hard_cbr>
        <pix_format>[PixFormat]</pix_format>
        <best_quality>[yes|no]</best_quality>
        <interlaced>[yes|no]</interlaced>
        <copy_timestamps>[yes|no]</copy_timestamps>
        <slices>[SlicesNumber]</slices>
        <speed>[SpeedCorrection]</speed>
    </format>
</query>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "addMedia",
        "format": {
            "output": "[output]",
            "profile": "[ProfileName]",
            "encoder": "[EncoderVersion]",
            "two_pass": "[yes|no]",
            "two_pass_decoding": "[1|]",
            "bufsize": "[BufferSize]",
            "rc_init_occupancy": "[BufferOccupancy]",
            "deinterlacing": "[yes|no|auto]",
            "force_interlaced": "[InterlacedType]",
            "add_meta": "[yes|no]",
            "hint": "[yes|no]",
            "preset": "[WebMPreset]",
            "bframes": "[BFramesMode]",
            "gop": "[GOPType]",
            "luma_spatial": "[SpatialLumaStrength]",
            "chroma_spatial": "[SpatialChromaStrength]",
            "luma_temp": "[TemporalLumaStrength]",
            "strip_chapters": "[yes|no]",
            "vidly_hls": "[yes|no]",
            "vidly_hd": "[yes|no]",
            "hard_cbr": "[yes|no]",
            "pix_format": "[PixFormat]",
            "best_quality": "[yes|no]",
            "interlaced": "[yes|no]",
            "copy_timestamps": "[yes|no]",
            "slices": "[SlicesNumber]",
            "speed": "[SpeedCorrection]"
        }
    }
}
Parameter
Description
Allowed Values
Default Value

profile

This defines various sets of capabilities which are referred to as profiles, that target specific classes of applications.

high, main, baseline

fl9, mpeg4, flv: high
mp4, m4v: main
ipod, iphone, ipad, 3gp, psp: baseline

encoder

Specify which version of Encoding.com's engine to use.

v1, v3

v1

two_pass

Enable or disable two_pass encoding.

yes, no

no

two_pass_decoding

Decode to a lossless format prior to encoding to reduce errors.

1

None

bufsize

Specify the rate control buffer size in bits.

N or Nk – where N is any non-zero integer

None

rc_init_occupancy

Specify the initial rate control buffer occupancy in bits.

N or Nk – where N is any non-zero integer`

None

deinterlacing

Enable deinterlacing.

yes, no, auto
auto – use de-interlacing if source's scan type is interlaced

auto

force_interlaced

Specify the interlaced encoding type. Only works with MPEG-TS.

mpegts: tff, bff, no

mxf: tff, bff, source, no

no

add_meta

Adds meta data to the file. Only works with FLV.

yes, no

All: None
flv: no

hint

Add RTP data (for streaming servers). Only works with MP4.

yes, no

All: None
mp4: no

preset

Specify format preset. Only works with WebM.

1 — 2-Pass Best Quality VBR Encoding
2 — 2-Pass Faster VBR Encoding
3 — 2-Pass VBR Encoding for Smooth Playback on Low-end Hardware
4 — 2-Pass CBR Encoding for Limited-bandwidth Streaming
5 — 2-Pass VBR Encoding for Noisy / Low-quality Input Source
6 — 1-Pass Good Quality VBR Encoding

6

bframes

Specify the bframes format.

2 [on = IBBPBBP], 0 [off = IPPPPPP]

2

gop

Specify the group of picture format.

sgop [Strict (Locked)], cgop [Closed (Scene Detection)]

luma_spatial

Specify the spatial luma strength.

Positive integer from 0 to 255.

4

chroma_spatial

Specify the spatial chroma strength.

Positive integer from 0 to 255.

3

luma_temp

Specify the temporal luma strength.

Positive integer from 0 to 255.

6

strip_chapters

Strip the chapters markers.

yes, no

no

vidly_hls

Enables the HLS format for Vidly Lite outputs.

yes, no

no

vidly_hd

Enables HD button in Vid.ly player. High Definition (720p) videos will be generated.

yes, no

no

hard_cbr

Specify HRD information and pack the bitstream to the specified bitrate.

yes, no

no

pix_format

Specify the pixel format – ability to lock output to YUV420p colorspace.

yuv420p, yuv422p, yuvj420p, yuvj422p, source

yuv420p

best_quality

Specify the best quality mode (very slow) – dnxhd output only

yes, no

no

interlaced

Enable interlacing for dnxhd output only.

yes, no

no

copy_timestamps

Do not process input timestamps, but keep their values without trying to generate them.

yes, no

yes

slices

Specify the number of slices, used in parallelized encoding.

Positive Integer

None

speed

Specify the speed of video correction

Positive float number or percentage value
Number – output speed will be changed to match specified
number of frames per second
Percentage – output speed will be set to specified
percent of source media

None

For bframes parameter

Bframes option available only for mpeg2 output format!

For pix_format parameter

If 'source' specified as value, then <pix_format> won't be added to format options.

For interlaced parameter

Bitrate for dnxhd output is specified separately and the default is 145m.

Suggest Edits

Brightcove Integration

Encoding.com has developed a special plug-in that enables Brightcove customers to take advantage of Encoding.com's advanced video encoding features. Utilizing the dozens of encoding controls (custom dimensions, bitrate, framerate, 1/2 pass, deinterlacing, etc.) available via the Encoding.com platform, Brightcove customers can now have complete control over their video transcoding and achieve superior quality without having to make an investment in expensive hardware / software solutions. The plug-in will automatically deliver the encoded video library to the Brightcove customer's account (via the Brightcove™ FTP Batch Provisioning) along with the necessary meta data (media title, description, tags, etc.) and is available via Encoding.com's powerful XML API thus enabling seamless integration into internal media workflows, applications and content management systems.

 

Composing API Request

First, add new elements to the AddMedia XML request:

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

This process will trigger our system to re-send the API request with <mediaid> element added to the specified URL. Then, the additional information will be stored and associated with newly added media.

The Manifest File Format

If the media is encoded successfully, the other script specified in the <notify> element will compose and save XML manifest file with the same name as your first result file, but with extension .xml, and to the same FTP folder as was specified in the first <destination>. The file will have the following format (assume the result video format is mp4):

<?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>
{
  "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}",
      "long-description": "{long_description}",
      "related-link-url": "{link_url}",
      "related-link-text": "{link_title}",
      "rendition-refid": "{result_filename}-{md5_hash}",
      "tag": "tag's content"
    }
  }
}

Where {file_size} and {md5_hash} will be calculated according to the result file. The asset nodes will be added only for the following output values: mp4, flv, fl9, thumbnail.

Adding Thumbnails

If a request contains a thumbnail generation task, <asset type=”THUMBNAIL”> or <asset type=”VIDEO_STILL”> will be added to the manifest. The type attribute depends on the resulting image width: if it is less than 200 pixels, the type will be THUMBNAIL, otherwise it will be VIDEO_STILL.
The request:

<?xml version="1.0" encoding="utf-8"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>mp4</output>
        <destination>ftp://user:password@ftp.brightcove.com/encoded/media.mp4</destination>
    </format>
    <format>
        <output>thumbnail</output>
        <destination>ftp://user:password@ftp.brightcove.com/encoded/media_thumb.jpg</destination>
    </format>
</query>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "[Action]",
        "format": [
            {
                "output": "mp4",
                "destination": "ftp://user:password@ftp.brightcove.com/encoded/media.mp4"
            },
            {
                "output": "thumbnail",
                "destination": "ftp://user:password@ftp.brightcove.com/encoded/media_thumb.jpg"
            }
        ]
    }
}

The manifest:

<asset filename="media.mp4" refid="media.mp4-896e665b84fd8b59ba8f5930dc61d21b" size="1689452" hash-code="896e665b84fd8b59ba8f5930dc61d21b" type="VIDEO_FULL"/>
<asset filename="media_thumb.jpg" refid="media_thumb.jpg-0861874e79d02a9cb17642defad47926" size="29863" hash-code="0861874e79d02a9cb17642defad47926" type="THUMBNAIL"/>
<title name="{title}" refid="{bc_mediaid}" active="TRUE" video-full-refid=" media.mp4-896e665b84fd8b59ba8f5930dc61d21b" thumbnail-refid="media_thumb.jpg-0861874e79d02a9cb17642defad47926">
{
  "asset": {
    "-filename": "media.mp4",
    "-refid": "media.mp4-896e665b84fd8b59ba8f5930dc61d21b",
    "-size": "1689452",
    "-hash-code": "896e665b84fd8b59ba8f5930dc61d21b",
    "-type": "VIDEO_FULL",
    "parsererror": {
      "-style": "display: block; white-space: pre; border: 2px solid #c77; padding: 0 1em 0 1em; margin: 1em; background-color: #fdd; color: black",
      "h3": [
        "This page contains the following errors:",
        "Below is a rendering of the page up to the first error."
      ],
      "div": {
        "-style": "font-family:monospace;font-size:12px",
        "#text": "error on line 2 at column 1: Extra content at the end of the document
"
      }
    }
  }
}

Selecting title ref-id from multiple records with equal formats

If there are several mp4 or THUMBNAIL tasks in the single request, the same number of <asset> elements will be added to the XML manifest.
Although, only the first task of each group will reflect to the title's video-full-refid or thumbnail-refid accordingly. So, if you want certain task's asset to reflect into the title, specify this task first in your XML API request.

Specifying different video's renditions

When you specify video frame size and bitrate in your API request, the additional attributes will be added to the appropriate assets in the manifest file.

The request:

<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>mp4</output>
        <bitrate>300k</bitrate>
        <size>320x240</size>
    </format>
    <format>
        <output>mp4</output>
        <bitrate>750k</bitrate>
        <size>640x480</size>
    </format>
</query>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "[Action]",
        "format": [
            {
                "output": "mp4",
                "bitrate": "300k",
                "size": "320x240"
            },
            {
                "output": "mp4",
                "bitrate": "750k",
                "size": "640x480"
            }
        ]
    }
}

The manifest:

<asset filename="media1.mp4" refid="media1.mp4-896e665b84fd8b59ba8f5930dc61d21b" size="1689452" hash-code="896e665b84fd8b59ba8f5930dc61d21b" type="VIDEO_FULL" frame-width="320" frame-height="240" encoding-rate="300000"/>
<asset filename="media2.mp4" refid="media2.mp4-90f044322653e205466de79d4534b84f" size="3542788" hash-code="90f044322653e205466de79d4534b84f" type="VIDEO_FULL" frame-width="640" frame-height="480" encoding-rate="750000"/>
…  
And within the title:
<rendition-refid>media1.mp4-896e665b84fd8b59ba8f5930dc61d21b</rendition-refid>
<rendition-refid>media2.mp4-90f044322653e205466de79d4534b84f</rendition-refid>
{
  "asset": {
    "-filename": "media1.mp4",
    "-refid": "media1.mp4-896e665b84fd8b59ba8f5930dc61d21b",
    "-size": "1689452",
    "-hash-code": "896e665b84fd8b59ba8f5930dc61d21b",
    "-type": "VIDEO_FULL",
    "-frame-width": "320",
    "-frame-height": "240",
    "-encoding-rate": "300000",
    "parsererror": {
      "-style": "display: block; white-space: pre; border: 2px solid #c77; padding: 0 1em 0 1em; margin: 1em; background-color: #fdd; color: black",
      "h3": [
        "This page contains the following errors:",
        "Below is a rendering of the page up to the first error."
      ],
      "div": {
        "-style": "font-family:monospace;font-size:12px",
        "#text": "error on line 2 at column 1: Extra content at the end of the document
"
      }
Suggest Edits

Waveform

Render waveforms from sound files as png images. Rendersound is the library used.

 
<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></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>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "[Action]",
        "format": {
            "output": "waveform",
            "video_codec": "png",
            "width": "500",
            "height": "50",
            "color": "FF0000",
            "factor": "4"
        }
    }
}
Parameter
Description
Allowed Values
Default Value

width

Specify the width of the output in pixels.

Positive Integer

500

height

Specify the height of the output in pixels.

Positive Integer

500

color

Specify color expressed as rgb hex.

RGB HEX values.

FF0000

factor

Specify the super sampling factor for anti aliasing.

Integer

4

Suggest Edits

Downmix

Use these settings to manipulate audio channel configuration.

 
Parameter
Description
Allowed Values
Default Value

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

Note

The metadata does not contain downmix coefficients when the encoded audio is stereo.

Suggest Edits

Loudness Control

Audio settings for loudness control.

 
Parameter
Description
Allowed Values
Default Value

loudness_mode

Specify the 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

Specify the target loudness for Dolby Media Generator.

-31–0 or 1–100%

None

dialnorm_threshold

Specify the dialnorm threshold for Dolby Media Generator.

One or two comma separated positive float numbers less than 99.9

None

input_dialnorm

Specify the dialnorm value for Dolby Media Generator. Should be used when the input dialnorm is already measured. Can’t be used with audio_normalization option.

-31 - 1

None

adjust_gain_for_dialnorm

Apply gain or attenuation to the audio signal, so that the loudness of the output audio signal is corrected to be equal to the value specified by input metadata.

yes, no

None

clipmode

Specify the clipmode for Dolby Media Generator.

scale, prolimit, hard

None

prolimiter_max_peak

Set the maximum peak sample value allowed by the limiter output. Allowed only for prolimiter clipmode.

-20.0–-0.1

None

For audio_normalization parameter

negative integer value of audio_normalization parameter will be interpret as absolute value in db. Percentege value(or positive integer) will be interpret as relative value where 100% equal to -31db.

Suggest Edits

Dolby Media Generator Settings

Dolby Media Generator software brings aggregators and distributors reliable delivery of mobile and OTT content while lowering storage requirements, reducing download times, and boosting playback quality. Encoding.com has partnered with Dolby to make DMG available in the cloud.

 
Parameter
Description
Allowed Values
Default Value

dc_repair

Enables DC offset correction.

yes, no

no

phase_repair

Enables the correction of a phase difference between the L and R channels

yes, no

no

dmg_alerts

Enables alerts that provide information about a particular defect to the standard output. Silent Channel, DC Offset or Out of Phase Channel, for example.

yes, no

no

Suggest Edits

Introduction to Carbon in the Cloud

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.

 

Note

We don't pack into tar archives multiple output files.

Suggest Edits

ProMedia Carbon Preset GUID

Use these settings to manager your carbon presets.

 
<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>harmonic</output>
        <preset_guid>[HarmonicPresetUrl]</preset_guid>
        <destination>[DestinationUrl]</destination> 
    </format>
</query>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "[Action]",
        "format": {
            "output": "harmonic",
            "preset_guid": "[HarmonicPresetUrl]",
            "destination": "[DestinationUrl]"
        }
    }
}
Parameter
Description
Allowed Values
Default Values

preset_guid

*GUID of predefined Harmonic preset.

Complete list can be found here.

None

Suggest Edits

ProMedia Carbon Preset File

These settings point Encoding.com to your custom carbon preset file.

 
<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></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>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "[Action]",
        "format": {
            "output": "harmonic",
            "preset_file": "[HarmonicPresetUrl]",
            "source_filter_1_file": "[FileURL]",
            "destination_filter_0_file": "[FileURL]",
            "destination": "[DestinationUrl]"
        }
    }
}
Parameter
Description
Allowed Values
Default Value

preset_file

Specify the Harmonic preset file. *Only the first destination module of the Harmonic preset file will be used.

Valid URL to Harmonic preset file.

None

source_filter_N_file

Specify the source file for Source filter N in Harmonic preset file, where N is a positive integer and equal to the Source filter number..

Valid URL.

None

destination_filter_N_file

Specify the source file for destination filter N in the Harmonic preset file, where N is a positive integer and equal to the destination filter number.

Valid URL.

None

For source_filter_N_file and destination_filter_N_file parameters

source_filter_N_file/destination_filter_N_file parameters should be used only if the filter requires a sidecar source file as the argument. For example, filter “Caption inject from .SCC file”, requires a sidecar SCC file.

Suggest Edits

ProMedia Carbon Other Options

This enables the Carbon Grid Encoder.

 
<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>harmonic</output>
        <!-- harmonic preset options -->
        <use_grid_encoder>[yes|no]</use_grid_encoder> 
    </format>
</query>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "[Action]",
        "format": {
            "output": "harmonic",
            "use_grid_encoder": "[yes|no]"
        }
    }
}
Parameter
Description
Allowed Values
Default Value

use_grid_encoder

Enable the GRID encoder.
*The GOP structure may be changed to “variable” while using GRID encoder.

yes, no

yes

Suggest Edits

ProMedia Xpress

Use these settings to access the Harmonic ProMedia Xpress Carbon Engine.

 
<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></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>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "[Action]",
        "format": {
            "output": "harmonic_json",
            "preset_file_transcode": "[PresetFileURL]",
            "preset_file_transcode_2": "[PresetFileURL]",
            "preset_file_multiplex": "[PresetFileURL]",
            "destination": "[DestFile]"
        }
    }
}
Parameter
Description
Allowed Values
Default Value

preset_file_transcode

Specify the Harmonic transcode preset file.

Valid URL.

None

preset_file_transcode_2

Specify the Harmonic transcode preset file for second pass.

Valid URL.

None

preset_file_multiplex

Specify the Harmonic multiplex preset file.

Valid URL.

None

Suggest Edits

Introduction

 

Encoding.com offers an advanced set of controls for adaptive bitrate encoding. Whether you are using HLS, MSS, or DASH, these controls offer optimized playback across the widest range of devices.

Suggest Edits

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.

Suggest Edits

Byte-range

 

Note

This feature available only for advanced_hls and fmp4_hls output formats.

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.

Suggest Edits

I-Frame Playlist

 

Note

This feature available only for advanced_hls and fmp4_hls output formats.

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.

Suggest Edits

Sample Request

This is a complete request for our advanced ABR outputs.

 
<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>[advanced_hls|advanced_dash|advanced_mss|fmp4_hls|advanced_fmp4]</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>
            <use_alternate_id>[AlternateSourceIndex0]</use_alternate_id>
            <!-- Multiple alternate source ids may be included in stream -->
            <use_alternate_id>[AlternateSourceIndexN]</use_alternate_id>
        </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>
            <auto>[yes|no]</auto>
        </alternate_source>
        <alternate_source>
           <!-- alternate_source params -->
        </alternate_source>
        <!-- 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>[EncryptionMethod]</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>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "[Action]",
        "format": {
            "output": "[advanced_hls|advanced_dash|advanced_mss|fmp4_hls|advanced_fmp4]",
            "stream": [
                {
                    "profile": "[high|main|baseline]",
                    "still_image": "[no|each_segment|first_segment]",
                    "still_image_time": "[Time]",
                    "still_image_size": "[Size]",
                    "byte_range": "[yes|no]",
                    "add_iframe_stream": "[yes|no]",
                    "audio_only": "[yes|no]",
                    "video_only": "[yes|no]",
                    "group_id": "[GroupID]",
                    "use_group_id": "[CommaSeparatedList]",
                    "playlist_version": "[Valid EXT-X-VERSION]",
                    "sub_path": "[Playlist sub path]",
                    "media_path": "[Playlist sub path]",
                    "use_alternate_id": [
                        "[AlternateSourceIndex0]",
                        "[AlternateSourceIndexN]"
                    ]
                }
            ],
            "manifest": [
                {
                    "basename": "[BaseName]"
                }
            ],
            "main_source": {
                "type": "[video_audio|video|audio]",
                "video_name": "[Name]",
                "audio_name": "[Name]",
                "use_stream_id": "[CommaSeparatedList]",
                "language": "[Language]"
            },
            "alternate_source": [
                {
                    "source": "[FileURL]",
                    "type": "[video_audio|video|audio]",
                    "video_name": "[Name]",
                    "audio_name": "[Name]",
                    "use_stream_id": "[CommaSeparatedList]",
                    "language": "[Language]",
                    "auto": "[yes|no]"
                }
            ],
            "duration_precision": "[Number]",
            "segment_duration": "[Duration]",
            "pack_files": "[yes|no]",
            "pack_type": "[tar|zip]",
            "pack_each_stream": "[yes|no]",
            "encryption": "[yes|no]",
            "encryption_method": "[EncryptionMethod]",
            "encryption_key": "[128bit-key]",
            "encryption_key_file": "[SourceURL]",
            "encryption_iv": "[Hexidecimal string]",
            "segmenter": "[v1|v2|v3|dolby_segmenter]",
            "playlist_version": "[Valid EXT-X-VERSION]",
            "merge_small_segments": "[yes|no]",
            "destination": "[DestFile]"
        }
    }
}
Suggest Edits

Specific Options for advanced_hls and fmp4_hls Outputs

 
<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>[advanced_hls|fmp4_hls]</output>
        <stream>
            <!-- Manifests fields -->
            <manifest>
                <basename>[BaseName]</basename> <!-- required-->
                <add_to_manifest>
                    [ManifestName]:[Position],[ManifestName]:[Position]
                </add_to_manifest>
                <clearkey_drm>[yes|no]</clearkey_drm>
                <fairplay_drm>[yes|no]</fairplay_drm>
                <access_drm>[yes|no]</access_drm>
                <playready_drm>[yes|no]</playready_drm>
                <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>
        <!-- Alternate source fields -->
        <!-- multiple alternate_sources may be included -->
        <alternate_source>
            <alternate_default>[yes|no|auto]</alternate_default>
            <alternate_autoselect>[yes|no]</alternate_autoselect>
        </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>
        <cmaf_conformant>[yes|no]</cmaf_conformant>
        <bif>[yes|no]</bif>
        <bif_destination>[BIFDestination1]</bif_destination>
        <!-- Multiple BIF destinations may be included -->
        <bif_destination>[BIFDestinationN]</bif_destination>
        <!-- Format fields -->
        <!-- Nielsen metadata settings -->
    </format>
</query>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "[Action]",
        "format": {
            "output": "[advanced_hls|fmp4_hls]",
            "stream": [
                {
                    "manifest": [
                        {
                            "basename": "[BaseName]",
                            "add_to_manifest": "[ManifestName]:[Position],[ManifestName]:[Position]",
                            "clearkey_drm": "[yes|no]",
                            "fairplay_drm": "[yes|no]",
                            "access_drm": "[yes|no]",
                            "playready_drm": "[yes|no]",
                            "destination": "[ManifestDestination]"
                        }
                    ]
                }
            ],
            "manifest": [
                {
                    "basename": "[BaseName]",
                    "destination": "[ManifestDestination]",
                    "add_audio_only": "[yes|no]"
                }
            ],
            "alternate_source": {
                "alternate_default": "[yes|no|auto]",
                "alternate_autoselect": "[yes|no]"
            },
            "ad_break": [
                {
                    "start": "[StartTime]",
                    "duration": "[BreakDuration]",
                    "drop_segments": "[yes|no]"
                }
            ],
            "cmaf_conformant": "[yes|no]",
            "bif": "[yes|no]",
            "bif_destination": [
                "[BIFDestination1]",
                "[BIFDestinationN]"
            ]
        }
    }
}

Note

closed captions webVTT and cea-608 mux types only available for advanced_hls output format

Note

<ad_break /> feature only available for advanced_hls output format

Note

<cmaf_conformant /> feature available for fmp4_hls and other fmp4 output formats.

Suggest Edits

Apple TV

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

 
<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></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>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "[Action]",
        "format": {
            "output": "[appletv|appletv_43]",
            "duration_precision": "3",
            "stream": "",
            "main_source": {
                "type": "video"
            },
            "alternate_source": {
                "type": "audio",
                "audio_name": "audio 1"
            }
        }
    }
}
Parameter
Description
Allowed Values
Default Value

output

Specify the output type.

appletv: preset for screens with 16:9 resolution
appletv_43: preset for screens with 4:3 resolution

None

duration_precision

Sets number of decimal points for duration in playlist file.

Integer

3

Suggest Edits

Specific Options for advanced_dash Output

 
<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>advanced_dash</output>
        <stream>
            <add_to_manifest>[ManifestName],[ManifestName]</add_to_manifest>
            <timescale>[TimeScale]</timescale>
        </stream>
        <!-- Multiple stream params may be included in advanced_dash output format -->
        <!-- Maximum number of available streams is 15 -->
        <stream>
           <!-- stream params -->
        </stream>
        <dash_profile>[ondemand|live|live_static]</dash_profile>
        <cmaf_conformant>[yes|no]</cmaf_conformant>
        <bif>[yes|no]</bif>
        <bif_destination>[BIFDestination1]</bif_destination>
        <!-- Multiple BIF destinations may be included -->
        <bif_destination>[BIFDestinationN]</bif_destination>
        <vtt_thumbnail>
           <interval>[ThumbnailInterval]</interval>
           <width>[ThumbnailWidth]</width>
           <height>[ThumbnailHeight]</height>
           <max_columns>[ColumnsPerTile]</max_columns>
           <max_rows>[RowsPerTile]</max_rows>
        </vtt_thumbnail>
        <!-- Format fields -->
        <!-- Nielsen metadata settings -->
    </format>
</query>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "[Action]",
        "format": {
            "output": "advanced_dash",
            "stream": [
                {
                    "add_to_manifest": "[ManifestName],[ManifestName]",
                    "timescale": "[TimeScale]"
                }
            ],
            "dash_profile": "[ondemand|live|live_static]",
            "cmaf_conformant": "[yes|no]",
            "bif": "[yes|no]",
            "bif_destination": [
                "[BIFDestination1]",
                "[BIFDestinationN]"
            ],
            "vtt_thumbnail": {
                "interval": "[ThumbnailInterval]",
                "width": "[ThumbnailWidth]",
                "height": "[ThumbnailHeight]",
                "max_columns": "[ColumnsPerTile]",
                "max_rows": "[RowsPerTile]"
            }
        }
    }
}
Suggest Edits

Specific Options for advanced_mss Output

 
<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>advanced_mss</output>
        <stream>
            <add_to_manifest>[ManifestName],[ManifestName]</add_to_manifest>
            <timescale>[TimeScale]</timescale>
        </stream>
        <!-- Multiple stream params may be included in output format -->
        <!-- Maximum number of available streams is 15 -->
        <stream>
           <!-- stream params -->
        </stream>
        <cmaf_conformant>[yes|no]</cmaf_conformant>
        <!-- Format fields -->
    </format>
</query>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "[Action]",
        "format": {
            "output": "advanced_mss",
            "stream": [
                {
                    "add_to_manifest": "[ManifestName],[ManifestName]",
                    "timescale": "[TimeScale]"
                }
            ],
            "cmaf_conformant": "[yes|no]"
        }
    }
}
Suggest Edits

Specific Options for advanced_fmp4 Output

Advanced fMP4 output will create manifests for fmp4_hls, advanced_dash, and advanced_mss outputs with a common set of fmp4 files.

 
<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>advanced_fmp4</output>
        <stream>
            <!-- Fields applicable for fmp4_hls manifest -->
            <!-- Manifests fields -->
            <manifest>
                <basename>[BaseName]</basename> <!-- required-->
                <add_to_manifest>
                    [ManifestName]:[Position],[ManifestName]:[Position]
                </add_to_manifest>
                <clearkey_drm>[yes|no]</clearkey_drm>
                <fairplay_drm>[yes|no]</fairplay_drm>
                <access_drm>[yes|no]</access_drm>
                <destination>[ManifestDestination]</destination>
            </manifest>
            <!-- Multiple manifests may be included -->
            <manifest>
               <!-- manifest params -->
            </manifest>
            <!-- Fields applicable for advanced_dash and advanced_mss manifest -->
            <add_to_manifest>[ManifestName],[ManifestName]</add_to_manifest>
            <timescale>[TimeScale]</timescale>
        </stream>
        <!-- Multiple stream params may be included -->
        <!-- Maximum number of available streams is 15 -->
        <stream>
           <!-- stream params -->
        </stream>
        <!-- Manifests fields -->
        <!-- Multiple manifests may be included -->
        <manifest>
           <!-- manifest params -->
        </manifest>
        <!-- Fields applicable for fmp4_hls manifest -->
        <!-- Alternate source fields -->
        <!-- multiple alternate_sources may be included -->
        <alternate_source>
            <alternate_default>[yes|no|auto]</alternate_default>
            <alternate_autoselect>[yes|no]</alternate_autoselect>
        </alternate_source>
        <cmaf_conformant>[yes|no]</cmaf_conformant>
        <!-- Format fields -->
        <!-- Nielsen metadata settings -->
    </format>
</query>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "[Action]",
        "format": {
            "output": "advanced_fmp4",
            "stream": [
                {
                    "manifest": [
                        {
                            "basename": "[BaseName]",
                            "add_to_manifest": "[ManifestName]:[Position],[ManifestName]:[Position]",
                            "clearkey_drm": "[yes|no]",
                            "fairplay_drm": "[yes|no]",
                            "access_drm": "[yes|no]",
                            "destination": "[ManifestDestination]"
                        }
                    ],
                    "add_to_manifest": "[ManifestName],[ManifestName]",
                    "timescale": "[TimeScale]"
                }
            ],
            "manifest": "",
            "alternate_source": {
                "alternate_default": "[yes|no|auto]",
                "alternate_autoselect": "[yes|no]"
            },
            "cmaf_conformant": "[yes|no]"
        }
    }
}

Note

For closed captions the only available muxing types are ismt and webvtt .
If mux type set to webvtt it will be applied to dash and hls manifests and ismt for mss.
If mux type set to ismt it will be applied to dash and mss manifests and webvtt for hls.

Suggest Edits

Main Manifest Parameters

 
Parameters
Description
Allowed Values
Default Value

basename

Specify the basename for the main manifest.

String

None

destination

Specify the destination for the main mainfest.

Valid URL

None

add_audio_only

Add an audio only stream to this manifest.

yes, no

yes

Note

destination and add_audio_only options available only for advanced_hls output.

Suggest Edits

Stream Manifest Parameters

 

Note

These features are only available for advanced_hls, fmp4_hls, and advanced_fmp4 outputs.

Parameter
Description
Allowed Values
Defaults Value

basename

Stream manifest basename.

String

None

add_to_manifest

Add to one or several specified main manifests. If no value specified stream would be added to all main manifests.

Comma separated list of manifests. Optionally the manifest position can be specified as [ManifestName]:[Position]

None

clearkey_drm

Enable ClearKey DRM protection.

yes, no

no

fairplay_drm

Enable FairPlay DRM protection.

yes, no

no

access_drm

Enable Access DRM protection.

yes, no

no

playready_drm

Enable PlayReady DRM protection.

yes, no

no

destination

Specify the stream manifest destination.

Valid destination URL.

None

Suggest Edits

Main Source Parameters

 
Parameter
Description
Allowed Values
Default Value

type

Specify which streams will use types.

video – Everything but audio_only streams.
audio – for audio_only streams.
video_audio – for all streams.

video_audio

video_name

Specify the name of the video stream for the main source.

String

None

audio_name

Specify the name of the audio stream for the main source.

String

None

use_stream_id

Specify which soure's stream will be processed.

Comma separated list of steam IDs.

None

language

Specify the language attribute for the main source.

Valid language name.

None

Suggest Edits

Alternate Source Parameters

 
Parameter
Description
Allowed Values
Default Value

source

Specify the URL to an alternate source file. If there is not alternate, the main source will be used.

Valid URL.

None

type

Specify which streams will use types.

video – Everything but audio_only streams.
audio – for audio_only streams.
video_audio – for all streams.

video_audio

video_name

Specify the name of the video stream for the main source.

String

None

audio_name

Specify the name of the audio stream for the main source.

String

None

use_stream_id

Comma separated list of steam IDs.

String

None

language

Specify the language attribute for the main source.

Video langauge name.

None

auto

Automatically add all streams with a given type.

yes, no

no

alternate_default

Enable the alternate source as default.

auto, yes, no

auto

alternate_autoselect

If playback environment is matched, the aternate_source will be automatically selected.

yes, no

yes

For auto parameter

If <auto> is set to 'yes' for <alternate_source> then:

  • Only auto alternate sources will be applied, other custom alternate_sources will be skipped.
  • all other options(except for <type>) of <alternate_source> section will be ignored.

Note

<alternate_default /> and <alternate_autoselect /> available only for advanced_hls, fmp4_hls, and advanced_fmp4 output formats.

For alternate_default parameter

If <alternate_default> is set to ‘yes<alternate_autoselect> must be set to ‘yes’ too!

Suggest Edits

Ad Break Parameters

 

Note

ad_break options available only for advanced_hls output.

Dynamic advertisements can be scheduled directly into HLS media streams by modifying the .m3u8 manifest. Encoding.com supports the scheduling of one more more ad breaks at any point during your content's run time by modifying the manifest at the time of manifest creation. Most third party video ad servers rely on the HLS Ad Playlist specifications EXT-X-DISCONTINUITY tag to signal ad insertion points. This tag informs the video player of a change that's coming to the streaming media so the player can prepare for the change ahead of time. Please check with your video ad provider for compatibility with the HLS Ad Specification before deploying.

Parameter
Description
Allowed Values
Default Values

start

Specify the start of the ad break in seconds.

Non-negative integer number.

None

duration

Specify the ad break duration in seconds.

Non-negative integer number.

None

drop_segments

Specify whether or not to drop segments during an ad break.

yes, no

no

Suggest Edits

VTT Thumbnail Parameters

 

Note

vtt_thumbnail options available only for advanced_dash output.

Parameter
Description
Allowed Values
Defalt Value

interval

Specify the time interval between images in seconds or percentage of time passed.

N – Positive float number greater than 0.01

N%– Positive float number

11

width

Specify the image width.

Non-negative integer.

160

height

Specify the image height.

Non-negative integer.

None

max_columns

Specify the number of columns per tile.

Non-negative integer.

None

max_rows

Specify the number of rows per tile.

Non-negative integer.

None

Suggest Edits

ROKU BIF Thumbnail Format

 

Note

This feature available only for advanced_hls, fmp4_hls, advanced_dash output formats.

The BIF image archive specification is used to encapsulate a set of still images for supporting video trick modes (e.g. FastForward/Rewind) on the Roku Streaming Player.

Parameter
Description
Available Values
Default Value

bif

Enable the creation of bif files.

yes, no

no

bif_destination

Specify the destination URL for BIF files. If this is not specified it will be delivered to the same destination as the manifest.

Valid URL

None

Suggest Edits

Stream Parameters

 

If no streams are specified, 9 default streams will be created for advanced_hls, 9 default streams for appletv and appletv_43, and 9 default streams will be created for advanced_dash/advanced_mss. The maximum number of available streams is 15.

Acceptable parameters from:
Video Settings
Audio Settings
Other Format Options
Watermarking
Video Rotation
Cropping
Fading
Video Overlays
Audio Overlays
Text Overlays
Burn-in Timecode Options
Closed Captions

Parameter
Description
Allowed Values
Default Value

still_image

Specify how to embed a still image in an audio only stream.

no, each_segment, first_segment

no

still_image_time

Specify the time from the beginning of the video to capture a still image.

Non-negative number greater than 0.01 or hh:mm:ss.ms.

5

still_image_size

Specify the size of the still image.

WxH where W and H — positive integers.

None

byte_range

Enable byte-range playlist – do not split mpeg-ts file into segments.

yes, no

no

add_iframe_stream

Add i-frame playlist for this stream (allowed only for video).

yes, no

no

audio_only

Enable the creation of audio only segments.

yes, no

no

video_only

Enable the creation of video only segments.

yes, no

no

group_id

Specify an alternate group id based on the current stream.

String

None

use_group_id

Specify a group id list to use as alternate for current stream.

Comma separated group_id list.

None

base_name

Specify the customer stream result filename.

Valid filename.

None

playlist_version

Specify the version of the m3u8 playlist.

Integer(EXT-X-VERSION)

None

sub_path

Specify the stream manifest and media file location.

Valid URL.

None

media_path

Specify the media file location path relative to the sub_path.

Valid URL.

None

add_to_manifest

Add to one or several main manifests. If not value is specified it will be added to all main manifests.

Comma separated list of manifests.

None

use_alternate_id

Add one or several alternate sources. If no value is specified all alternate sources will be added to the stream.

Integer number. Should be less than <alternate_source/> parameter count.

None

timescale

Specify the fmp4 timescale.

Non-negative integer.

None

For byte_range parameter

<byte_range /> is available only for advanced_hls and fmp4_hls outputs only.

For add_iframe_stream parameter

<add_iframe_stream /> available only for advanced_hls output.

For media_path parameter

<media_path /> feature available only for advanced_dash and advanced_mss output.

For use_alternate_id parameter

Each alternate source added via separate <use_alternate_id /> parameter.

For timescale parameter

<timescale /> feature available only for advanced_dash, fmp4_hls, advanced_fmp4, advanced_mss output formats.

Suggest Edits

Format Parameters

These are the general format parameters available for our adaptive outputs.

 

Note

Audio and video parameters aren’t applicable to the <format /> level and should be set in each <stream /> parameter.

Parameter
Description
Available Values
Default Value

duration_precision

Specify the number of decimal accuracy for the duration of the playlist file.

Interger

0

segment_duration

Specify the duration to output into segments, measured in seconds.

Positive Integer.

9

pack_files

Specify whether to package output in compressed file.

yes, no

yes

pack_type

Specify the type of compressed file to package output.

tar, zip

tar

pack_each_stream

Specify whether or not to package each stream in its own file.

yes, no

no

encryption

Enable AES-128 encryption.

yes, no

no

encryption_method

Specify the encryption method used.

advanced_hls: aes-128-cbc, sample-aes
fmp4_hls: aes-128-cbc, mpeg_cbcs, mpeg_cens, mpeg_cbc1, mpeg_cenc
advanced_dash, advanced_mss, advanced_fmp4: mpeg_cbcs, mpeg_cens, mpeg_cbc1, mpeg_cenc

advanced_hls, fmp4_hls: aes-128-cbc
advanced_fmp4, advanced_dash, advanced_mss: mpeg_cenc

encryption_key

Specify the encryption key.

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

None

encryption_key_file

URL to encryption key file.

Valid URL.

None

encryption_iv

Specify the encryption initialization vector.

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

aes-128-cbc – sequence number of the segment file,
sample-aes – randomly generated value

segmenter

Specify which segmenter to use.

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, we call 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, 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.

playlist_version

Specify the version of the m3u8 playlist file.

Integer(EXT-X-VERSION)

None

merge_small_segments

Merge the next chunk with the previous chunk if previous length is less than one second.

yes, no

no

dash_profile

Specify which dash output profile to use.

ondemand — urn:mpeg:dash:profile:isoff-on-demand:2011,
live — urn:mpeg:dash:profile:isoff-live:2011,
live_static — live with mpd@type=static

ondemand

cmaf_conformant

This will create an output that is CMAF conformant.

yes, no

no

For pack_type parameter

<pack_type /> parameter is ignored if <pack_files /> is disabled.

For pack_each_stream parameter

<pack_each_stream /> parameter is ignored if <pack_files /> is disabled.

For dash_profile parameter

<dash_profile /> options available only for advanced_dash output.

For cmaf_conformant parameter

<cmaf_conformant /> feature available only for advanced_dash, fmp4_hls, advanced_fmp4, advanced_mss output formats.

Nielsen Metadata Settings

Note

This feature available only for advanced_dash and advanced_hls output.

Suggest Edits

Introduction

 

This feature allows you to create intermediate multi-bitrate files that could be used as source for any Advanced Multi-bitrate media, such as Advanced HLS, Advanced FMP4 HLS, Advanced MSS, and Advanced Dash. Once you've created intermediate files, you could use them as source any time you want to create multi-bitrate media. Processing would take less time, because source files would be only repackaged without transcoding.

Suggest Edits

Intermediate HLS Destination

Adaptive Intermediate output creates a separate file for each specified stream and alternate source. Files are transcoded to the mpegts format. All features that need transcoding (overlays, burn-in closed captions etc) should be specified during the intermediate creation step.

 
<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>[AddMedia|AddMediaBenchmark]</action> <!-- required-->
    <source>[SourceFile]</source> <!-- required-->
    <multijob_workflow>[yes|no]</multijob_workflow>
    <format>
        <output>adaptive_intermediate</output>
        <intermediate_destination>[DestFile]</intermediate_destination> <!-- REQUIRED -->
        <!-- Destination fields -->
        <destination>[DestFile]</destination> <!-- REQUIRED -->
        <!-- Format fields -->
    </format>
</query>
{
    "query": {
        "userid": "",
        "userkey": "",
        "action": "[AddMedia|AddMediaBenchmark]",
        "source": "[SourceFile]",
        "multijob_workflow": "[yes|no]",
        "format": {
            "output": "adaptive_intermediate",
            "intermediate_destination": "[DestFile]",
            "destination": "[DestFile]"
        }
    }
}
Parameter
Description
Allowed Values
Default Value

intermediate_destination

Specify the destination stream URL for the intermeriate output files.

Valid URL.

None

For intermediate_destination parameter

URL must contain the complete path including filename. Specifying only the directory path will not work.

Files uploaded to intermediate destination would have the same structure as for adaptive_intermediate output format.

Suggest Edits

Intermediate Output Files

Adaptive Intermediate outputs create separate files for each specified stream and alternate source. Files are transcoded to the mpegts format. All features that need transcoding (overlays, burn-in closed captions etc) should be specified on the intermediate creation step.