prev/next

API

Optimized S3 Transport

We have implemented a new multithreaded transfer protocol that greatly accelerates transmit time out of Amazon S3's storage location.  On average we are seeing a 4-5X speed improvement  with peak up to 10x faster than our legacy protocol.  If your source media is stored on Amazon S3, you can activate multithread download by adding ?multithread parameter to your source URLs. 

 More -->

We have implemented a new multithreaded transfer protocol that greatly accelerates transmit time out of Amazon S3's storage location.  On average we are seeing a 4-5X speed improvement  with peak up to 10x faster than our legacy protocol.  If your source media is stored on Amazon S3, you can activate multithread download by adding ?multithread parameter to your source URLs.  If you are utilizing the ?nocopy function already then you can use both together by appending ?nocopy&multithread to your source URLs.

<source>http://www.example.com/yourvideo.mov?multithread</source>

<source>http://www.example.com/yourvideo.mov?nocopy?multithread</source>

 

 

<-- Hide
tools: email  |  print  |  share  |  click to rate (not rated yet):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How can I use the slideshow function via API?

There's a couple scenarios with how the slideshow feature works on the Encoding.com platform:

1) The default duration of any slideshow is 3 seconds.  This is regardless of length of the audio file. Add two source images of unspecified duration and you will have a 6 second clip, and so on. The XML below shows a audio file that

 More -->

There's a couple scenarios with how the slideshow feature works on the Encoding.com platform:

1) The default duration of any slideshow is 3 seconds.  This is regardless of length of the audio file. Add two source images of unspecified duration and you will have a 6 second clip, and so on. The XML below shows a audio file that is 34 seconds long. If that is added to an image file, the result will be a 3 second clip.

POST:

<?xml version="1.0"?>
<query>
  <action>AddMedia</action>
  <userid/>
  <userkey/>
  <source>[imagefile]</source>
  <source>[audiofile]</source>
  <notify/>
  <slideshow>1</slideshow>
  <region>us-east-1</region>
  <split_screen/>
  <format>
    <output>mp4</output>
    <destination/>
    <bitrate>2000k</bitrate>
    </format>
</query>

####

2) You can control the slideshow duration by setting the attribute of the still image to the desired size.

Example - A 34 second slideshow can be created via these tags / attributes:

<?xml version="1.0"?>
<query>
  <action>AddMedia</action>
  <userid/>
  <userkey/>
  <source>[imagefile].jpg?duration=34</source>
  <source>[audiofile]</source>
  <notify/>
  <slideshow>1</slideshow>
  <region>us-east-1</region>
  <split_screen/>
  <format>
    <output>mp4</output>
    <destination/>
    <bitrate>2000k</bitrate>
    </format>
</query>

####

The smallest duration you will be able to set is 1 second. Regardless of audio file length, this will produce a 1 second file:

<source>[imagefile].jpg?duration=1</source>
<source>[audiofile]</source>

 

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How can I access Encoding.com’s private cloud for processing?

Searching for another region for processing? This is especially awesome for clients local to San Francisco, CA. Specify our local processing center as follows:

<region>oak-private-clive</region>

Searching for another region for processing? This is especially awesome for clients local to San Francisco, CA. Specify our local processing center as follows:

<region>oak-private-clive</region>
<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 2 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Build a solid workflow with Encoding.com

Take control of your workflow with Encoding.com's powerful and flexible API . You can easily use your pre-existing CMS to assign tactics to resbubmit jobs, retry tasks and reformulate API requests that have less than expected results. Below you'll find a list of workflows that intelligently assign actions to correct solvable workflow issues.

While we strive for 100%

 More -->

Take control of your workflow with Encoding.com's powerful and flexible API. You can easily use your pre-existing CMS to assign tactics to resbubmit jobs, retry tasks and reformulate API requests that have less than expected results. Below you'll find a list of workflows that intelligently assign actions to correct solvable workflow issues.

While we strive for 100% uptime and have a 99.8% average uptime, the reality is there are a variety of situations where an individual or small group of encoding jobs could fail or take longer than expected to process.  If the video transcoding workflow is critical to your business,  there are a number of workflows we suggest to deploy within your API integration. These actions aim to virtually eliminate any downtime related to our availability or that of our dependent cloud providers. 

Specifically in the event  a predefined set of error messages are received from Encoding.com or an individual job takes longer than expected to process you can flag the job in your system as "pending" instead of failing the job or waiting indefinitely.  Automatic cron based resubmission of jobs that are in this pending status can be resubmitted to Encoding.com at a set time interval.  When this workflow is deployed the worst case scenario would result in negligibly longer than normal encoding times rather than the need for your team to manually intervene.

Examples of error messages you would receive from the Encoding.com API

1. Timeout Error

2. Encoding.com returns 500, 502, or 503 error


3. Encoding.com returns 421 "Request Rate over limit"
        + Ensure that you have not exceeded your request rate per limit. Upgrade now for a higher request rate limit via our API. 

If any of above happened we would recommend not considering that job as failed immediately and attempt a retry. To track status of the job, a local database or  should include the following fields from submitted jobs: 

1. Local ID
2. Source URI/URL
3. Encoding.com Media ID
4. Status (new, processing, success, error) 
5. Number of retries 
6. Last try date stamp of resubmittal of mediaID

Here is an example of a complete error mitigation workflow with Encoding.com to ensure a solid workflow 100% of the time:

1. Find a job with the status = new and earliest Last Try date
2. Generate and post XML including AddMedia or AddMediaBenchmark request
3. If you received response code 200 you can mark this job as “processing” in your local queue database or CMS.
4. If received response code 421 then your script should wait 1 second (or more, depending of your Plan's available requests per second) and retry post.
5. In case when you received 500, 502, 503 error or in case of connection timeout your script should increment the “retries” field (#5) and update “Last Try” (#6) to current time. We would suggest waiting some time before new attempt and increase that interval with each failed attempt. Also we would recommend limiting number of retries to a reasonable number (e.g. 3) and when a limit was reached, set the error status for the job. When the Encoding.com platform is available again or connectivity between your source media location and our platform was ressolved you will then be able to easily identify all jobs with error status and resend them.

We have worked with a number of our high volume customers to assist in this integration, and we are happy to set up a time to talk with your or your team  about getting this level of integrity live in your integration with Encoding.com.

 

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Deliver to multiple CDNs in one step with Encoding.com

With Encoding.com you can deliver to multiple CDNs and YouTube in one step. Simply specify multiple destination tags in your format requests and we will distribute your videos to the CDNs of your choice.

You can easily send your completed source videos to Amazon S3 , Rackspace , Edgecast, Highwinds, Akamai, CloudFront, Limelight, Level 3,

 More -->

With Encoding.com you can deliver to multiple CDNs and YouTube in one step. Simply specify multiple destination tags in your format requests and we will distribute your videos to the CDNs of your choice.

You can easily send your completed source videos to Amazon S3, Rackspace, Edgecast, Highwinds, Akamai, CloudFront, Limelight, Level 3, CDNetworks, & Brightcove. 

Along with mutliple delivery options, you can also inject varying metadata into each delivery location. 

Sample XML:

<?xml version="1.0"?>
<query>
<!-- Main fields -->
    <userid>[UserID]</userid>
    <userkey>[UserKey]</userkey>
<action>AddMedia</action>
<source>[SourceFile]</source>
<notify>[NotifyURL]</notify>
<format> <!-- YouTube delivery + Description-->
<destination>http://[YoutubeLogin]:[YoutubePassword]@youtube.com/?title=[VideoTitle]&category=[VideoCategory]&keywords=[VideoKeywords]&description=[VideoDescription]&acl=[ACL]</destination>
<output>mp4</output>
</format>
<format> <!-- Amazon S3 Delivery + Description + Metadata insertion-->
<destination>http://[bucket].s3.amazonaws.com/[filename]</destination>
<output>mp4</output>
     <metadata>  
            <title>[Title]</title> 
            <copyright>[Copyright]</copyright>  
            <author>[Author]</author>  
            <description>[Description]</description>  
            <album>[Album]</album>  
    </metadata>
</format>
<format> <!-- Rackspace delivery + Description + Metadata insertion-->
<destination>http://[RS_USER:RS_KEY@]storage.cloudfiles.com/[path]/[filename]</destination>
<output>mp4</output>
<metadata>  
            <title>[Title]</title> 
            <copyright>[Copyright]</copyright>  
            <author>[Author]</author>  
            <description>[Description]</description>  
            <album>[Album]</album>  
        </metadata>
</format>
</query>
<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 4 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Syndicate your videos directly to YouTube

It's easy to upload content directly to YouTube from Encoding.com. Follow the steps below to upload videos directly from your initial AddMedia request.

There are a few things to keep in mind with YouTube delivery:

+ Delivery to YouTube is not available for thumbnails or Image2Image conversions.
+ YouTube has a character limit to title, description and keywords.

 More -->

It's easy to upload content directly to YouTube from Encoding.com. Follow the steps below to upload videos directly from your initial AddMedia request.

There are a few things to keep in mind with YouTube delivery:

+ Delivery to YouTube is not available for thumbnails or Image2Image conversions.
+ YouTube has a character limit to title, description and keywords.
          - Title: Length cannot be longer then 100 characters.
          - Description: Length can not be longer then 5000 characters
          - Keywords: Each keyword must be 2 characters long and not longer then 30 characters. Total length of all keywords can not be longer then 500 characters total.
+ The first time that you use this feature, its advisable to sign into your YouTube account to verify Amazon as an authorized user. You can do this by clicking on the 'Unusual Sign In Location' reminder. Allow access from AWS to continue using this feature. Check your email shortly after you do this. You'll be asked to re-verify the new sign in location.

###

To deliver to YouTube, specify the following values in <destination> URL:

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

[YoutubeLogin] – Login on YouTube (mandatory)
[YoutubePassword] – Password on YouTube (mandatory)
[VideoTitle] – Video title on YouTube (optional, default: filename)
[VideoCategory] – Video category. Allowed values: Film, Autos, Music, Animals, Sports, Travel, Games, People, Comedy, Entertainment, News, Howto, Education, Tech, Nonprofit (optional, default: Film)
[VideoKeywords] – Video keywords on YouTube (optional, default: none)
[VideoDescription] – Video description on YouTube (optional, default: none)
[ACL] – Access Control List to video on YouTube (optional, default: private). Allowed values:
- private – only owner can get access to the video,
- public-read – everyone can get access to the video,
- unlisted - only users with direct link can get access to the video

<?xml version="1.0"?>
<query>
<!-- Main fields -->
    <userid>[UserID]</userid>
    <userkey>[UserKey]</userkey>
    <action>[Action]</action>
    <source>[SourceFile]</source>     <!-- if multiple SourceFile added, they will be concatenated or join to split screen-->
    <region>[us-east-1|us-west-1|us-west-2|eu-west-1|...etc</region>
    <notify>[NotifyURL]</notify>
    <notify_encoding_errors>[NotifyEncodingErrorURL]</notify_encoding_errors>
    <format>
….
    <destination>http://[YoutubeLogin]:[YoutubePassword]@youtube.com/?title=[VideoTitle]&category=[VideoCategory]&keywords=[VideoKeywords]&description=[VideoDescription]&acl=[ACL]</destination>
    </format>
</query>

 

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Can I encode a file directly from Dropbox?

Use Dropbox with Encoding.com or Vid.ly to pass source files with ease! Once you have your public URL for your file, you can easily use that as the source link to encode files with Encoding.com.  

Two easy steps to remember:

1. Make sure the file is in a shared location.

2. You must add ?dl=1 to

 More -->

Use Dropbox with Encoding.com or Vid.ly to pass source files with ease! Once you have your public URL for your file, you can easily use that as the source link to encode files with Encoding.com.  

Two easy steps to remember:

1. Make sure the file is in a shared location.

2. You must add ?dl=1 to the end of your source URL, this will force the download to begin. Otherwise, the job will fail.

Example: https://www.dropbox.com/[dropbox_URL]?dl=1

Now you can easily use this in your API integration with AddMedia and AddMediaBenchmark. Please note that Dropbox is not available for usage with the watch folder service at this time.

###

Here's how to locate the public URL for your Dropbox file:

- Right-clicking on the file.

- Select Dropbox under the menu choice.

- Select Get Link 

Encoding.com XML Example: http://www.encoding.com/api/category/category/complete_api_documentation#addmedia_action

<?xml version="1.0"?> 
<query> 
<!-- Main fields --> 
    <userid>[UserID]</userid> 
    <userkey>[UserKey]</userkey> 
    <action>[Action]</action> 
    <mediaid>[MediaID]</mediaid> 
    <source>https://www.dropbox.com/[dropbox_URL]?dl=1</source> 
    <source>[SourceFile1]</source> <!-- if multiple SourceFile added, they will be concatenated -->  
    ...  
    <source>[SourceFileN]</source> 
    <region>[us-east-1|us-west-1|us-west-2|eu-west-1|ap-southeast-1|ap-northeast-1|sa-east-1]</region>  
    <notify>[NotifyURL]</notify> 
    <notify_encoding_errors>[NotifyEncodingErrorURL]</notify_encoding_errors> 
    <format> 
        <!-- Format fields --> 
    </format>  
</query>

Vid.ly XML Example: http://api.vid.ly/#AddMedia

<?xml version="1.0"?>
<Query>
    <Action>AddMedia</Action>
    <UserID>[User ID]</UserID>
    <UserKey>[User key]</UserKey>
    <Notify>[Notify URL]</Notify>
    <Source>
        <SourceFile>https://www.dropbox.com/[dropbox_URL]?dl=1</SourceFile>
        <CDN>[CDNType]</CDN>
        <HD>[HD]</HD>
        <Protect>
            <StartDate>2012-04-01 00:00:00</StartDate>
            <ExpirationDate>2012-05-01 00:00:00</ExpirationDate>
            <IpAddress>89.100.11.*,89.100.12.1-20,89.100.13.50</IpAddress>
            <Token/>
        </Protect>
    </Source>
</Query>

 

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What response will concatenated videos return on GetMediaInfo?

Have you recently joined two videos together using our concatenation function? GetMediaInfo will return the details on each source, as below. Each format will be returned back to you in the order submitted.

Request:

<?xml version="1.0"?>
<query>
<userid>####</userid>
<userkey>####</userkey>
<mediaid>11084840</mediaid>
<action>GetMediaInfo</action>
</query>

Response:

<response>
<source>
<bitrate>2153k</bitrate>
<duration>23.82</duration>
<audio_duration>23.825</audio_duration>
<video_duration>23.825</video_duration>
<video_codec>h264 (High)</video_codec>
<size>1280x720</size>
<video_bitrate>2009k</video_bitrate>
<pixel_aspect_ratio>1:1</pixel_aspect_ratio>
<display_aspect_ratio>16:9</display_aspect_ratio>
<audio_codec>aac</audio_codec>
<audio_sample_rate>44100</audio_sample_rate>
<audio_channels>2</audio_channels>
<frame_rate>23.97</frame_rate>
</source>
<source>
<bitrate>1403k</bitrate>
<duration>98.32</duration>
<audio_duration>98</audio_duration>
<video_duration>98</video_duration>
<video_codec>msmpeg4 (DIV3 / 0x33564944)</video_codec>
<size>640x368</size>
<video_bitrate>1301k</video_bitrate>
<audio_codec>mp3</audio_codec>
<audio_sample_rate>44100</audio_sample_rate>
<audio_channels>2</audio_channels>
<frame_rate>25</frame_rate>
</source>
</response>

Have you recently joined two videos together using our concatenation function? GetMediaInfo will return the details on each source, as below. Each format will be returned back to you in the order submitted.

Request:

<?xml version="1.0"?>
<query>
<userid>####</userid>
<userkey>####</userkey>
<mediaid>11084840</mediaid>
<action>GetMediaInfo</action>
</query>

Response:

<response>
<source>
<bitrate>2153k</bitrate>
<duration>23.82</duration>
<audio_duration>23.825</audio_duration>
<video_duration>23.825</video_duration>
<video_codec>h264 (High)</video_codec>
<size>1280x720</size>
<video_bitrate>2009k</video_bitrate>
<pixel_aspect_ratio>1:1</pixel_aspect_ratio>
<display_aspect_ratio>16:9</display_aspect_ratio>
<audio_codec>aac</audio_codec>
<audio_sample_rate>44100</audio_sample_rate>
<audio_channels>2</audio_channels>
<frame_rate>23.97</frame_rate>
</source>
<source>
<bitrate>1403k</bitrate>
<duration>98.32</duration>
<audio_duration>98</audio_duration>
<video_duration>98</video_duration>
<video_codec>msmpeg4 (DIV3 / 0x33564944)</video_codec>
<size>640x368</size>
<video_bitrate>1301k</video_bitrate>
<audio_codec>mp3</audio_codec>
<audio_sample_rate>44100</audio_sample_rate>
<audio_channels>2</audio_channels>
<frame_rate>25</frame_rate>
</source>
</response>
<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What frame rate controls are available?

Looking to gain some control over your encodes, especially if your content varies in frame rates. Check out our threshold settings. If your source frame rate is lower then the framerate_upper_threshold, your source frame rate will be used. For example, if your source frame rate is 23.98 fps, and the threshold is set to 30, the resulting file will be

 More -->

Looking to gain some control over your encodes, especially if your content varies in frame rates. Check out our threshold settings. If your source frame rate is lower then the framerate_upper_threshold, your source frame rate will be used. For example, if your source frame rate is 23.98 fps, and the threshold is set to 30, the resulting file will be 23.98 fps. If your source frame rate is 30, and your threshold is 23.98, then the resulting file will be 23.98.

<format> 
<!-- Format fields --> 
   <framerate_upper_threshold>[Frame Rate Upper Threshold]</framerate_upper_threshold> 
    ... 
</format>

There is no default value for this tag. You can supply any non zero integer for the value.

 

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What are the possible statuses returned from GetStatus

The following is a list of statuses that will be returned from GetStatus:

New
Downloading
Downloaded
Ready to process
Waiting for encoder
Processing
Saving
Finished
Error
Stopped

The following is a list of statuses that will be returned from GetStatus:

New
Downloading
Downloaded
Ready to process
Waiting for encoder
Processing
Saving
Finished
Error
Stopped

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 2 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Can I receive a notify only on errors?

Designate a URL or email address for <notify_encoding_errors>, you will receive information when a job contains errors. This is in additon to the regular <notify> field for completion of all job processes. 

 <?xml version="1.0"?>
<query>
 <action>AddMedia</action>
 <userid>[]</userid>
 <userkey>[]</userkey> 
 <source>[]</source>
 <notify/>
 <notify_encoding_errors/>
 <format>
 <output>flv</output>
 <size>0x720</size>
 <bitrate>2000k</bitrate>
 <audio_bitrate>128k</audio_bitrate>
 <audio_sample_rate>44100</audio_sample_rate>
 <audio_channels_number>2</audio_channels_number>
 <framerate>300</framerate>
 <keep_aspect_ratio>yes</keep_aspect_ratio>
 <video_codec>libx264</video_codec>
 <profile>main</profile>
 <audio_codec>libfaac</audio_codec>
 <two_pass>no</two_pass>
 <turbo>no</turbo>
 <cbr>no</cbr>
 <deinterlacing>no</deinterlacing>
 <keyframe>300</keyframe>
 <audio_volume>100</audio_volume>
 
 More -->

Designate a URL or email address for <notify_encoding_errors>, you will receive information when a job contains errors. This is in additon to the regular <notify> field for completion of all job processes. 

<?xml version="1.0"?>
<query>
  <action>AddMedia</action>
  <userid>[]</userid>
  <userkey>[]</userkey> 
  <source>[]</source>
  <notify/>
  <notify_encoding_errors/>
  <format>
    <output>flv</output>
    <size>0x720</size>
    <bitrate>2000k</bitrate>
    <audio_bitrate>128k</audio_bitrate>
    <audio_sample_rate>44100</audio_sample_rate>
    <audio_channels_number>2</audio_channels_number>
    <framerate>300</framerate>
    <keep_aspect_ratio>yes</keep_aspect_ratio>
    <video_codec>libx264</video_codec>
    <profile>main</profile>
    <audio_codec>libfaac</audio_codec>
    <two_pass>no</two_pass>
    <turbo>no</turbo>
    <cbr>no</cbr>
    <deinterlacing>no</deinterlacing>
    <keyframe>300</keyframe>
    <audio_volume>100</audio_volume>
    <rotate>def</rotate>
    <file_extension>flv</file_extension>
    <add_meta>no</add_meta>
  </format>
</query>
<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How can I use GetStatus extended mode?

Reduce your request rates per second with this handy workflow. Need to find out the status of many mediaIDs at once? .. plus their task ID? ... plus their STATUS?

Request:

 <query> 
 <action>GetStatus</action> 
 <userid>[UserID]</userid> 
 <userkey>[UserKey]</userkey> 
 <extended>yes</extended> 
 <mediaid>[CommaSeparatedList]</mediaid> <- Add several mediaIDs to reduce POSTS
</query> 

Response:

 <response> 
<job> 
 <id>[MediaID]</id> 
 More -->

Reduce your request rates per second with this handy workflow. Need to find out the status of many mediaIDs at once? .. plus their task ID? ... plus their STATUS?

Request:

<query> 
        <action>GetStatus</action> 
        <userid>[UserID]</userid> 
        <userkey>[UserKey]</userkey> 
        <extended>yes</extended> 
        <mediaid>[CommaSeparatedList]</mediaid> <- Add several mediaIDs to reduce POSTS
</query>

Response:

<response> 
<job> 
    <id>[MediaID]</id> 
    <userid>[UserID]</userid> 
    <sourcefile>[SourceFile]</sourcefile> 
    <status>[MediaStatus]</status> 
    <notifyurl>[NotifyURL]</notifyurl> 
    <created>[Date]</created> 
    <started>[Date]</started> 
    <finished>[Date]</finished> 
    <prevstatus>[MediaStatus]</prevstatus> 
    <downloaded>[Date]</downloaded> 
    <filesize>[FileSize]</filesize> 
    <progress>[TotalProgress]</progress> 
    <time_left>[TotalTimeLeft]</time_left> 
   <format> 
        <id>[ID]</id> 
        <status>[Status]</status> 
        <created>[Date]</created> 
        <started>[Date]</started> 
        <finished>[Date]</finished> 
        <s3_destination>[TempS3Link]</s3_destination> <!-- optional --> 
        <cf_destination>[TempCFLink]</cf_destination> <!-- optional --> 
        <convertedsize>[FileSize]</convertedsize> 
        <time_left>[TotalTimeLeft]</time_left> 
        <progress>[TotalProgress]</progress> 
        <time_left_current>[StatusTimeLeft]</time_left_current> 
        <progress_current>[StatusPorgress]</progress_current> 
        <file_size>[FileSize]</file_size> 
        <destination>[URL]</destination> 
        <destination_status>[Saved|Error (ErrorDescription)]</destination_status> 
        <destination>[URL_2]</destination> 
        <destination_status>[Saved|Error (ErrorDescription)]</destination_status> 
        <destination>[URL_N]</destination> 
        <destination_status>[Saved|Error (ErrorDescription)]</destination_status> 
    </format> 
    <format> 
    </format> 
</job> 
<job> 
</job> 
</response>

 

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How can I use your .NET uploader tool?

Please note these instructions are for the Encoding.com uploader scripts, v. 1.1. The audience for this document is intended to be web script authors, software developers and system administrators.

You can download the .NET uploader tool here:  www.iloveencoding.com/Uploader.Net.zip

Introduction:

The Encoding.com User Uploader Script enables the direct upload of User Generated Video (UGV) content to Encoding.com

 More -->

Please note these instructions are for the Encoding.com uploader scripts, v. 1.1. The audience for this document is intended to be web script authors, software developers and system administrators.

You can download the .NET uploader tool here: www.iloveencoding.com/Uploader.Net.zip

Introduction:

The Encoding.com User Uploader Script enables the direct upload of User Generated Video (UGV) content to Encoding.com storage so you can avoid a workflow where users first upload to your storage location and then having Encoding.com "re-download" from your storage location to begin processing. This guide will help you to implement the User Uploader Script into your workflow.

To receive media files, Encoding.com uses a special uploading server - upload.encoding.com. Only Encoding.com users are able to access this service. Each upload request must contain an Encoding.com user ID and special signature (API key) to authorize the user.

Once the video file is received, we will extract the MediaInfo (technical parameters of the video) and move the file to S3 storage, and it's now ready to be processed.  The uploading service will return a new file destination URL, and the URL for the XML file that contains the MediaInfo.  During this process, users can get progress status and percentage completed.

How it works:

To better understand the uploading service, please see the example scripts. First, unpack the provided .zip file, and then set new Network application in IIS (set physical path to unpacked directory). The provided files also include a simple form for showing progress and upload status (Default.aspx and index.html).

First, please set up your authorization options. In Web.config you need to change values in the following two lines (YOUR_USER_ID and YOUR_USER_KEY):

<add key="UserID" value="YOUR_USER_ID"/>
<add key="UserKey" value="YOUR_USER_KEY"/>

This will allow you to start usage of the uploader tool.

To integrate the Uploader Script into one of your existing website pages, please add the following code to the head section:

<link href="encoding.com_uploader.css" media="all" rel="stylesheet" type="text/css" />
<script src="encoding.com_uploader.js" type="text/javascript"></script>

And, add the following form into the body section of your page:

<form id="upload" name="upload" enctype="multipart/form-data" action="https://upload.encoding.com/upload" target="uploadframe" method="post">

(on .aspx pages you can use following: <form id="upload" name="upload" enctype="multipart/form-data" action="<%= System.Configuration.ConfigurationManager.AppSettings["UploadServerURL"] %>/upload"
    target="uploadframe" method="post">)
                                              
<input type="hidden" id="uid" name="uid" value="0" />
<input type="hidden" id="sid" name="sid" value="0" />
<input type="hidden" id="timestamp" name="timestamp" value="0" />
<input type="hidden" id="signature" name="signature" value="0" />
<input name="userfile" id="userfile" type="file" label="fileupload" />
<input type="button" id="submit-form" value="Send File" disabled />
</form>
<div id="progress"></div>
<iframe id="uploadframe" name="uploadframe" width="0" height="0" frameborder="0" border="0" ></iframe>

When a user uploads a video using this form, the script will call Signer HTTP handler which will return values for uid, sid, timestamp and signature fields. Each source video should have a unique sid.  See Signer.cs to understand how it works.


Setting up a different path for php scripts:

By default, the PHP scripts included in this package must be stored in the same directory as the page with the Uploader form.  You may customize different paths by opening the following file: encoding.com_uploader.js

Change line:

var script_path = '';

to something like this:

var script_path = '/YOUR/PATH/';

Uploading Status and Progress:

While a file is uploading to the server, the script periodically requests progress information from the server. Uploading process consists of two parts:

1. uploading file from client PC to server
2. uploading file from server to s3 bucket

Each step should return its own progress information. That information could be requested by calls:

https://upload.encoding.com/progress?X-Progress-ID={SID} - returns percentage of 1st step progress
https://upload.encoding.com/s3info.php?sid={SID} - returns percentage of 2nd step progress
https://upload.encoding.com/fileinfo.php?sid={SID} - returns result URL

First call returns JSON object like this:

new Object({ 'state' : 'uploading', 'received' : 5340229, 'size' : 21269377 })

When state value become 'done', it means step 1 is done and we should call the 2nd step.

Second call returns JSON object like this:

new Object({"progress":"81","state":"done"})

When progress value reaches 101, it means step 2 is done and the final URLs are ready to be retrieved via the 3rd step.

Fileinfo.php returns JSON object with urls.

{"filename":"http:\/\/pc-upload.s3.amazonaws.com\/e716afec11b7865c5b2461242a5c891fc_111.mkv","mediainfo":"http:\/\/upload.encoding.com\/mediainfo\/e716afec11b7865c5b2461242a5c891fc.xml","error":""}


Those calls are implemented in Progress.cs file and can be changed by the "action" variable.

Stored files will be available on a server and s3 storage for 14 days.

To get the current uploading status in JS script, you could use the variable from FileUploader.callback function which is called periodically during the upload. The function contains variable [response] (JSON Object) with the current state: response.status (starting, uploading, processing, done, error), response.size (total size of the file in the bytes) and response.received (loaded bytes). Thus, it can be used to create your custom progress bar.

When upload is successfully completed (response.status is done), you can then retrieve a path to the file by using the filename variable.

Get Media Info
When upload is successfully completed, Encoding.com will analyze the file and generate an XML document with complete MediaInfo data which can be used when generating the AddMedia request. The link to the file will be in the MediaInfo variable.

To access those variables, see encoding.com_uploader.js FileUploader.callback function.

Response.state param describes eachstep of the uploading process.

starting - process is starting now.
uploading - file is being uploaded.
processing - File has been uploaded and now is being processed.
done - File has been finally uploaded and processed.
error - An error was occurred and file uploading had aborted.

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 2 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How can I remove chapter markers from my encodes?

Chapter markers got you down? Try this easy fix for removing chapter marker metadata from your source videos. This action, by default, is set to no; if you know your clip contains this metadata, switch </strip_chapters> to yes. 

Via API:

 <format>
 <!-- Format fields -->
 <strip_chapters>[yes|no]</strip_chapters>
 ...
 </format> 

Via UI:

You will find this

 More -->

Chapter markers got you down? Try this easy fix for removing chapter marker metadata from your source videos. This action, by default, is set to no; if you know your clip contains this metadata, switch </strip_chapters> to yes. 

Via API:

<format>
    <!-- Format fields -->
    <strip_chapters>[yes|no]</strip_chapters>
        ...
    </format>

Via UI:

You will find this feature at the bottom of the task list, underneath 'Denoiser'

 

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What global data centers does Encoding.com use for processing?

Take control of where your processing occurs!  By housing Encoding.com's platfrom on both Amazon's EC2 and the Encoding.com Private Cloud, we have access to data centers on around the globe. No matter where you decide to host your videos, there's a data center nearby to handle your encoding tasks and return your content back to you in the most efficient manner.

 More -->

Take control of where your processing occurs!  By housing Encoding.com's platfrom on both Amazon's EC2 and the Encoding.com Private Cloud, we have access to data centers on around the globe. No matter where you decide to host your videos, there's a data center nearby to handle your encoding tasks and return your content back to you in the most efficient manner. Check out the complete list of datacenters that we support here:

Encoding.com Private Cloud (Oakland, CA): 'oak-private-clive'

US (Nothern Virginia): 'us-east-1'
US (Nothern California): 'us-west-1'
US (Oregon): 'us-west-2'  
EU (Ireland): 'eu-west-1'
Asia Pacific (Singapore): 'ap-southeast-1'
Asia Pacific (Tokyo): 'ap-northeast-1'
Asia Pacific (Sydney): 'ap-southeast-2'
South America (Sao Paulo): 'sa-east-1'

Via API: 

    <format>
    <!-- Format fields -->
     <region>[us-east-1|us-west-1|us-west-2|eu-west-1|ap-southeast-1|ap-southeast-2|oak-private-clive|ap-northeast-1|sa-east-1]</region>
      ...</format>

 

 

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How can I use Encoding.com to create audio-only tracks from my video source?

Our audio only conversion service enables you to strip the audio out of a video file to create a standalone audio file. You can easily do this via our API or customer area: http://www.encoding.com/login

via API:
For this example, we will use the MP3 template. in your POST, call for the following task: http://www.encoding.com/help/article/aac_audio_template

 More -->
Our audio only conversion service enables you to strip the audio out of a video file to create a standalone audio file. You can easily do this via our API or customer area: http://www.encoding.com/login

via API:
For this example, we will use the MP3 template. in your POST, call for the following task: http://www.encoding.com/help/article/aac_audio_template

via web UI:
In the task viewer, please add the MP3, Windows Media Audio, or AAC audio template.

For more information:
http://www.encoding.com/features/audio_images

Interested in viewing the templates for API usage or web UI:
http://www.encoding.com/help/article/aac_audio_template
http://www.encoding.com/help/article/windows_media_audio_template
http://www.encoding.com/help/article/mp3_audio_template

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How can I use the Vid.ly preset in the Encoding.com API?

If you're a current Encoding.com customer, utilizing our API to create content, try adding this to the mix:

 

You're create a URL that can be accessed via any browser with the correct, optimized version served up whether its a mobile, ipad or browser. 

Have more questions about Vid.ly? Perhaps...what's it all mean? Look no further:  http://m.vid.ly/user/

 More -->

If you're a current Encoding.com customer, utilizing our API to create content, try adding this to the mix:

 

You're create a URL that can be accessed via any browser with the correct, optimized version served up whether its a mobile, ipad or browser. 

Have more questions about Vid.ly? Perhaps...what's it all mean? Look no further: http://m.vid.ly/user/

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 3 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Can I rotate videos without encoding the audio and video?

Have a ton of videos that just require lossless rotation? Did someone have too much fun with the iPhone and shoot everything portrait instead of landscape?

Try this on for size. Lossless rotation for use with .mov --> .mov files only.

<format>
  <output>mov</output>
  <destination>[Destination]</destination>
  <rotate>0</rotate>
  <set_rotate>90</set_rotate>
  <video_codec>copy</video_codec>
  <audio_codec>copy</audio_codec>
</format>

Have a ton of videos that just require lossless rotation? Did someone have too much fun with the iPhone and shoot everything portrait instead of landscape?

Try this on for size. Lossless rotation for use with .mov --> .mov files only.

<format>
  <output>mov</output>
  <destination>[Destination]</destination>
  <rotate>0</rotate>
  <set_rotate>90</set_rotate>
  <video_codec>copy</video_codec>
  <audio_codec>copy</audio_codec>
</format>
<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 3 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How can I copy metadata in my mp3 files?

Need to pass supported metadata information in your mp3 --> mp3 encodes. Use this addition to your XML.  Valuable information, such as title, artist and album will be passed through on your encodes. 

<metadata>
<copy>yes</copy>
</metadata>

Need to inject other metadata? Please check out our API documentation on metadata insertion:

http://www.encoding.com/api/category/category/complete_api_documentation#metadata_fields

Need to pass supported metadata information in your mp3 --> mp3 encodes. Use this addition to your XML.  Valuable information, such as title, artist and album will be passed through on your encodes. 

<metadata>
<copy>yes</copy>
</metadata>

Need to inject other metadata? Please check out our API documentation on metadata insertion:

http://www.encoding.com/api/category/category/complete_api_documentation#metadata_fields

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How do I stop an encode via API?

If you wish to stop the processing of any medaID via API, send the action 'StopMedia.' The action will stop media from downloading, processing or uploading. If at least one encode has completed and saved, this media will be marked as finished,. The rest of the jobs / tasks will be stop.

Example: 

<?xml version="1.0"?>
<query>
<action>StopMedia</action>
<userid>[UserID]</userid>

 More -->

If you wish to stop the processing of any medaID via API, send the action 'StopMedia.' The action will stop media from downloading, processing or uploading. If at least one encode has completed and saved, this media will be marked as finished,. The rest of the jobs / tasks will be stop.

Example: 

<?xml version="1.0"?>
<query>
<action>StopMedia</action>
<userid>[UserID]</userid>
<userkey>2a595f16aefdfbd1e3d7bf9952229bfa</userkey> 
<mediaid>[MediaID]</mediaid>
</query>

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How can I use your PHP uploader tool?

Please note these instructions are for the Encoding.com uploader scripts, v. 1.1. The audience for this document is intended to be web script authors, software developers and system administrators.

http://upload.encoding.com/client/pakages/encoding.com_uploader_client_v1.1.zip

Introduction:

The Encoding.com User Uploader Script enables the direct upload of User Generated Video (UGV) content to Encoding.com storage so you can avoid a workflow where

 More -->

Please note these instructions are for the Encoding.com uploader scripts, v. 1.1. The audience for this document is intended to be web script authors, software developers and system administrators.

http://upload.encoding.com/client/pakages/encoding.com_uploader_client_v1.1.zip

Introduction:

The Encoding.com User Uploader Script enables the direct upload of User Generated Video (UGV) content to Encoding.com storage so you can avoid a workflow where users first upload to your storage location and then having Encoding.com "re-download" from your storage location to begin processing. This guide will help you to implement the User Uploader Script into your workflow.

To receive media files, Encoding.com uses a special uploading server - upload.encoding.com. Only Encoding.com users are able to access this service. Each upload request must contain an Encoding.com user ID and special signature (API key) to authorize the user.

Once the video file is received, we will extract the MediaInfo (technical parameters of the video) and move the file to S3 storage, and it's now ready to be processed.  The uploading service will return a new file destination URL, and the URL for the XML file that contains the MediaInfo.  During this process, users can get progress status and percentage completed.

How it works:

To better understand the uploading service, please see the example scripts. First, unpack the provided .zip file, and then copy these files to your web server into the website's public path in a root directory or any other subfolder. The provided files also include a simple form for showing progress and upload status (Progress.php).

First, please set up your authorization options. In config.php you need to change values in the following two lines (YOUR_USER_ID and YOUR_USER_KEY):

define("USER_ID", "YOUR_USER_ID");
define("USER_KEY", "YOUR_USER_KEY");

This will allow you to start usage of the uploader tool.

To integrate the Uploader Script into one of your existing website pages, please add the following code to the head section:

<link href="encoding.com_uploader.css" media="all" rel="stylesheet" type="text/css" />
<script src="encoding.com_uploader.js" type="text/javascript"></script>

And, add the following form into the body section of your page:

<form id="upload" name="upload" enctype="multipart/form-data" action="https://upload.encoding.com/upload" target="uploadframe" method="post">
                                               
<input type="hidden" id="uid" name="uid" value="0" />
<input type="hidden" id="sid" name="sid" value="0" />
<input type="hidden" id="timestamp" name="timestamp" value="0" />
<input type="hidden" id="signature" name="signature" value="0" />
<input name="userfile" id="userfile" type="file" label="fileupload" />
<input type="button" id="submit-form" value="Send File" disabled />
</form>
<div id="progress"></div>
<iframe id="uploadframe" name="uploadframe" width="0" height="0" frameborder="0" border="0" ></iframe>

When a user uploads a video using this form, the script will call Signer.php which will return values for uid, sid, timestamp and signature fields. Each source video should have a unique sid.  See Signer.php to understand how it works.

<?
...

date_default_timezone_set('Europe/London');

$retval = array();

$retval['timestamp'] = date("Y-m-d H:i:s O");
$retval['sid'] = md5(uniqid($_SERVER['HTTP_HOST'] . USER_KEY,true));
$retval['signature'] = hash("sha256", $retval['timestamp'] . $retval['sid'] . USER_KEY);
$retval['uid'] = USER_ID;
?>


Setting up a different path for php scripts:

By default, the PHP scripts included in this package must be stored in the same directory as the page with the Uploader form.  You may customize different paths by opening the following file: encoding.com_uploader.js

Change line:

var script_path = '';

to something like this:

var script_path = '/YOUR/PATH/';

Uploading Status and Progress:

While a file is uploading to the server, the script periodically requests progress information from the server. Uploading process consists of two parts:

1. uploading file from client PC to server
2. uploading file from server to s3 bucket

Each step should return its own progress information. That information could be requested by calls:

https://upload.encoding.com/progress?X-Progress-ID={SID} - returns percentage of 1st step progress
https://upload.encoding.com/s3info.php?sid={SID} - returns percentage of 2nd step progress
https://upload.encoding.com/fileinfo.php?sid={SID} - returns result URL

First call returns JSON object like this:

new Object({ 'state' : 'uploading', 'received' : 5340229, 'size' : 21269377 })

When state value become 'done', it means step 1 is done and we should call the 2nd step.

Second call returns JSON object like this:

new Object({"progress":"81","state":"done"})

When progress value reaches 101, it means step 2 is done and the final URLs are ready to be retrieved via the 3rd step.

Fileinfo.php returns JSON object with urls.

{"filename":"http:\/\/pc-upload.s3.amazonaws.com\/e716afec11b7865c5b2461242a5c891fc_111.mkv","mediainfo":"http:\/\/upload.encoding.com\/mediainfo\/e716afec11b7865c5b2461242a5c891fc.xml","error":""}


Those calls are implemented in Progress.php file and can be changed by the "action" variable.

Stored files will be available on a server and s3 storage for 14 days.

To get the current uploading status in JS script, you could use the variable from FileUploader.callback function which is called periodically during the upload. The function contains variable [response] (JSON Object) with the current state: response.status (starting, uploading, processing, done, error), response.size (total size of the file in the bytes) and response.received (loaded bytes). Thus, it can be used to create your custom progress bar.

When upload is successfully completed (response.status is done), you can then retrieve a path to the file by using the filename variable.

Get Media Info
When upload is successfully completed, Encoding.com will analyze the file and generate an XML document with complete MediaInfo data which can be used when generating the AddMedia request. The link to the file will be in the MediaInfo variable.

To access those variables, see encoding.com_uploader.js FileUploader.callback function.

Response.state param describes eachstep of the uploading process.

starting - process is starting now.
uploading - file is being uploaded.
processing - File has been uploaded and now is being processed.
done - File has been finally uploaded and processed.
error - An error was occurred and file uploading had aborted.

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Why are my Vp6 Flix Engine dimensions off from what I requested?

The encoder that we choose for this particular encode will automagically change the dimension on your requested encode to the nearest multiple of 16 for both width and height. This is to give you the best possible results for viewing these particular flash files. 

The encoder that we choose for this particular encode will automagically change the dimension on your requested encode to the nearest multiple of 16 for both width and height. This is to give you the best possible results for viewing these particular flash files. 

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What is the maximum number of of tasks I can request?

Sounds like you have lots of encoding to do there!

With Encoding.com's powerful API or snappy watch folders, you can request a maximum of 100 tasks per encode, or folder respectively. 

Sounds like you have lots of encoding to do there!

With Encoding.com's powerful API or snappy watch folders, you can request a maximum of 100 tasks per encode, or folder respectively. 

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 2 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How can I use your API to determine how I should encode my files?

Do you have a bunch of files that require encoding, but want to know more about the source media properties?

Use this workflow to achieve this:

Step 1: Send source media to the API via the AddMediaBenchmark action. Manage.encoding.com will accept this request and assign a Media ID for the video.

http://www.encoding.com/api/category/category/complete_api_documentation#addmedia_action

 More -->

Do you have a bunch of files that require encoding, but want to know more about the source media properties?

Use this workflow to achieve this:

Step 1: Send source media to the API via the AddMediaBenchmark action. Manage.encoding.com will accept this request and assign a Media ID for the video.

http://www.encoding.com/api/category/category/complete_api_documentation#addmedia_action

Step 2: Send a GetMediaInfo call to the API, with assigned MediaID, so source video characteristics will be shown, such as framesize, duration, and bitrate.

http://www.encoding.com/api/category/category/complete_api_documentation#getmediainfo_action

Step 3: Configure your CMS to select a setting based on returned media properites.

Step 4: Send  back a ProcessMedia call, and use GetStatus to monitor progress.

http://www.encoding.com/api/category/category/complete_api_documentation#getstatus_action

NOTE: If you need separate progress reports for each task, add <extended>yes</extended> to GetStatus

Step 5: When job completes, have your CMS parse the result notification.

http://www.encoding.com/api/category/category/complete_api_documentation#encoding_result_xml_forma

 

- - - 

To reuse source files, which expire after 15 days, use <action>UpdateMedia</action> with an existing Media ID to replace all of the existing format fields. 

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 2 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How do I use the fade in, fade out commands?

Within the format tag, you can now specify the duration and length of the fade that you would like to apply to your encodes. 

via XML:

 <format>
 <fade_in>[FadeInStart]:[FadeInDuration]</fade_in>
 <fade_out>[FadeOutStart]:[FadeOutDuration]</fade_out>
</format> 

Definitions:

FadeInStart : Start of fade_in effect in seconds

FadeInDuration: Duration of fade_in effect in seconds

FadeOutStart: Start of fade_out effect in

 More -->

Within the format tag, you can now specify the duration and length of the fade that you would like to apply to your encodes. 

via XML:

<format>
   <fade_in>[FadeInStart]:[FadeInDuration]</fade_in>
   <fade_out>[FadeOutStart]:[FadeOutDuration]</fade_out>
</format>

Definitions:

FadeInStart: Start of fade_in effect in seconds

FadeInDuration: Duration of fade_in effect in seconds

FadeOutStart: Start of fade_out effect in seconds. If you specify this parameter equal to 0, fade out effect will be applied to the end of video/audio.

FadeOutDuration: Duration of fade_out effect in seconds.

Note: FadeIn/FadeOut effect applies both for audio and video streams.

 

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Can I add a dissolve to my encodes?

With Encoding.com, you can easily add a dissovle at the start and end of your encodes via our fade commands.

Click on this link for more information.

With Encoding.com, you can easily add a dissovle at the start and end of your encodes via our fade commands.

Click on this link for more information.

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How can I correct audio sync issues?

You can easily correct audio sync issues by setting the audio_sync tag in your XML, as follows: 

 <audio_sync>1</audio_sync> 

This works by adjusting the output audio stream to match the source timestamps, in # of samples per second. Consider this a great for fixing sync when source is variable framerate, or has timescale problems.

The most common instance

 More -->

You can easily correct audio sync issues by setting the audio_sync tag in your XML, as follows: 

<audio_sync>1</audio_sync>

This works by adjusting the output audio stream to match the source timestamps, in # of samples per second. Consider this a great for fixing sync when source is variable framerate, or has timescale problems.

The most common instance of this is webcam video recorded with Nellymoser audio codec from the free flash plugin.

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 2 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How can I add a watermark with an alpha channel?

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

Note: the logo_transparent tag is only for usage with the vp6_flix output via XML.

Example XML:

<logo>
  <logo_source>[LogoURL]</logo_source>
  <logo_x>[LogoLeft]</logo_x>
  <logo_y>[LogoTop]</logo_y>
  <logo_mode>1</logo_mode>
  <logo_threshold>[LogoTreshold]</logo_threshold>
  <logo_transparent>[LogoTransparent]</logo_transparent>
</logo>

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

Note: the logo_transparent tag is only for usage with the vp6_flix output via XML.

Example XML:

<logo>
  <logo_source>[LogoURL]</logo_source>
  <logo_x>[LogoLeft]</logo_x>
  <logo_y>[LogoTop]</logo_y>
  <logo_mode>1</logo_mode>
  <logo_threshold>[LogoTreshold]</logo_threshold>
  <logo_transparent>[LogoTransparent]</logo_transparent>
</logo>
<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 6 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How do I format my source URL for a FTPS source?

Thinking of using FTPS as your source locations? No problemo.

All you need to do is specify the port in which we access your file at. Connections via FTPS will use port 22 by default. If you'd like to specify a different port, add it to then end of your URL.

Example:

FTPS://www.xyz.com:[port]/files/input.mov

 More -->

Thinking of using FTPS as your source locations? No problemo.

All you need to do is specify the port in which we access your file at. Connections via FTPS will use port 22 by default. If you'd like to specify a different port, add it to then end of your URL.

Example:

FTPS://www.xyz.com:[port]/files/input.mov

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 9 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How do I format my source URL for a HTTPS source?

Thinking of using HTTPS as your source locations? No problemo.

All you need to do is specify the port in which we access your file at. Connections via HTTPS will use port 443 by default. If you'd like to specify a different port, add it to then end of your URL.

Example:

HTTPS://www.xyz.com:[port]/files/input.mov

 More -->

Thinking of using HTTPS as your source locations? No problemo.

All you need to do is specify the port in which we access your file at. Connections via HTTPS will use port 443 by default. If you'd like to specify a different port, add it to then end of your URL.

Example:

HTTPS://www.xyz.com:[port]/files/input.mov

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 2 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Save some time on your encodes!

Save some time with your encodes with this simple step, if you are sourcing from S3, try this URL formatting:

http://[AWS_KEY:AWS_SECRET@][bucket].s3.amazonaws.com/[filename]?nocopy

if 'nocopy' is specified at the end of your URL, the source file will be downloaded directly from your bucket, thus saving time. Please use this only if your buckets are located in the US. If ?nocopy

 More -->

Save some time with your encodes with this simple step, if you are sourcing from S3, try this URL formatting:

http://[AWS_KEY:AWS_SECRET@][bucket].s3.amazonaws.com/[filename]?nocopy

if 'nocopy' is specified at the end of your URL, the source file will be downloaded directly from your bucket, thus saving time. Please use this only if your buckets are located in the US. If ?nocopy is not specified at the end of your URL, the source will be copied to Encoding.com bucket first. This workflow saves you traffic in the case of non-US buckets and more than one encoding task per source.

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 11 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How can I copy audio in my encodes?

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

Example:

<audio_codec>copy</audio_codec>

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

Example:

<audio_codec>copy</audio_codec>
<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How do I know what it is that I’m doing?

Well, sounds like you're new to the platform, right?

Your objectives are to encode a video and deliver it someplace. smile

Here's where to start:

Beginner:

Most folks log into the UI @ http://www.encoding.com and select 'Start a new job' from the list of choices on the left in order to test drive the system. Run

 More -->

Well, sounds like you're new to the platform, right?

Your objectives are to encode a video and deliver it someplace. smile

Here's where to start:

Beginner:

Most folks log into the UI @ http://www.encoding.com and select 'Start a new job' from the list of choices on the left in order to test drive the system. Run through this a couple times, as adding media one a time is a great way to get started with the platform. Try adding a few tasks to your source media for multiple outputs.  Make sure to take a peek at the Encoding Queue, as you'll have to manually select files you add via 'Start a new job' to process manually. Want to skip this step? Set up a watch folder and automagically content will be pulled from your source location and processed. 

Intermediate:

Setting up a watch folder on Amazon S3, Rackspace or your local FTP site is easy. Log into the UI, select 'Watch Folder' from the list on the left and select 'Add New.' Configure the URLs to hit your source location, deliver to your preferred destination, add a notify, then add a few tasks to the folder. If you have any questions on configuring FTP, S3 or Rackspace URLs, then make sure to check out the following article: http://www.encoding.com/how_can_i_specify_where_my_source_media_is_located

Advanced:

Wanna jump in with both feet and utilize Encoding.com's powerful API to submit your content to our platform?

Find all the resources you need here:

http://www.encoding.com/api/

http://www.encoding.com/api/category/category/complete_api_documentation

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 4 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Where should I post my XML to?

To send API requests to Encoding.com, please send HTTP(S) post requests to manage.encoding.com. All client requests and server responses use the XML format.  Clients must send the HTTP(S) POST request with a single parameter named xml. The server response will be a normal XML document.

To send API requests to Encoding.com, please send HTTP(S) post requests to manage.encoding.com. All client requests and server responses use the XML format.  Clients must send the HTTP(S) POST request with a single parameter named xml. The server response will be a normal XML document.

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What information does GetStatus Extended Mode return?

Need more info then what GetStatus returns? Use GetStatus Extended Mode to return heaploads of information on a particular MediaID. Indicate one or many (separated by commas of course); the MediaID must be included. Need a quick guide as to what all the tags refer to, go here:

http://www.encoding.com/api/category/category/complete_api_documentation#extended_batch_mode

Request:

 <query>
 <action>GetStatus</action>
 <userid>[UserID]</userid>
 <userkey>[UserKey]</userkey>
 <extended>yes</extended>
 <mediaid>[CommaSeparatedList]</mediaid>
</query> 
 More -->

Need more info then what GetStatus returns? Use GetStatus Extended Mode to return heaploads of information on a particular MediaID. Indicate one or many (separated by commas of course); the MediaID must be included. Need a quick guide as to what all the tags refer to, go here:

http://www.encoding.com/api/category/category/complete_api_documentation#extended_batch_mode

Request:

<query>
        <action>GetStatus</action>
        <userid>[UserID]</userid>
        <userkey>[UserKey]</userkey>
        <extended>yes</extended>
        <mediaid>[CommaSeparatedList]</mediaid>
</query>

Response:

<response>
<job>
    <id>[MediaID]</id>
    <userid>[UserID]</userid>
    <sourcefile>[SourceFile]</sourcefile>
    <status>[MediaStatus]</status>
    <notifyurl>[NotifyURL]</notifyurl>
    <created>[Date]</created>
    <started>[Date]</started>
    <finished>[Date]</finished>
    <prevstatus>[MediaStatus]</prevstatus>
    <downloaded>[Date]</downloaded>
    <filesize>[FileSize]</filesize>
    <processor>[AMAZON | RACKSPACE]</processor>
    <progress>[TotalProgress]</progress>
    <time_left>[TotalTimeLeft]</time_left>
   <format>
        <id>[ID]</id>
        <status>[Status]</status>
        <created>[Date]</created>
        <started>[Date]</started>
        <finished>[Date]</finished>
        <s3_destination>[TempS3Link]</s3_destination> <!-- optional -->
        <cf_destination>[TempCFLink]</cf_destination> <!-- optional -->
        <convertedsize>[FileSize]</convertedsize>
        <time_left>[TotalTimeLeft]</time_left>
        <progress>[TotalProgress]</progress>
        <time_left_current>[StatusTimeLeft]</time_left_current>
        <progress_current>[StatusPorgress]</progress_current>
        <file_size>[FileSize]</file_size>
        <destination>[URL]</destination>
        <destination_status>[Saved|Error (ErrorDescription)]</destination_status>
        <destination>[URL_2]</destination>
        <destination_status>[Saved|Error (ErrorDescription)]</destination_status>
        <destination>[URL_N]</destination>
        <destination_status>[Saved|Error (ErrorDescription)]</destination_status>
    </format>
    <format>
    </format>
</job>
<job>
</job>
</response>
<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How do I use GetStatus and what information does it return?

Want to know what the status is of one or many jobs? Use GetStatus to return information on a particular MediaID. Indicate one or many (separated by commas of course); the MediaID must be included. Want even more info? See the article on GetStatus Extended for details on what that returns. Need a quick guide as to what all the

 More -->

Want to know what the status is of one or many jobs? Use GetStatus to return information on a particular MediaID. Indicate one or many (separated by commas of course); the MediaID must be included. Want even more info? See the article on GetStatus Extended for details on what that returns. Need a quick guide as to what all the tags refer to, go here: 

http://www.encoding.com/api/category/category/complete_api_documentation#getstatus_action

<?xml version="1.0"?>
<query>
<action>GetStatus</action>
<userid>[UserID]</userid>
<userkey>[UserKey]</userkey>
<mediaid>[MediaID]</mediaid>
</query>

Here's what you'll receive back:

<?xml version="1.0"?>
<response>
    <id>[MediaID]</id>
    <userid>[UserID]</userid>
    <sourcefile>[SourceFile]</sourcefile>
    <status>[MediaStatus]</status>
    <notifyurl>[NotifyURL]</notifyurl>
    <created>[Date]</created>
    <started>[Date]</started>
    <finished>[Date]</finished>
    <prevstatus>[MediaStatus]</prevstatus>
    <downloaded>[Date]</downloaded>
    <uploaded>[Date]</uploaded>
    <time_left>[TotalTimeLeft]</time_left>
    <progress>[TotalProgress]</progress>
    <time_left_current>[StatusTimeLeft]</time_left_current>
    <progress_current>[StatusProgress]</progress_current>  
    <format>
        <id>[ID]</id>
        <status>[Status]</status>
        <created>[Date]</created>
        <started>[Date]</started>
        <finished>[Date]</finished>
<!----Format_Fields----->
        <s3_destination>[TempS3Link]</s3_destination> <!-- optional -->
        <cf_destination>[TempCFLink]</cf_destination> <!-- optional -->
        <destination>[URL]</destination>
        <destination_status>[Saved|Error (ErrorDescription)]</destination_status>
        <destination>[URL_2]</destination>
        <destination_status>[Saved|Error (ErrorDescription)]</destination_status>
        <destination>[URL_N]</destination>
        <destination_status>[Saved|Error (ErrorDescription)]</destination_status>
    </format>
    <format>
    </format>
</response>
<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How do I use GetBandwidthStatGroupDate for sub accounts?

Use GetBandwidthStatGroupDate to return encoding traffic of selected user. You can specify a certain date to return information on a particular user. The traffic will be grouped by existing's dates. Please note "date_to" and "date_from" the optional fields. You should use it if you intend to recieve bandwidth statistic into specified date interval. Post the following XML to the API

 More -->

Use GetBandwidthStatGroupDate to return encoding traffic of selected user. You can specify a certain date to return information on a particular user. The traffic will be grouped by existing's dates. Please note "date_to" and "date_from" the optional fields. You should use it if you intend to recieve bandwidth statistic into specified date interval. Post the following XML to the API

<?xml version="1.0"?>
<query>
<userid>[UserID]</userid>
<userkey>[UserKey]</userkey>
<action>GetBandwidthStatGroupDate</action>
<action_user_id>[ActionUserID]</action_user_id>
<date_from>[YYYY-MM-DD]</date_from>
</date_to>[YYYY-MM-DD]</date_to>
</query>

Response:

<?xml version="1.0"?>
<response>
  <action>getbandwidthstatgroupdate</action>
  <status>Success</status>
  <result>
     <user_id>[userID]</user_id>
     <date_[date1]>
       <in>
         <bytes>[amount in bytes]</bytes>
         <gb>[amount in gigabytes]</gb>
      </in>
       <out>
         <bytes>[amount in bytes]</bytes>
         <gb>[amount in gigabytes]</gb>
      </out>
     </date_[date1]>
     <date_[date2]>
        <in>
          <bytes>[amount in bytes]</bytes>
          <gb>[amount in gigabytes]</gb>
       </in>
       <out>
         <bytes>[amount in bytes]</bytes>
         <gb>[amount in gigabytes]</gb>
      </out>
    </date_[date2]>
...
  </result>
</response>

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How do I use GetBandwidthStat for Sub Accounts?

Use GetBandwidthStat to return encoding traffic of selected user. You can specify a certain date to return information on a particular user. Please note "date_to" and "date_from" the optional fields. You should use it if you intend to recieve bandwidth statistic into specified date interval. Post the following XML to the API:

 <?xml version="1.0"?>
<query>
<userid>[UserID]</userid>
<userkey>[UserKey]</userkey>
<action>GetBandwidthStat</action>
<action_user_id>[ActionUserID]</action_user_id>
<date_from>[YYYY-MM-DD]</date_from>
</date_to>[YYYY-MM-DD]</date_to>
</query> 

and your return will be:

 More -->

Use GetBandwidthStat to return encoding traffic of selected user. You can specify a certain date to return information on a particular user. Please note "date_to" and "date_from" the optional fields. You should use it if you intend to recieve bandwidth statistic into specified date interval. Post the following XML to the API:

<?xml version="1.0"?>
<query>
<userid>[UserID]</userid>
<userkey>[UserKey]</userkey>
<action>GetBandwidthStat</action>
<action_user_id>[ActionUserID]</action_user_id>
<date_from>[YYYY-MM-DD]</date_from>
</date_to>[YYYY-MM-DD]</date_to>
</query>

and your return will be:

<?xml version="1.0"?>
<response>
   <action>getbandwidthstat</action>
   <status>Success</status>
   <result>
    <user_id>[UserID]</user_id>
    <date_from>[Date from]</date_from>
    <date_to>[Date to]</date_to>
    <in>
       <bytes>[amount in bytes]</bytes>
       <gb>[amount in gigabytes]</gb>
   </in>
   <out>
       <bytes>[amount in bytes]</bytes>
       <gb>[amount in gigabytes]</gb>
   </out>
   <turbo>
       <bytes>[amount in bytes]</bytes>
       <gb>[amount in gigabytes]</gb>
   </turbo>
  </result>
</response>
<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What information can I expect to be returned in GetStorageSpace?

Interested in a particular user's storage space. Send this XML to our API:

<?xml version="1.0"?>
<query>
<userid>[UserID]</userid>
<userkey>[UserKey]</userkey>
<action>GetStorageSpace</action>
<action_user_id>[ActionUserID]</action_user_id>
</query>

The response that you'll receive in is GB as follows:

<?xml version="1.0"?>
<response>
   <action>getstoragespace</action>
   <status>Success</status>
   <result>
     <user_id>[UserID]</user_id>
     <gb>[Storage Space]</gb>
   </result>
</response>

Interested in a particular user's storage space. Send this XML to our API:

<?xml version="1.0"?>
<query>
<userid>[UserID]</userid>
<userkey>[UserKey]</userkey>
<action>GetStorageSpace</action>
<action_user_id>[ActionUserID]</action_user_id>
</query>

The response that you'll receive in is GB as follows:

<?xml version="1.0"?>
<response>
   <action>getstoragespace</action>
   <status>Success</status>
   <result>
     <user_id>[UserID]</user_id>
     <gb>[Storage Space]</gb>
   </result>
</response>
<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What information does GetASM return?

Say you're interested in how a user's been using the platform. In particular, their success rate, queue times, bandwidth specs, etc. Use GetASM to return this info. Here's an example of the XML to send to the API

 <?xml version="1.0"?>
<query>
<userid>[UserID]</userid>
<userkey>[UserKey]</userkey>
<action>GetASM</action>
<action_user_id>[ActionUserID]</action_user_id>
</query> 

and the response:

 <?xml version="1.0"?>
<response>
 <action>getasm</action>
 <status>Success</status>
 <result>
 <user_id>[UserID]</user_id>
 <encoding_success_rate>
 <percentage>100</percentage>
 </encoding_success_rate>
 <queue_time>
 <second>[average queue time in 
 More -->

Say you're interested in how a user's been using the platform. In particular, their success rate, queue times, bandwidth specs, etc. Use GetASM to return this info. Here's an example of the XML to send to the API

<?xml version="1.0"?>
<query>
<userid>[UserID]</userid>
<userkey>[UserKey]</userkey>
<action>GetASM</action>
<action_user_id>[ActionUserID]</action_user_id>
</query>

and the response:

<?xml version="1.0"?>
<response>
  <action>getasm</action>
  <status>Success</status>
  <result>
    <user_id>[UserID]</user_id>
    <encoding_success_rate>
        <percentage>100</percentage>
    </encoding_success_rate>
    <queue_time>
        <second>[average queue time in this month]</second>
    </queue_time>
    <processing_time>
        <second>[average processing time in this month]</second>
    </processing_time>
    <connection_speed>
        <kbs>[average connection speed]</kbs>
    </connection_speed>
    <encoding_bandwidth>
         <gb>[average amount of encoding bandwidth]</gb>
    </encoding_bandwidth>
  </result>
</response>
<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What information does GetSubUsers return?

Let's say you've made a ton of subusers, but want information back as a whole on all the users you've created. Send the following to the API...

 <?xml version="1.0"?>
<query>
<!-- Main fields -->
 <userid>[UserID]</userid>
 <userkey>[UserKey]</userkey>
 <action>getsubusers</action>
</query> 

and you'll get in return a complete list of who's who for sub users:

 <?xml version="1.0"?>
<response>
 <action>getsubusers</action>
 <status>Success</status>
 <result>
 <user_id></user_id>
 <user_0>
 <ID>[UserID]</ID>
 
 More -->

Let's say you've made a ton of subusers, but want information back as a whole on all the users you've created. Send the following to the API...

<?xml version="1.0"?>
<query>
<!-- Main fields -->
    <userid>[UserID]</userid>
    <userkey>[UserKey]</userkey>
    <action>getsubusers</action>
</query>

and you'll get in return a complete list of who's who for sub users:

<?xml version="1.0"?>
<response>
  <action>getsubusers</action>
  <status>Success</status>
  <result>
    <user_id></user_id>
    <user_0>
      <ID>[UserID]</ID>
      <Login>[Login]</Login>
      <FirstName>[FirstName]</FirstName>
      <LastName>[LastName]</LastName>
      <Email>[Email]</Email>
      <UserKey>[UserKey]</UserKey>
      <Country>[Country]</Country>
      <Phone>[Phone]</Phone>
      <Status>[Status]</Status>
    </user_0>
    <user_1>
      <ID>[UserID]</ID>
      <Login>[Login]</Login>
      <FirstName>[FirstName]</FirstName>
      <LastName>[LastName]</LastName>
      <Email>[Email]</Email>
      <UserKey>[UserKey]</UserKey>
      <Country>[Country]</Country>
      <Phone>[Phone]</Phone>
      <Status>[Status]</Status>
   </user_1>
  </result>
</response>
<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What information does GetUserInfo return?

For sub accounts, the whole point of creating them is to track usage, right? Well, since we have no UI, you'll want a way to see the information we have stored on a particular user under your main account. Use GetUserInfo to return information on a particular user:

 <?xml version="1.0"?>
<query>
<userid>[UserID]</userid>
<userkey>[UserKey]</userkey>
<action>GetUserInfo</action>
<action_user_id>[ActionUserID]</action_user_id>
</query> 

We'll return back this handy information:

 <?xml 
 More -->

For sub accounts, the whole point of creating them is to track usage, right? Well, since we have no UI, you'll want a way to see the information we have stored on a particular user under your main account. Use GetUserInfo to return information on a particular user:

<?xml version="1.0"?>
<query>
<userid>[UserID]</userid>
<userkey>[UserKey]</userkey>
<action>GetUserInfo</action>
<action_user_id>[ActionUserID]</action_user_id>
</query>

We'll return back this handy information:

<?xml version="1.0"?>
<response>
  <action>getuserinfo</action>
  <status>Success</status>
  <result>
    <user_id>[ActionUserID]</user_id>
    <ID>[ActionUserID]</ID>
    <Login>[Login]</Login>
    <FirstName>[FirstName]</FirstName>
    <LastName>[LastName]</LastName>
    <Email>[Email]</Email>
    <UserKey>[UserKey]</UserKey>
    <Country>[Country]</Country>
    <Phone>[Phone]</Phone>
    <Status>[Status]</Status>
  </result>
</response>
<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How can I update a sub user’s account information?

If you wish to update the email address and phone number of a sub user, send the following format of XML to our API.

 <?xml version="1.0"?>
<query>
<!-- Main fields -->
<userid>[UserID]</userid>
<userkey>[UserKey]</userkey>
<action>UpdateSubUser</action>
<action_user_id>[ActionUserID]</action_user_id>
<user_data>
<email>[New email]</email>
<phone>[New phone]</phone>
</user_data>
</query> 

You'll receive the following back to confirm success of the update:

 <?xml version="1.0"?>
<response>
 <action>updatesubuser</action>
 <status>Success</status>
 <result>
 <user_id></user_id>
 <message>The user data was updated</message>
 <email>[New Email]</email>
 <country>[New Country]</country>
 
 More -->

If you wish to update the email address and phone number of a sub user, send the following format of XML to our API.

<?xml version="1.0"?>
<query>
<!-- Main fields -->
<userid>[UserID]</userid>
<userkey>[UserKey]</userkey>
<action>UpdateSubUser</action>
<action_user_id>[ActionUserID]</action_user_id>
<user_data>
<email>[New email]</email>
<phone>[New phone]</phone>
</user_data>
</query>

You'll receive the following back to confirm success of the update:

<?xml version="1.0"?>
<response>
  <action>updatesubuser</action>
  <status>Success</status>
  <result>
    <user_id></user_id>
    <message>The user data was updated</message>
    <email>[New Email]</email>
    <country>[New Country]</country>
  </result>
</response>
<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How can I delete a Sub User from my account?

You can easily delete sub accounts from your master account by sending the following XML to the API:

<?xml version="1.0"?>
<query>
<userid>[UserID]</userid>
<userkey>[UserKey]</userkey>
<action>DeleteSubUser</action>
<action_user_id>[ActionUserID]</action_user_id>
</query>

You'll receive the following response:

<?xml version="1.0"?>
<response>
<action>deletesubuser</action>
<status>Success</status>
</response>

You can easily delete sub accounts from your master account by sending the following XML to the API:

<?xml version="1.0"?>
<query>
<userid>[UserID]</userid>
<userkey>[UserKey]</userkey>
<action>DeleteSubUser</action>
<action_user_id>[ActionUserID]</action_user_id>
</query>

You'll receive the following response:

<?xml version="1.0"?>
<response>
<action>deletesubuser</action>
<status>Success</status>
</response>
<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What information is necessary to sign up a Sub Account to my master account?

To sign up a sub user on your account, you'll need to provide Encoding.com with a few pieces of information on the sub user. 

 <?xml version="1.0"?>
<query>
<!-- Main fields -->
<userid>[UserID]</userid>
<userkey>[UserKey]</userkey>
<action>AddSubUser</action>
<user_data>
<email>[Email]</email>
<login>[Login]</login>
<password>[Password]</password>
<first_name>[FirstName]</first_name>
<last_name>[LastName]</last_name>
<phone>[Phone]</phone>
</user_data>
</query> 

You'll receive the following response back from the system once the user has been created:

 <?xml version="1.0"?>
<response>
<action>addsubuser</action>
<status>Success</status>
<result>
<plan>Max</plan>
<user_id>New_UserID</user_id>
<user_key>Unique_subaccount_API_key</user_key>
<message>The new sub user has been created</message>
</result>
</response> 

 

 More -->

To sign up a sub user on your account, you'll need to provide Encoding.com with a few pieces of information on the sub user. 

<?xml version="1.0"?>
<query>
<!-- Main fields -->
<userid>[UserID]</userid>
<userkey>[UserKey]</userkey>
<action>AddSubUser</action>
<user_data>
<email>[Email]</email>
<login>[Login]</login>
<password>[Password]</password>
<first_name>[FirstName]</first_name>
<last_name>[LastName]</last_name>
<phone>[Phone]</phone>
</user_data>
</query>

You'll receive the following response back from the system once the user has been created:

<?xml version="1.0"?>
<response>
<action>addsubuser</action>
<status>Success</status>
<result>
<plan>Max</plan>
<user_id>New_UserID</user_id>
<user_key>Unique_subaccount_API_key</user_key>
<message>The new sub user has been created</message>
</result>
</response>

 

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What are Sub Accounts?

Sub accounts are only granted to users on MAX or higher accounts. They are a useful way of tracking bandwidth on the master account if you have many users / agencies on your account. Please note that there is no UI for sub users, as its entirely supported by the API. Contact the administrator of the plan that signed up

 More -->

Sub accounts are only granted to users on MAX or higher accounts. They are a useful way of tracking bandwidth on the master account if you have many users / agencies on your account. Please note that there is no UI for sub users, as its entirely supported by the API. Contact the administrator of the plan that signed up with Encoding.com for more information. This feature is not automatically turned on by Encoding.com; you must request this by contacting the Help Desk. For full information on sub accounts, please check out the complete API documentation.

http://www.encoding.com/api/category/category/sub_account_api_documentation

 

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What information does GetMediaList return?

GetMediaList returns a list of the user's media in the queue. An example of a response from the call would be:

<?xml version="1.0"?>
<response>
    <media>
        <mediafile>[""SourceFile""]</mediafile>
        <mediaid>[""MediaID""]</mediaid>
        <mediastatus>Closed</mediastatus>
        <createdate>[Date]</createdate>
        <startdate>[Date]</startdate>
        <finishdate>[Date]</finishdate>
    </media>
    <media>
    ...
    </media>
</response>

GetMediaList returns a list of the user's media in the queue. An example of a response from the call would be:

<?xml version="1.0"?>
<response>
    <media>
        <mediafile>[""SourceFile""]</mediafile>
        <mediaid>[""MediaID""]</mediaid>
        <mediastatus>Closed</mediastatus>
        <createdate>[Date]</createdate>
        <startdate>[Date]</startdate>
        <finishdate>[Date]</finishdate>
    </media>
    <media>
    ...
    </media>
</response>
<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What does CancelMedia do?

CancelMedia will delete specified media and all its items in the queue. An example of its usage is:

<?xml version="1.0"?>
<query>
<userid>[UserID]</userid>
<userkey>[UserKey]</userkey>
<action>CancelMedia</action>
<mediaid>1234567</mediaid>
<query>

CancelMedia will delete specified media and all its items in the queue. An example of its usage is:

<?xml version="1.0"?>
<query>
<userid>[UserID]</userid>
<userkey>[UserKey]</userkey>
<action>CancelMedia</action>
<mediaid>1234567</mediaid>
<query>
<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What will UpdateMedia do to an existing MediaID?

UpdateMedia will replace information about existing media's formats.  All old format items will be deleted and the new ones will be added. This is useful if you just want to change the settings on a particular MediaID. 

 <?xml version="1.0"?>
<query>
<userid>[UserID]</userid>
<userkey>[UserKey]</userkey>
<action>UpdateMedia</action>
<mediaid>1234567</mediaid>
<format>
 <output>fl9</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>libx264</video_codec>
 <profile>high</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>
</format>
<format>
 <output>thumbnail</output>
 <time>5</time>
 <video_codec>mjpeg</video_codec>
 <keep_aspect_ratio>yes</keep_aspect_ratio>
 
 More -->

UpdateMedia will replace information about existing media's formats.  All old format items will be deleted and the new ones will be added. This is useful if you just want to change the settings on a particular MediaID. 

<?xml version="1.0"?>
<query>
<userid>[UserID]</userid>
<userkey>[UserKey]</userkey>
<action>UpdateMedia</action>
<mediaid>1234567</mediaid>
<format>
    <output>fl9</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>libx264</video_codec>
    <profile>high</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>
</format>
<format>
    <output>thumbnail</output>
    <time>5</time>
    <video_codec>mjpeg</video_codec>
    <keep_aspect_ratio>yes</keep_aspect_ratio>
    <file_extension>jpg</file_extension>
</format>
<query>
<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 2 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What does the action AddMediaBenchmark mean?

AddMediaBenchmark will add new media to user's queue and set a flag to NOT process automatically after downloading.  When sending XML to the API, format fields can be specified as well.  If NotifyURL is set, a notification will be sent after the media is ready for processing. 
NOTE: The media will get 'Ready to process' status only when at least one is

 More -->

AddMediaBenchmark will add new media to user's queue and set a flag to NOT process automatically after downloading.  When sending XML to the API, format fields can be specified as well.  If NotifyURL is set, a notification will be sent after the media is ready for processing. 
NOTE: The media will get 'Ready to process' status only when at least one is specified. In order to process this MediaID, the action 'ProcessMedia' must be sent as well with the corresponding MediaID.

<?xml version="1.0"?>
<query>
<userid>[UserID]</userid>
<userkey>[UserKey]</userkey>
<action>AddMediaBenchmark</action>
<format>
    <output>fl9</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>libx264</video_codec>
    <profile>high</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>
</format>
<format>
    <output>thumbnail</output>
    <time>5</time>
    <video_codec>mjpeg</video_codec>
    <keep_aspect_ratio>yes</keep_aspect_ratio>
    <file_extension>jpg</file_extension>
</format>
<query>
<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What are the differences between the Restart actions in the API?

There's a little bit of similarity in a few of the Restart actions in the API. Here's the breakdown:

+ RestartMedia:  This will completely restart the entire job, including all tasks.

+ RestartMediaErrors:  This action will retry specific tasks within the request that produced an error. For example, if you received a 404 error on a file and

 More -->

There's a little bit of similarity in a few of the Restart actions in the API. Here's the breakdown:

+ RestartMedia:  This will completely restart the entire job, including all tasks.

+ RestartMediaErrors:  This action will retry specific tasks within the request that produced an error. For example, if you received a 404 error on a file and remedied the issue, this action will successfully rerun only that task. 

+ RestartMediaTask:  This action requires an additional parameter. You can specify to rerun a specific task within a MediaID. For more information on the difference between MediaIDs and TaskIDs, please go here.

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 2 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Whats an API key and how do I get one?

When you begin using the Encoding.com Desktop Application or the API, you'll need to locate your API key to access the platform. A unique API key will be generated and assigned to your used ID upon successful creation of your Encoding.com user account. Please protect your key, as this key is a safeguard that we employ to restrict access to

 More -->

When you begin using the Encoding.com Desktop Application or the API, you'll need to locate your API key to access the platform. A unique API key will be generated and assigned to your used ID upon successful creation of your Encoding.com user account. Please protect your key, as this key is a safeguard that we employ to restrict access to your user account. If for any reason, you suspect someone is using your account, you may regenerate your key. Directions follow below.

To locate your API key, login to the customer area @ http://www.encoding.com/login. Select 'My Account' from the list on the left. Within that page, you'll see a 33 digit key, containing both letters and numbers. Copy this locally, as well as your 4 digit user ID, as you'll need to plug this into the Desktop Application to get started. If you're a developer, you're all ready to start sending XMLs via API to Encoding.com. To regenerate your API key at any time, select 'Regenerate' and new unique key will be created for your account, which will end all previous access to the platform with the pre-existing key.

+ To add the user ID and key to the Desktop Application, please open the app, then and select 'Preferences' from the menu at the top. Plug in your user ID and your API key. That's it. You're ready to encode.

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 2 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What information will AddMediaBenchmark return?

The AddMediaBenchmark call will return:

<response><message>Added</message><MediaID>1234567</MediaID></response>

The notify URL will remain in place, if it was entered in the original call, and receive a message when the job is complete. 

 

The AddMediaBenchmark call will return:

<response><message>Added</message><MediaID>1234567</MediaID></response>

The notify URL will remain in place, if it was entered in the original call, and receive a message when the job is complete. 

 

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What information does UpdateMedia return?

 

The UpdateMedia call will return:

<response><message>Updated</message></response>

The notify URL will remain in place, if it was entered in the original call, and receive a message when the job is complete. 

 

The UpdateMedia call will return:

<response><message>Updated</message></response>

The notify URL will remain in place, if it was entered in the original call, and receive a message when the job is complete. 

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Do you have a sample of how I should format my XML for Encoding.com?

Taken from our API documentation, our sample XML serves as a starting point for API Integration with Encoding.com

 <?xml version="1.0"?> 
<query> 
<!-- Main fields --> 
 <userid>[UserID]</userid> 
 <userkey>[UserKey]</userkey> 
 <action>[Action]</action> 
 <mediaid>[MediaID]</mediaid> 
 <source>[SourceFile]</source> 
 <source>[SourceFile1]</source> <!-- if multiple SourceFile added, they will be concatenated --> 
 ... 
 <source>[SourceFileN]</source> 
 <notify>[NotifyURL]</notify> 
 <instant>[yes|no]</instant> 
 <format> 
 
<!-- 
 More -->

Taken from our API documentation, our sample XML serves as a starting point for API Integration with Encoding.com

<?xml version="1.0"?>  
<query>  
<!-- Main fields -->  
    <userid>[UserID]</userid>  
    <userkey>[UserKey]</userkey>  
    <action>[Action]</action>  
    <mediaid>[MediaID]</mediaid>  
    <source>[SourceFile]</source>  
    <source>[SourceFile1]</source> <!-- if multiple SourceFile added, they will be concatenated -->   
    ...   
    <source>[SourceFileN]</source>  
    <notify>[NotifyURL]</notify>  
    <instant>[yes|no]</instant>  
    <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_volume>[Volume]</audio_volume>         
        <size>[Size]</size>  
        <crop_left>[Crop Left]</crop_left>  
        <crop_top>[Crop Top]</crop_top>  
        <crop_right>[Crop Right]</crop_right>  
        <crop_bottom>[Crop Bottom]</crop_bottom>  
        <keep_aspect_ratio>[yes/no]</keep_aspect_ratio>  
        <set_aspect_ratio>[ASPECT_RATIO]</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>  
        <keyframe>[12|15|25|30]</keyframe>   
        <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_transparent>[LogoTransparent]</logo_transparent>   
 </logo>   
 
 <!-- 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 & Level (OPTIONAL, while only for libx264 video codec) -->   
 <profile>[high/main/baseline]</profile>  
 <level>[11/30/51]</level><!--drop the decimal, example 3.0 is 30-->   
 
 <!-- Turbo Encoding switch (OPTIONAL) -->   
 <turbo>[yes/no]</turbo> <!-- Video rotation (OPTIONAL) -->  
  <rotate>def|0|90|270</rotate>   
</format>   
</query>  

 

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 2 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How can I request a thumbnail via API?

If you wish to request thumbnails via API, you've got a couple options:

1) You can request the thumbnail via timestamp (in seconds or percentage rate)

2) Want to request thumbnails at specific intervals? Use !5, for example, to request thumbnails at 5 second intervals

Please note:

- If your specified thumbnail width and height are
 More -->

If you wish to request thumbnails via API, you've got a couple options:

1) You can request the thumbnail via timestamp (in seconds or percentage rate)

2) Want to request thumbnails at specific intervals? Use !5, for example, to request thumbnails at 5 second intervals

Please note:

- If your specified thumbnail width and height are different from your video's aspect ratio, you may get black spaces added to the thumbnail image. 
- If you specify only width or height, the other will be calculated according to your video size.
- If both width and height are not specified, the thumbnail will result in the same size as your video. 
- JPEG is the only supported image format for thumbnail images.
 
If you have any questions specific to the formatting of the API request, please browse here:
http://www.encoding.com/api/category/category/complete_api_documentation#thumbnail_features
 
<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Can I pull video from one file and audio from another?

We now have an mpeg-2 muxing feature that takes two source files and outputs a DVD format mpeg-2 file (PAL or NTSC)


Here's a snippet of the XML you would use:


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

Unfortunately, we do not currently support muxing

 More -->

We now have an mpeg-2 muxing feature that takes two source files and outputs a DVD format mpeg-2 file (PAL or NTSC)


Here's a snippet of the XML you would use:


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

Unfortunately, we do not currently support muxing to mpeg-4 output. We also do not support start/duration flags for multiple sources during a concatenation encode, and have no plans to do so.

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 4 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How can I create multiple output files with your API?

Need to create several flavours of the same file? Not a problem. Upload your main source clip via API, and within the same call, just add in another <format> tag. The best part about this workflow is that you don't have to upload the same source media clip twice, allowing you to cost effectively encode your content.

In lieu

 More -->

Need to create several flavours of the same file? Not a problem. Upload your main source clip via API, and within the same call, just add in another <format> tag. The best part about this workflow is that you don't have to upload the same source media clip twice, allowing you to cost effectively encode your content.

In lieu of making things simple to understand, we left out the body of the format tags and illustrated how to call for multiple format requests:

<?xml version="1.0"?>
<query>
<!-- Main fields -->
<userid>[UserID]</userid>
<userkey>[UserKey]</userkey>
<action>[Action]</action>
<source>[SourceFile]</source>
<notify>[NotifyURL]</notify>

<!-- Format fields -->

<format>
<!--add 1st encode request here, please refer to docs for more info on format tags>
</format>
<format>
<!--add 2nd encode request here>
</format>
</query>

Complete API documentation here: http://www.encoding.com/api/category/category/complete_api_documentation

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 2 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How can I view sub accounts in the web UI?

You're an API user, you're even a sub account user. You want to view sub accounts in our UI --> Right?

At the moment, Encoding.com only supports usage of the API to gather information back about sub user info.  This link: http://www.encoding.com/api/category/category/sub_account_api_documentation will give you all the documentation on how to create, track, delete and account for all

 More -->

You're an API user, you're even a sub account user. You want to view sub accounts in our UI --> Right?

At the moment, Encoding.com only supports usage of the API to gather information back about sub user info.  This link: http://www.encoding.com/api/category/category/sub_account_api_documentation will give you all the documentation on how to create, track, delete and account for all your sub-accounts.

 

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Can I use custom presets that I created in the web UI in my API calls?

Sure you can!

Call out the name of your custom preset as designated in the web UI, like this: 

   <output  >    [PRESET_NAME]   </output  >    

Make sure that the API key and UID match the login that you used to create these in our web UI!

 More -->

Sure you can!

Call out the name of your custom preset as designated in the web UI, like this: 

<output>[PRESET_NAME]</output>

Make sure that the API key and UID match the login that you used to create these in our web UI!

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How do I encode and split longer videos into segments?

 

 
1. Add source via AddMediaBenchmark API call.
 
XML should reflect the following:
 
 <?xml version="1.0"?> 
<query>
  <userid>xxx</userid>
  <userkey>yyy</userkey>
  <action>AddMediaBenchmark</action>
  <source>http://domain.com/source/file/url</source>
</query>
 
2. Store Media ID returned by API for next 2 steps.
 
3. Get media duration by using GetMediaInfo call.
 
 <?xml version="1.0"?> 
 More -->

 

 
1. Add source via AddMediaBenchmark API call.
 
XML should reflect the following:
 
<?xml version="1.0"?>
<query>
  <userid>xxx</userid>
  <userkey>yyy</userkey>
  <action>AddMediaBenchmark</action>
  <source>http://domain.com/source/file/url</source>
</query>
 
2. Store Media ID returned by API for next 2 steps.
 
3. Get media duration by using GetMediaInfo call.
 
	<?xml version="1.0"?>
<query>
  <userid>xxx</userid>
  <userkey>yyy</userkey>
  <action>GetMediaInfo</action>
  <mediaid>3402153</mediaid>
</query>
 
API will return the following XML:
 
<?xml version="1.0" ?> 
<response>
<bitrate>518k</bitrate> 
<duration>723.09</duration> 
<audio_bitrate>256K</audio_bitrate> 
<audio_duration>1253</audio_duration> 
<video_duration>1253</video_duration> 
<video_codec>mpeg2video</video_codec> 
<frame_rate>29.97</frame_rate> 
<size>320x240</size> 
<video_bitrate>104857k</video_bitrate> 
<pixel_aspect_ratio>1:1</pixel_aspect_ratio> 
<display_aspect_ratio>4:3</display_aspect_ratio> 
<audio_codec>mp2</audio_codec> 
<audio_sample_rate>44100</audio_sample_rate> 
<audio_channels>2</audio_channels> 
<format>mpeg-ps</format> 
<format_profile>Main@Main</format_profile> 
<scan_type>Progressive</scan_type> 
</response>
 
Pay attention only the <video_duration>1253</video_duration> tag. 
Based on the video duration they should calculate how many segments they will have for given segment lenght. For this particular example and their segment lenght = 600s here will be 3 segments 600+600+53 seconds.
 
4. Update media and add formats based on calculated number of segments. 
 
<?xml version="1.0"?>
<query>
  <userid>xxx</userid>
  <userkey>yyy</userkey>
  <action>UpdateMedia</action>
  <mediaid>3402153</mediaid>
<format>
      <output>mp4</output>
      <start>0</start>
      <duration>600</duration>
</format>
<format>
      <output>mp4</output>
      <start>600</start>
      <duration>600</duration>
</format>
<format>
      <output>mp4</output>
      <start>1200</start>
      <duration>53</duration>
</format>
</query>
Important! You should add all formats by one UpdateMedia call.
 

 

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 2 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Can I submit a PDF via API as a source file for image conversion?

 

Syntax is as follows for API access to PDF conversion: 
 
<?xml version="1.0"?>
<query>
 <action>AddMedia</action>
 <userid>
 <userkey/>
 <source>
 <notify>
 <format>
   <output>image</output>
   <image_format>jpg</image_format>
   <size>800x0</size>
   <keep_aspect_ratio>yes</keep_aspect_ratio>
   <resize_method>resize</resize_method>
   <quality>80</quality>
   <sharpen_sigma>0.5</sharpen_sigma>
 </format>
</query>

 

 

 

Syntax is as follows for API access to PDF conversion: 
 
<?xml version="1.0"?>
<query>
 <action>AddMedia</action>
 <userid>
 <userkey/>
 <source>
 <notify>
 <format>
   <output>image</output>
   <image_format>jpg</image_format>
   <size>800x0</size>
   <keep_aspect_ratio>yes</keep_aspect_ratio>
   <resize_method>resize</resize_method>
   <quality>80</quality>
   <sharpen_sigma>0.5</sharpen_sigma>
 </format>
</query>

 

 

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 2 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How many outputs can I make per API Call?

You can create as many outputs per call with our powerful API. Keep in mind that you will be tied to the amount of calls per second, you can make, with your SLA on your type of account.

 

You can create as many outputs per call with our powerful API. Keep in mind that you will be tied to the amount of calls per second, you can make, with your SLA on your type of account.

 

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What frame type options does the API offer?

The x264 Project has lead the way on H.264 development by introducing many key features. Variance Adaptive Quantization (VAQ) and Rate–Distortion Optimization (RDO) attempt to preserve video quality and motion estimation against the amount of data required to encode the video. Advanced controls include options for GOP structure, keyframing, scene detection, macroblocking, and interframe quantization. Many of

 More -->

The x264 Project has lead the way on H.264 development by introducing many key features. Variance Adaptive Quantization (VAQ) and Rate–Distortion Optimization (RDO) attempt to preserve video quality and motion estimation against the amount of data required to encode the video. Advanced controls include options for GOP structure, keyframing, scene detection, macroblocking, and interframe quantization. Many of these features are discussed in depth on the x264 forums. A list of the x264 flags available to our API follows:

Frame-type options:


keyint_min [optional] - The minimum distance between I-frames.
Allowed values: integer 
Default: 25
 
sc_threshold [optional] - Adjusts the sensitivity of x264's scenecut detection.
Allowed values: integer 
Default: 40
 
bf [optional] - B-frames.
Allowed values: integer 
Default: 16
 
b_strategy [optional] - Adaptively decides through a low-resolution lookahead the best number of B-frames to use.
Allowed values: 0,1,2
Default: 1
 
flags2 [optional] - Allows B-frames to be kept as references.
Allowed values: +bpyramid, +wpred, +mixed_refs, +dct8×8, -fastpskip/+fastpskip, +aud.
Default: None
 
coder [optional] - CABAC is the default entropy encoder used by x264.
Allowed values: 0,1
Default: 1(CABAC enabled)
 
refs [optional] - This parameter lets one specify how many references can be used, through a maximum of 16.
Allowed values: integer
Default: 6
 
flags [optional] - Disable loop filter.
Allowed values: -loop/+loop,-psnr/+psnr
Default: +loop (Enabled)
 
deblockalpha, deblockbeta [optional] - One of H.264's main features is the in-loop deblocker, which avoids the problem of blocking artifacts disrupting motion estimation.
Allowed values: integer
Default: 0 (Must have '-flags +loop')




Ratecontrol:

cqp [optional] - Constant quantizer mode.
Allowed values: integer
Default: None
crf [optional] - Constant quality mode (also known as constant ratefactor).
Allowed values: float
Default: None
 
qmin [optional] - Minimum quantizer.
Allowed values: integer
Default: 10
 
qmax [optional] - Maximum quantizer.
Allowed values: integer
Default: 50
qdiff [optional] - Set max QP step.
Allowed values: integer
Default: 4
 
bt [optional] - Allowed variance of average bitrate.
Allowed values: integer
Default: None
 
i_qfactor [optional] - Qscale difference between I-frames and P-frames.
Allowed values: float
Default: 0.71
 
b_qfactor [optional] - Qscale difference between P-frames and B-frames.
Allowed values: float
Default: None
chromaoffset [optional] - QP difference between chroma and luma.
Allowed values: integer
Default: None
pass [optional] 
Allowed values: <1,2,3>
Default: None
rc_eq [optional] - Ratecontrol equation.
Allowed values: string
Default: blurCplx^(1-qComp)
 
qcomp [optional] - QP curve compression: 0.0 => CBR, 1.0 => CQP.
Allowed values: float
Default: 0.60
 
complexityblur [optional] - Reduce fluctuations in QP (before curve compression).
Allowed values: float
Default: 20.0
 
qblur [optional] - Reduce fluctuations in QP (after curve compression) .
Allowed values: float
Default: 0.5




Analysis:

partitions [optional] - One of H.264's most useful features is the ability to choose among many combinations of inter and intra partitions.
Allowed values: +partp8x8,+partp4x4,+partb8x8,+parti8x8,+parti4x4 
Default: None
 
directpred [optional] 
Allowed values: integer
Default: None
 
flags2 [optional] - This allows B-frames to use weighted prediction options other than the default. There is no real speed cost for this, so it should always be enabled. 
Allowed values: +bpyramid,+wpred,+mixed_refs,+dct8×8,-fastpskip/+fastpskip,–no-fast-pskip/nothing,+aud. 
Default: +wpred



me_method [optional] 
Allowed values: <epzs,hex,umh,full>
Default: None
 
me_range [optional] - MErange controls the max range of the motion search. 
Allowed values: integer
Default:16
subq [optional] - MErange controls the max range of the motion search. 
Allowed values: integer
Default: 6
trellis [optional] - Trellis chooses the optimal rounding choices for the maximum rate-distortion score, to maximize PSNR relative to bitrate.
Allowed values: <0,1,2>
Default: None
 
<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 4 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How do I add and customize intervals of keyframes via API?

The default value for keyframe interval set by the optional format field <keyframe> is 300, i.e. keyframe is added every 300 frames. For a framerate of 30fps this would equal 10 secs. But for 15fps (most often used for FLV) it would be 20 seconds, which may be too often. To change this value, simply use the <keyframe> parameter within

 More -->

The default value for keyframe interval set by the optional format field <keyframe> is 300, i.e. keyframe is added every 300 frames. For a framerate of 30fps this would equal 10 secs. But for 15fps (most often used for FLV) it would be 20 seconds, which may be too often. To change this value, simply use the <keyframe> parameter within the <format> element. For example, setting the value to 30 will allow to seek the video for every 2 seconds, assuming framerate 15 fps.

About Keyframes: Because video compression only stores incremental changes between frames (except for key frames), it is not possible to fast forward or rewind to any arbitrary spot in the video stream. That is because the data for a given frame only represents how that frame was different from the preceding frame. For that reason it is beneficial to include key frames at arbitrary intervals while encoding video. For example, a key frame may be output once for each 10 seconds of video, even though the video image does not change enough visually to warrant the automatic creation of the key frame. That would allow seeking within the video stream at a minimum of 10 second intervals. The down side is that the resulting video stream will be larger in size because many key frames were added when they were not necessary for the visual representation of the frame. http://en.wikipedia.org/wiki/Key_frame

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What happens after I use the AddMediaBenchmark call via API?

If you added your media using AddMediaBenchmark API call and if you also specified <notify> parameter, you will receive a notification when the media has been downloaded and ready for further processing. Note that you must specify at least one <format> for this media in order it gets the 'Ready to process' status and you actually receive a notification.

 More -->

If you added your media using AddMediaBenchmark API call and if you also specified <notify> parameter, you will receive a notification when the media has been downloaded and ready for further processing. Note that you must specify at least one <format> for this media in order it gets the 'Ready to process' status and you actually receive a notification.

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How do I use CBR instead of VBR in your platform?

Occasionally compression requirements dictate that you use a Constant Bit Rate (CBR) instead of a Variable Bit Rate (VBR). This is especially helpful for video streaming.  In our encoding platform, VBR is the default setting for Encoding.com since it generally provides much higher quality. For scenes where there is a high amount of action or detail, VBR will

 More -->

Occasionally compression requirements dictate that you use a Constant Bit Rate (CBR) instead of a Variable Bit Rate (VBR). This is especially helpful for video streaming.  In our encoding platform, VBR is the default setting for Encoding.com since it generally provides much higher quality. For scenes where there is a high amount of action or detail, VBR will often spike up to 300% of the target bitrate. The reverse is also true, VBR will dramatically pull back on scenes with low detail.

Why would you use CBR?

CBR is far more constrained, with the actual bitrate only floating about 20% above and below the target. Some video playback devices have cheaper "chips", hardware decoders with limited buffer that are unable to handle VBR. With MPEG-4 being built into most modern chipsets, this issue is largely going away. CBR is also often used in satellite television broadcasts, where many channels will be multiplexed into one transport stream with limited bandwidth.

Sample API tags for CBR:

<format>
<cbr>yes</cbr>
<bitrate>768k</bitrate>
</format>

 

 

If you wish to check your encodes, Winhoros Bitrate Viewer is a great way to scan your files and quickly get detailed bitrate information.

Winhoros Screenshot

If you are having problems getting the bitrate you need, try using a lower value in the bitrate tag. If that doesn't work, please submit a support ticket with the Media ID # of the job.

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 2 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What additional controls are available for VBR settings through the API?

When you're using our powerful API to control the VBR settings of your encode, there's a few additional options that you can supply to control the settings. There are a few things to consider:

---> - Bufsize: (Rate control buffer size) You always MUST specify it when setting minrate and/or maxrate. A buffer with that size will be used to

 More -->

When you're using our powerful API to control the VBR settings of your encode, there's a few additional options that you can supply to control the settings. There are a few things to consider:

---> - Bufsize: (Rate control buffer size) You always MUST specify it when setting minrate and/or maxrate. A buffer with that size will be used to calculate current bitrate. 
 
bufsize [optional] - Rate control buffer size (bits).
     Allowed values: N or Nk - where N is any non-zero integer.
     Default: None
 
--> - Minrate and Maxrate : These items limit the bitrate of the encoded video must not drop below or exceed.  
maxrate [optional] - Maximum allowed video bitrate.
     Allowed values: N or Nk - where N is any non-zero integer.
     Default: None
 
minrate [optional] - Minimum allowed video bitrate.
     Allowed values: N or Nk - where N is any non-zero integer.
     Default: None
 
--> - Rc_init_occupancy: The initial rate control buffer occupancy (number of bits which should be loaded into the RC buffer before decoding starts). 
 
rc_init_occupancy [optional] - Initial rate control buffer occupancy (bits).
     Allowed values:  N or Nk - where N is any non-zero integer.
     Default: None

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How do I get back source media properties via API?

You can get your source media's properties by sending GetMediaInfo API request.

This information will become available after the following events have occurred:

1) Just after the media has been Downloaded - if you specified HTTP or (S)FTP as your source location, and also if you specified S3 source location AND the media was added with AddMediaBenchmark call.

 More -->

You can get your source media's properties by sending GetMediaInfo API request.

This information will become available after the following events have occurred:

1) Just after the media has been Downloaded - if you specified HTTP or (S)FTP as your source location, and also if you specified S3 source location AND the media was added with AddMediaBenchmark call.

2)  Few seconds after the media started being processed, if the media is located on S3 and was added using AddMedia call.

The following properties could be returned (if available):


bitrate - the file's summary bitrate.
duration - media's duration in seconds
video_codec - video codec
frame_rate - video frame rate in fps
audio_sample_rate - audio sampling rate, in Hz
size - video dimensions Width x Height, in pixels
pixel_aspect_ratio, display_aspect_ratio - usually 4:3 or 16:9, if set

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Do you have any advanced configuration options for the ibx264 video codec?

This guide maps most of x264's options to FFmpeg's options along with detailed descriptions by x264 developer Dark_Shikari. FFmpeg developer superdump has implemented x264 presets to FFmpeg. You can find his guide  here.

Frame-type options:

g <integer> 
Keyframe interval, also known as GOP length. This determines the maximum distance between I-frames. Very high GOP lengths

 More -->

This guide maps most of x264's options to FFmpeg's options along with detailed descriptions by x264 developer Dark_Shikari. FFmpeg developer superdump has implemented x264 presets to FFmpeg. You can find his guide here.

Frame-type options:

g <integer> 
Keyframe interval, also known as GOP length. This determines the maximum distance between I-frames. Very high GOP lengths will result in slightly more efficient compression, but will make seeking in the video somewhat more difficult. Recommended default: 250

keyint_min <integer>
Minimum GOP length, the minimum distance between I-frames. Recommended default: 25

sc_threshold <integer>
Adjusts the sensitivity of x264's scenecut detection. Rarely needs to be adjusted. Recommended default: 40

bf <integer> 
B-frames are a core element of H.264 and are more efficient in H.264 than any previous standard. Some specific targets, such as HD-DVD and Blu-Ray, have limitations on the number of consecutive B-frames. Most, however, do not; as a result, there is rarely any negative effect to setting this to the maximum (16) since x264 will, if B-adapt is used, automatically choose the best number of B-frames anyways. This parameter simply serves to limit the max number of B-frames.

Notes"

- Baseline Profile, such as that used by iPods, does not support B-frames. Recommended default: 16

- If you want to generate H.264 baseline for older iPhone 3 phones, then do not use Advanced Parameters like B-frames or else the output will be generated as Main profile.

0: Very fast, but not recommended. Does not work with pre-scenecut (scenecut must be off to force off b-adapt).

1: Fast, default mode in x264. A good balance between speed and quality.

2: A much slower but more accurate B-frame decision mode that correctly detects fades and generally gives considerably better quality. Its speed gets considerably slower at high bframes values, so its recommended to keep bframes relatively low (perhaps around 3) when using this option. It also may slow down the first pass of x264 when in threaded mode.

b_strategy <integer>
x264, by default, adaptively decides through a low-resolution lookahead the best number of B-frames to use. It is possible to disable this adaptivity; this is not recommended. Recommended default: 1

bframebias  
Make x264 more likely to choose higher numbers of B-frames during the adaptive lookahead. Not generally recommended. Recommended default: 0

flags2 +bpyramid
Allows B-frames to be kept as references. The name is technically misleading, as x264 does not actually use pyramid coding; it simply adds B-references to the normal reference list. B-references get a quantizer halfway between that of a B-frame and P-frame. This setting is generally beneficial, but it increases the DPB (decoding picture buffer) size required for playback, so when encoding for hardware, disabling it may help compatibility.

coder
CABAC is the default entropy encoder used by x264. Though somewhat slower on both the decoding and encoding end, it offers 10-15% improved compression on live-action sources and considerably higher improvements on animated sources, especially at low bitrates. It is also required for the use of trellis quantization. Disabling CABAC may somewhat improve decoding performance, especially at high bitrates. CABAC is not allowed in Baseline Profile. Recommended default: -coder 1 (CABAC enabled)

refs <integer>
One of H.264's most useful features is the ability to reference frames other than the one immediately prior to the current frame. This parameter lets one specify how many references can be used, through a maximum of 16. Increasing the number of refs increases the DPB (Decoded Picture Buffer) requirement, which means hardware playback devices will often have strict limits to the number of refs they can handle. In live-action sources, more reference have limited use beyond 4-8, but in cartoon sources up to the maximum value of 16 is often useful. More reference frames require more processing power because every frame is searched by the motion search (except when an early skip decision is made). The slowdown is especially apparent with slower motion estimation methods. Recommended default: -refs 6

flags 
Disable loop filter. Recommended default: -flags +loop (Enabled)

deblockalpha <integer>
deblockbeta <integer>

One of H.264's main features is the in-loop deblocker, which avoids the problem of blocking artifacts disrupting motion estimation. This requires a small amount of decoding CPU, but considerably increases quality in nearly all cases. Its strength may be raised or lowered in order to avoid more artifacts or keep more detail, respectively. Deblock has two parameters: alpha (strength) and beta (threshold). Recommended defaults:-deblockalpha 0 -deblockbeta 0 (Must have '-flags +loop')

Ratecontrol:

 

cqp <integer>
Constant quantizer mode. Not exactly constant completely--B-frames and I-frames have different quantizers from P-frames. Generally should not be used, since CRF gives better quality at the same bitrate. b <integer> 
Enables target bitrate mode. Attempts to reach a specific bitrate. Should be used in 2-pass mode whenever possible; 1-pass bitrate mode is generally the worst ratecontrol mode x264 has.

crf <float> 
Constant quality mode (also known as constant ratefactor). Bitrate corresponds approximately to that of constant quantizer, but gives better quality overall at little speed cost. The best one-pass option in x264.

maxrate <integer> 
Specifies the maximum bitrate at any point in the video. Requires the VBV buffersize to be set. This option is generally used when encoding for a piece of hardware with bitrate limitations.

bufsize <integer>
Depends on the profile level of the video being encoded. Set only if you're encoding for a hardware device.

rc_init_occupancy <float>
Initial VBV buffer occupancy. Note: Don't mess with this.

qmin <integer> 
Minimum quantizer. Doesn't need to be changed. Recommended default: -qmin 10

qmax <integer> 
Maximum quantizer. Doesn't need to be changed. Recommended default: -qmax 51

qdiff <integer>
Set max QP step. Recommended default: -qdiff 4

bt <float> 
Allowed variance of average bitrate

 

i_qfactor <float> 
Qscale difference between I-frames and P-frames. Note: -i_qfactor is handled a little differently than --ipratio. Recommended: -i_qfactor 0.71

b_qfactor <float> 
Qscale difference between P-frames and B-frames.

chromaoffset <integer> 
QP difference between chroma and luma.

pass <1,2,3> 
Used with --bitrate. Pass 1 writes the stats file, pass 2 reads it, and 3 both reads and writes it. If you want to use three pass, this means you will have to use --pass 1 for the first pass, --pass 3 for the second, and --pass 2 or 3 for the third.

rc_eq <string> 
Ratecontrol equation. Recommended default: -rc_eq 'blurCplx^(1-qComp)' 

qcomp <float> 
QP curve compression: 0.0 => CBR, 1.0 => CQP. Recommended default: -qcomp 0.60

complexityblur <float>
Reduce fluctuations in QP (before curve compression) [20.0]

qblur <float>
Reduce fluctuations in QP (after curve compression) [0.5]

partitions <string>
One of H.264's most useful features is the ability to choose among many combinations of inter and intra partitions. P-macroblocks can be subdivided into 16x8, 8x16, 8x8, 4x8, 8x4, and 4x4 partitions. B-macroblocks can be divided into 16x8, 8x16, and 8x8 partitions. I-macroblocks can be divided into 4x4 or 8x8 partitions. Analyzing more partition options improves quality at the cost of speed. The default is to analyze all partitions except p4x4 (p8x8, i8x8, i4x4, b8x8), since p4x4 is not particularly useful except at high bitrates and lower resolutions. Note that i8x8 requires 8x8dct, and is therefore a High Profile-only partition. p8x8 is the most costly, speed-wise, of the partitions, but also gives the most benefit. Generally, whenever possible, all partition types except p4x4 should be used.

p8x8 (x264) /+partp8x8 (FFmpeg)

p4x4 (x264) /+partp4x4 (FFmpeg)

b8x8 (x264) /+partb8x8 (FFmpeg)

i8x8 (x264) /+parti8x8 (FFmpeg)

i4x4 (x264) /+parti4x4 (FFmpeg)

directpred <integer> 
B-frames in H.264 can choose between spatial and temporal prediction mode. Auto allows x264 to pick the best of these; the heuristic used is whichever mode allows more skip macroblocks. Auto should generally be used.

Motion Prediction:

flags2 +wpred
This allows B-frames to use weighted prediction options other than the default. There is no real speed cost for this, so it should always be enabled.

dia (x264) / epzs (FFmpeg) is the simplest search, consisting of starting at the best predictor, checking the motion vectors at one pixel upwards, left, down, and to the right, picking the best, and repeating the process until it no longer finds any better motion vector.

hex (x264) / hex (FFmpeg) consists of a similar strategy, except it uses a range-2 search of 6 surrounding points, thus the name. It is considerably more efficient than DIA and hardly any slower, and therefore makes a good choice for general-use encoding.

umh (x264) / umh (FFmpeg) is considerably slower than HEX, but searches a complex multi-hexagon pattern in order to avoid missing harder-to-find motion vectors. Unlike HEX and DIA, the merange parameter directly controls UMH's search radius, allowing one to increase or decrease the size of the wide search.

esa (x264) / full (FFmpeg) is a highly optimized intelligent search of the entire motion search space within merange of the best predictor. It is mathematically equivalent to the bruteforce method of searching every single motion vector in that area, though faster. However, it is still considerably slower than UMH, with not too much benefit, so is not particularly useful for everyday encoding.

me_method <epzs,hex,umh,full> 
One of the most important settings for x264, both speed and quality-wise.

me_range <integer> 
MErange controls the max range of the motion search. For HEX and DIA, this is clamped to between 4 and 16, with a default of 16. For UMH and ESA, it can be increased beyond the default 16 to allow for a wider-range motion search, which is useful on HD footage and for high-motion footage. Note that for UMH and ESA, increasing MErange will significantly slow down encoding.

1: Fastest, but extremely low quality. Should be avoided except on first pass encoding.

2-5: Progressively better and slower, 5 serves as a good medium for higher speed encoding.

6-7: 6 is the default. Activates rate-distortion optimization for partition decision. This can considerably improve efficiency, though it has a notable speed cost. 6 activates it in I/P frames, and subme7 activates it in B frames.

8-9: Activates rate-distortion refinement, which uses RDO to refine both motion vectors and intra prediction modes. Slower than subme 6, but again, more efficient.

 

subq 
An extremely important encoding parameter which determines what algorithms are used for both subpixel motion searching and partition decision.

flags2 +mixed_refs 
H.264 allows p8x8 blocks to select different references for each p8x8 block. This option allows this analysis to be done, and boosts quality with little speed impact. It should generally be used, though it obviously has no effect with only one reference frame.

flags2 +dct8x8
Gives a notable quality boost by allowing x264 to choose between 8x8 and 4x4 frequency transform size. Required for i8x8 partitions. Speed cost for this option is near-zero both for encoding and decoding; the only reason to disable it is when one needs support on a device not compatible with High Profile.

0: disabled

1: enabled only on the final encode of a MB

2: enabled on all mode decisions

trellis <0,1,2>
The main decision made in quantization is which coefficients to round up and which to round down. Trellis chooses the optimal rounding choices for the maximum rate-distortion score, to maximize PSNR relative to bitrate. This generally increases quality relative to bitrate by about 5% for a somewhat small speed cost. It should generally be enabled. Note that trellis requires CABAC.

flags2 -fastpskip 
By default, x264 will skip macroblocks in P-frames that don't appear to have changed enough between two frames to justify encoding the difference. This considerably speeds up encoding. However, for a slight quality boost, P-skip can be disabled. In this case, the full analysis will be done on all P-blocks, and the only skips in the output stream will be the blocks whose motion vectors happen to match that of the skip vector and motion vectors happen to match that of the skip vector and which have no residual. The speed cost of enabling no-fast-pskip is relatively high, especially with many reference frames. There is a similar B-skip internal to x264, which is why B-frames generally encode much faster than P-frames, but it cannot be disabled on the commandline.

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 2 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How could I receive real time status updates for my encoding tasks?

If you're wishing to obtain more information about the jobs that you have submitted to our encoding platform, please take a look at the follow calls:  

  • progress
  • progress_current
  • time_left
  • time_left_current

These flags are pulled from the main XML file as indicated below:

 	<?xml version="1.0"?>
	<response>
	<id>[MediaID]</id>
	<userid>[UserID]</userid>
	<sourcefile>[SourceFile]</sourcefile>
	<status>[MediaStatus]</status>
	<notifyurl>[NotifyURL]</notifyurl>
	<created>[Date]</created>
	<started>[Date]</started>
	<finished>[Date]</finished>
	<prevstatus>[MediaStatus]</prevstatus>
	<downloaded>[Date]</downloaded>
	<uploaded>[Date]</uploaded>
	<time_left>[TotalTimeLeft]</time_left>
	<progress>[TotalProgress]</progress>
	<time_left_current>[StatusTimeLeft]</time_left_current>
	<progress_current>[StatusProgress]</progress_current>   
	<format>
	<id>[ID]</id>
	<status>[Status]</status>
	<created>[Date]</created>
	<started>[Date]</started>
	<finished>[Date]</finished>
	<!-- [FormatFields] --> 
	<s3_destination>[TempS3Link]</s3_destination><!-- optional 
 More -->

If you're wishing to obtain more information about the jobs that you have submitted to our encoding platform, please take a look at the follow calls:  

  • progress
  • progress_current
  • time_left
  • time_left_current

These flags are pulled from the main XML file as indicated below:

	<?xml version="1.0"?>
	<response>
	<id>[MediaID]</id>
	<userid>[UserID]</userid>
	<sourcefile>[SourceFile]</sourcefile>
	<status>[MediaStatus]</status>
	<notifyurl>[NotifyURL]</notifyurl>
	<created>[Date]</created>
	<started>[Date]</started>
	<finished>[Date]</finished>
	<prevstatus>[MediaStatus]</prevstatus>
	<downloaded>[Date]</downloaded>
	<uploaded>[Date]</uploaded>
	<time_left>[TotalTimeLeft]</time_left>
	<progress>[TotalProgress]</progress>
	<time_left_current>[StatusTimeLeft]</time_left_current>
	<progress_current>[StatusProgress]</progress_current>   
	<format>
	<id>[ID]</id>
	<status>[Status]</status>
	<created>[Date]</created>
	<started>[Date]</started>
	<finished>[Date]</finished>
	<!-- [FormatFields] --> 
	<s3_destination>[TempS3Link]</s3_destination><!-- optional -->
	<cf_destination>[TempCFLink]</cf_destination><!-- optional -->
	</format>

	

TotalTimeLeft is an estimated time until the media processing would be finished
StatusTimeLeft is an estimated time left for the media's current status
TotalProgress is an estimated progress for entire media processing (in percent)
StatusProgress is an estimated progress for the media's current status (in percent)

 

 

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

I want to make thumbnails from my clips, but I don’t always know the length. What can I do?

So you want to make thumbnails from your clips, but you don't know the length, use the following:

Instead of <time>20</time> --> use a percentage-based value: <time>20%</time>.

So you want to make thumbnails from your clips, but you don't know the length, use the following:

Instead of <time>20</time> --> use a percentage-based value: <time>20%</time>.

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 3 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Looking for a CFM sample script?

http://www.encoding.com/wdocs/SampleScripts#cfm
http://www.encoding.com/wdocs/SampleScripts#cfm <-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Looking for Java sample scripts?

http://www.encoding.com/wdocs/SampleScripts#java
http://www.encoding.com/wdocs/SampleScripts#java <-- Hide
tools: email  |  print  |  share  |  click to rate (rated 2 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Looking for PHP sample scripts?

http://www.encoding.com/wdocs/SampleScripts#php
http://www.encoding.com/wdocs/SampleScripts#php <-- Hide
tools: email  |  print  |  share  |  click to rate (rated 3 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Looking for VB sample scripts?

tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What types of metadata can I currently add to my encodes?

The following types of metadata are allowed to be added for the following formats: 3gp, appletv, fl9, iphone, ipod, m4a, mp4, wmv, zune.

Please note that the length of metatag value can't be greater than 256 characters. This functionality is only supported via AP.

  • title [optional] - Title of the media
  • copyright [optional] - Copyright information
 More -->

The following types of metadata are allowed to be added for the following formats: 3gp, appletv, fl9, iphone, ipod, m4a, mp4, wmv, zune.

Please note that the length of metatag value can't be greater than 256 characters. This functionality is only supported via AP.

  • title [optional] - Title of the media
  • copyright [optional] - Copyright information
  • author [optional] - Source author
  • description [optional] - Media description
  • album [optional] - Media album

 

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 7 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How do I request the status of several MediaIDs in one request?

You can simply request multiple MediaIDs in a comma delimited format:

<xml version="1.0">

<query>

<userid></userid>

<userkey>
</userkey>
<action>GetStatus</action>
<mediaid>1234567,1234568<mediaid>
<query>

You can simply request multiple MediaIDs in a comma delimited format:

<xml version="1.0">

<query>

<userid></userid>

<userkey>
</userkey>
<action>GetStatus</action>
<mediaid>1234567,1234568<mediaid>
<query>
<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How are my videos being encoded if only part of the video size was specified in the request?

When you specify the encoded video size to be 320x0, the resulting width is calculated based on the source aspect ratio. You will need to know what the exact frame size of your resulting video in order to enter the parameters you wish to keep. First, you can find out the source media aspect ratio. Just send a GetMediaInfo API  More -->
When you specify the encoded video size to be 320x0, the resulting width is calculated based on the source aspect ratio. You will need to know what the exact frame size of your resulting video in order to enter the parameters you wish to keep. First, you can find out the source media aspect ratio. Just send a GetMediaInfo API request, and locate property. If it is not present, just calculate the ratio from the frame size ( property) dividing width by height. Let's now calculate result frame height. Divide the resulting width by the obtained ratio, round it to nearest integer, and then, if it is not even, add 1. For example if source ratio is 1.333 (4:3). 320/1.333 = 240.06 In this case, the height will be 240. For the source ratio 1.777 (16:9): 320/1.777 = 180.07. Therefore, the height will be 180. <-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

When should I use the ProcessMedia API call?

The ProcessMedia action should only be used for media that has been added with the AddMediaBenchmark call. After the media was downloaded, it will receive a 'Ready to process' status, after which the processing is resumed using ProcessMedia.
The ProcessMedia action should only be used for media that has been added with the AddMediaBenchmark call. After the media was downloaded, it will receive a 'Ready to process' status, after which the processing is resumed using ProcessMedia. <-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What should go in the “user key” field?

When using the XML API, two parameters are sent in the XML query to authenticate the request: User ID and API User Key .

You can view the User ID and API User Key in the " My Account " tab, found in the User Interface . The API User Key can

 More -->
When using the XML API, two parameters are sent in the XML query to authenticate the request: User ID and API User Key.

You can view the User ID and API User Key in the "My Account" tab, found in the User Interface. The API User Key can be changed at anytime from there, by clicking the 'Regenerate' link next to the API User Key. Please note that your UserID is a numerical value, not your username should go in the UserID field. <-- Hide

tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Could I Submit a XML Query Through a Web-browser?

Yes, there is a simple web-form to send XML requests: http://manage.encoding.com/send_xml.php Copy and paste, or type, the XML request into the form there to have the system push your job. The web page will not submit the XML if there are any syntax issues.
Yes, there is a simple web-form to send XML requests: http://manage.encoding.com/send_xml.php Copy and paste, or type, the XML request into the form there to have the system push your job. The web page will not submit the XML if there are any syntax issues. <-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

What should I enter in the Notify field?

In the Notify field you can use either mailto: link or the URL of your script. When your Media is finished, an HTTP POST request with will be sent to the specified location. Please refer to the API docs for details of POST request data format.
In the Notify field you can use either mailto: link or the URL of your script. When your Media is finished, an HTTP POST request with will be sent to the specified location. Please refer to the API docs for details of POST request data format. <-- Hide
tools: email  |  print  |  share  |  click to rate (rated 2 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Is it possible to define source media parameters (e.g. size, duration, bitrate) before adding tasks?

You can use AddMediaBenchmark, GetMediaInfo, UpdateMedia, and ProcessMedia API calls for such jobs. See the API's documentation http://www.encoding.com/wdocs/ApiDoc for complete details of these API calls.
You can use AddMediaBenchmark, GetMediaInfo, UpdateMedia, and ProcessMedia API calls for such jobs. See the API's documentation http://www.encoding.com/wdocs/ApiDoc for complete details of these API calls. <-- Hide
tools: email  |  print  |  share  |  click to rate (rated 1 time):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Where can find complete documentation of the API?

You can find our complete API documntation here: http://www.encoding.com/wdocs/ApiDoc
You can find our complete API documntation here: http://www.encoding.com/wdocs/ApiDoc <-- Hide
tools: email  |  print  |  share  |  click to rate (rated 4 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Do you have sample scripts available for your API?

We have sample scripts available in PHP, Cold Fusion, C#, and VBScript.  You can find these scripts by visiting http://www.encoding.com/api/SampleScripts  

We have sample scripts available in PHP, Cold Fusion, C#, and VBScript.  You can find these scripts by visiting http://www.encoding.com/api/SampleScripts  

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 2 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Using Encoding.com a a temporary storage for your encoded video

You can use encoding.com's cloud storage location as temporary storage for your encoding output. To accomplish this you leave the "Destination" field empty using any integration method Web Interface. Desktop Application, or the API. To retrieve the direct http url of your you can login to the client interface, click Encoding Queue, expand the job ID and click on the

 More -->

You can use encoding.com's cloud storage location as temporary storage for your encoding output. To accomplish this you leave the "Destination" field empty using any integration method Web Interface. Desktop Application, or the API. To retrieve the direct http url of your you can login to the client interface, click Encoding Queue, expand the job ID and click on the "Download" link. If you are using our notification feature the http url will be available in the field of the email or XML notification we send once the job is complete. Encoding.com will store your encoding ouptut temporarily for up to 15 days or 100GB, which ever comes first. If you reach your 100GB limit we will automatically delete the oldest files first.

Please note that this is not available for .m3u8 files, aka Apple iPhone / iPad Streaming HLS files.

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 2 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

How to create multiple outputs within a single API request

One of the unique and powerful features of our API is the ability to generate more than one output format in a single API request. To accomplish this you can simply duplicate the <format> parameters for each output type that you require. You can generate an unlimited number of outputs per API request. This is a simple and efficient way

 More -->

One of the unique and powerful features of our API is the ability to generate more than one output format in a single API request. To accomplish this you can simply duplicate the <format> parameters for each output type that you require. You can generate an unlimited number of outputs per API request. This is a simple and efficient way to generate multiple outputs in different bitrates, video formats, thumbnails, or mobile presets. Below is an example of the XML you would send to generate one MP4 file and 5 thumbnails:

<?xml version="1.0"?>
<query>
  <action>AddMedia</action>
  <userid>XYZZ</userid>
  <userkey/>84728947239847290347234</userkey>
  <source>ftp://user:password@server/path/file.avi</source>
  <notify>mailto:your@yourdomain.com</notify>
  <format>
    <output>mp4</output>
    <destination>ftp://user:password@server/path/file.mp4</destination>
    <size>420x0</size>
    <bitrate>800k</bitrate>
    <audio_bitrate>96k</audio_bitrate>
    <audio_channels_number>2</audio_channels_number>
    <keep_aspect_ratio>yes</keep_aspect_ratio>
    <video_codec>libx264</video_codec>
    <profile>main</profile>
    <audio_codec>libfaac</audio_codec>
    <two_pass>no</two_pass>
    <turbo>yes</turbo>
    <cbr>no</cbr>
    <deinterlacing>yes</deinterlacing>
    <keyframe>300</keyframe>
    <audio_volume>100</audio_volume>
    <rotate>def</rotate>
    <file_extension>mp4</file_extension>
    <hint>no</hint>
  </format>
  <format>
    <output>thumbnail</output>
    <time>10</time>
    <video_codec>mjpeg</video_codec>
    <width>160</width>
    <height>120</height>
    <keep_aspect_ratio>yes</keep_aspect_ratio>
    <destination>ftp://user:password@server/path/thumbnail1.jpg</destination>
    <file_extension>jpg</file_extension>
    <rotate>def</rotate>
  </format>
  <format>
    <output>thumbnail</output>
    <time>20</time>
    <video_codec>mjpeg</video_codec>
    <width>160</width>
    <height>120</height>
    <keep_aspect_ratio>yes</keep_aspect_ratio>
    <destination>ftp://user:password@server/path/thumbnail2.jpg</destination>
    <file_extension>jpg</file_extension>
    <rotate>def</rotate>
  </format>
  <format>
    <output>thumbnail</output>
    <time>30</time>
    <video_codec>mjpeg</video_codec>
    <width>160</width>
    <height>120</height>
    <keep_aspect_ratio>yes</keep_aspect_ratio>
    <destination>ftp://user:password@server/path/thumbnail3.jpg</destination>
    <file_extension>jpg</file_extension>
    <rotate>def</rotate>
  </format>
  <format>
    <output>thumbnail</output>
    <time>40</time>
    <video_codec>mjpeg</video_codec>
    <width>160</width>
    <height>120</height>
    <keep_aspect_ratio>yes</keep_aspect_ratio>
    <destination>ftp://user:password@server/path/thumbnail4.jpg</destination>
    <file_extension>jpg</file_extension>
    <rotate>def</rotate>
  </format>
  <format>
    <output>thumbnail</output>
    <time>50</time>
    <video_codec>mjpeg</video_codec>
    <width>160</width>
    <height>120</height>
    <keep_aspect_ratio>yes</keep_aspect_ratio>
    <destination>ftp://user:password@server/path/thumbnail5.jpg</destination>
    <file_extension>jpg</file_extension>
    <rotate>def</rotate>
  </format>
</query>

 

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 2 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter

Will Encoding.com retry the XML Notification post to my server?

In the notification field of the API, web interface or Desktop Air App, you can specify a http url which we will send a notification post to once the job is complete. If we do not get a success message from our first attempt to send your system this XML we will resend the post up to 3 times.

 More -->

In the notification field of the API, web interface or Desktop Air App, you can specify a http url which we will send a notification post to once the job is complete. If we do not get a success message from our first attempt to send your system this XML we will resend the post up to 3 times.

<-- Hide
tools: email  |  print  |  share  |  click to rate (rated 3 times):
  • BlinkList
  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Newsvine
  • Reddit
  • Sphinn
  • Technorati
  • Twitter