Panvidea Developers Area

API Version 1. Last modified June 2, 2010

The Panvidea REST API makes it simple to build custom applications to configure accounts, users and profiles in the system on-the-fly. Integrate Panvidea into your CMS or use the API to transfer settings from your current encoding system into Panvidea. If you need assistance, contact Support.

  1. Basics
  2. Resources
  3. Reference
  4. Sample Code

Basics

API Security

The API is available both encrypted (SSL) and unencrypted. Each call to the API requires an Authorization header with the value having the format username:password.

Resource-level security is role-based per user and configurable by the Account Administrator.

Requests

CRUD (Create, Read/Retrieve, Update, Delete) actions map directly to HTTP methods as shown below.

CRUD Action HTTP Method
Create POST
Read GET
Update PUT
Delete DELETE

When performing a PUT method, perform a GET method to get the latest revision and increment the revision number by 1.

Responses

Responses contain two parts: an HTTP Status Code and the Body.

The HTTP Status Codes that can be returned are:

HTTP Status Code Name Description
200 Successful
201 Created Returned when a POST action completes successfully.
400 Bad Request Illegal lexical input, illegal syntax or invalid per schema.
401 Unauthorized Request was sent without or with an invalid Authorization header. See API Security.
403 Forbidden The requesting user does not have permission to access this resource.
404 Not Found
405 Method Not Allowed This HTTP Method is not enabled for this resource.
409 Conflict A concurrent update conflict is detected or a duplicate unique constraint is violated.
500 Internal Server Error Contact Support.

Further Panvidea-specific information can be gathered by analyzing the Body. This is most useful when performing a POST in order to get the id of the newly created resource or when an error code is received.Status messages returned in the Body contain the following elements: type, code, description and id. type is the only required field. An example of an unsuccessful GET method follows. This Body will accompany an HTTP Status Code of 404.


<status xmlns="http://panvidea.com/services/rest/v1">
<type>ERROR</type>
<code>NOT_FOUND</code>
<description>User ID 1492 does not exist.</description>
</status>

The Panvidea API code strings corresponding status description formats are:

code description Corresponding HTTP Status Code
SUCCESSFUL “Successfully added|updated|removed <resource name>.” For example, “Successfully added user.” 200
INVALID_XML (description varies. Basic errors such as missing end tags are the culprit here.) 400
DELETE_CONSTRAINT <Resource name> can not be deleted since it is referenced by another resource. 400
BAD_REQUEST See table below for possible descriptions 400
RESTRICTED You do not have access to <resource name>. 403
NOT_FOUND Resource not found. 404
DUPLICATE The <resource name> <identifier> already exists. 409
SERVER_ERROR Internal Server Error: <description> 500

As noted above, the BAD_REQUEST Panvidea code accompanying a 400 HTTP Status Code can have multiple description formats:

BAD_REQUEST description Meaning
Invalid link kind: <invalid_kind> Returned when a reference link “kind” attribute is not set to uri, id, or name. See Links.
Null <field name> is not allowed. A tag of this type is not allowed to be empty.
<Container identifier>, <Audio codec identifier> and <Video codec identifier> configuration not supported. Returned when the user tries to configure a video format with an incompatible wrapper/container, video codec and audio codec relationship.

Validation

Validate your XML prior to performing a request. XML Schema Definitions (XSDs) are available here:

  • http://panvidea.com/schemas/rest/v1/restService.xsd
  • http://panvidea.com/schemas/rest/v1/restCommonTypes.xsd
  • http://panvidea.com/schemas/rest/v1/restServiceTypes.xsd

Resources

Overview

Links

The link object represents a reference to a resource and is modeled on the Atom Link Element and the HTML Link Element. The current version of the service supports uri (default, unless otherwise specified) id and name references. The link attributes are:

Attribute Description Required
href Reference to the linked resource. Y
kind Description of reference kind: uri, id or name. N

Examples:

A link to a profile with an id of 12345: <profile href="12345 kind="id" />
A link to a role with a name of Account Administrator: <role href="Account Administrator" kind="name"/>

Sorting

Performing a GET on a plural resource (accounts, users, profiles, etc.) returns a list of items. To return a sorted list of items, use the sortBy query string parameter. The list of fields available to the sortBy query string parameter varies by resource.

Resource Available sortBy fields
users id, revision, created, lastModified, modifiedByUserId, username, role, firstName, lastName
formats id, revision, created, lastModified, modifiedByUserId, name, containerName, videoCodecName, audioCodecName
deliveries id, revision, created, lastModified, modifiedByUserId, name, type, address
notifications id, revision, created, lastModified, modifiedByUserId, name
profiles id, revision, created, lastModified, modifiedByUserId, name, path
processes id, revision, created, lastModified, modifiedByUserId,name, profileId, profileName
jobs id, revision, created, lastModified, modifiedByUserId,begin, end, fileName, fileExtension, fileType, fileSize, percentage

Pagination

Performing a GET on a plural resource (accounts, users, profiles, etc.) returns a list of items. All lists are automatically paginated to contain a maximum of 50 elements. To further control pagination, use the following query string parameters:

Query String Parameter Description
start The record number to start returning items from.
items The total amount of items to be returned. If a value greater than 50 is requested, only 50 items will be returned.

As borrowed from the Open Search standard, all lists contain the following elements containing integer values: totalResults and itemsPerPage.

Search

Performing a GET on a plural resource (accounts, users, profiles, etc.) returns a list of items. To further refine this list, a search or searchBoolean query string parameter is used. Use search when performing a simple search on the name or id tags. searchBoolean is used to construct complex searches using AND or OR boolean operators.

Search queries are performed using key='value' formatting. Individual queries between boolean operators in a searchBoolean search must be wrapped in parenthesis. The URL must be escaped. For example:

.../profiles?searchBoolean=(name='myName1')OR(name='myName2')

must be escaped to read:

.../profiles?searchBoolean=%28name%3D'myName1'%29OR%28name%3D'myName2'%29

Resource Sharing

Parent accounts can share individual resources with sub-accounts. This is performed programatically via the sharing tag placed directly after the name tag in individual resources only, e.g. resource name/ID resources. The syntax of the sharing tag follows. The default sharing status is none, or private.

To share a resource with all sub-accounts:


<sharing>
<all>true</all>
</sharing>

To share a resource with individual sub-accounts with an id of 1, 3 and 5:


<sharing>
<accounts>
<account>1</account>
<account>3</account>
<account>5</account>
</accounts>

Common Elements

Performing a GET on a singular resource (accounts/ID, users/ID, profiles/ID, etc.) returns a single item. Each singular item contains the following common elements in order.

Property Read Only POST PUT
id yes N/A N/A
revision yes N/A Required
created yes N/A N/A
lastModified yes N/A N/A
modifiedByUserId yes N/A N/A
name no Required Required

Performing a GET on a plural resource (accounts, users, profiles, etc.) returns a list of items. This list contains the links to the singular items. If more data is necessary to display, for instance, a list of names and ids — querying each individual link is NOT necessary! Use the fields query string parameter to define which values to return within the list. The values are returned as attributes in the link.

Resource Available fields query parameter values
users username, role, firstName, lastName, created, lastModified
formats name, containerName, videoCodecName, audioCodecName, created, lastModified
deliveries name, type, deliveryFileTypes, address, created, lastModified
notifications name, created, lastModified
profiles name, path, created, lastModified
processes name, profileId, profileName, profileUri, created, lastModified
jobs begin, end, fileName, fileExtension, fileFullName, fileType, fileSize, fileDuration

Accounts

Parent accounts are created by Panvidea for each customer. Parent accounts have the ability to create sub-accounts and share resources to those accounts. Sub-account manipulation is performed using the accounts resource.

Operation Resource Input Output Role
GET /accounts - AccountList Account Admin, System User, Business User
POST /accounts Account Status Account Admin
GET /accounts/ID - Account Account Admin, System User, Business User
PUT /accounts/ID Account Status Account Admin

An individual account contains the following tags (immediately following the Common Elements):

Property Read Only GET POST PUT Comments
parentId yes - N/A N/A
region yes - yes yes US | EU
inputServerUsername yes - yes no
inputServerPassword yes - yes no
billingAddress no - Required Required See below
user no N/A Required N/A

The billingAddress tag contains the following syntax:


<billingAddress>
<contactName>Joe Smith</contactName>
<email>joesmith@email.com</email>
<address1>123 Main St.</address1>
<address2>Suite 555</address2>
<city>Springfield</city>
<state>MA</state>
<zipCode>12345</zipCode>
<phoneNumber>555-555-5555</phoneNumber>
</billingAddress>

The user tag is used to set up the Account Administrator for the new sub-account and contains the following syntax:


<user>
<username>joesmith@email.com</username>
<password>1234567</password>
<validatePassword>>1234567</validatePassword>
<firstName>Joe</firstName>
<lastName>Smith</lastName>
<role href="Account+Administrator" kind="name"/>
</user>

Users

An Account has one or more Users each containing a Role, which defines permissions the user has within the system. A user can have one of three roles:

Role Description
Account Administrator An account administrator is considered an account owner. It is recommended that one person be designated this role. An Account Administrator can create, edit and delete users and profiles. Though possible, it is not recommended that users with this role be used to perform jobs. Activity logs will prove unhelpful if this occurs. It will be a very uncommon scenario for this user to use the API directly, but via the UI.
System User A System User either represents a system that is integrated with Panvidea or an individual that runs jobs using Panvidea. This user can edit his own user account and run jobs within the system.
Business User A Business User is a user who has read-only access to the system. This usually represents a supervisor or someone who will be able to run usage reports in the system via the API. It will be a very uncommon scenario for this user to use the API directly, but via the UI.

The following methods are allowed:

Operation Resource Input Output Role
GET /users - UserList Account Admin, System User, Business User
POST /users User Status Account Admin
GET /users/ID - User Account Admin, System User, Business User
PUT /users/ID Status Account Admin, System User
DELETE /users/ID - Status Account Admin

An individual user contains the following tags (immediately following the Common Elements):

Property Read Only GET POST PUT Comments
username no - Required Required Valid email address, must be unique
password no not returned Required Optional Letters and/or numbers, 7 to 10 chars in length.
validatePassword no not returned Required Optional
firstName no - Required Required System capitalizes the first letter automatically.
lastName no - Required Required System capitalizes the first letter automatically.
active No - Optional Required true by default
role no - Required Required Link format

Formats

Format configurations describe the resulting output file of a transcoding operation. A format contains:

• A container, or wrapper, definition and parameters
• A video codec definition and parameters (optional if audio codec defined)
• An audio codec definition and parameters (optional if video codec defined)
• Filters, or operations, that can be applied to all videos sent through the profile to this format. (optional)

Forming legal format definitions require a good sense of video formats and what each parameter means and is outside the scope of this section. The API, however, will restrict you as much as possible from configuring an illegal or incompatible output format. The UI is made to guide even a video novice through configuring output formats. Contact your sales representative if you require assistance configuring or optimizing formats.

Operation Resource Input Output Role
GET /formats - FormatList Account Admin, System User, Business User
POST /formats Format Status Account Admin, System User
GET /formats/ID - Format Account Admin, System User, Business User
PUT /formats/ID Format Status Account Admin, System User
DELETE /formats/ID - Status Account Admin, System User

An individual format contains the following tags (immediately following the Common Elements):

Property Read Only POST PUT
container no Required Required
videoCodec no Required Required
audioCodec no Required Required
operations No Optional Optional

The complete syntax of a format element is as follows:


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


<format xmlns="http://panvidea.com/services/rest/v1">
<name>My sample format</name>


<container>
<name>container code</name>
</container>


<videoCodec>
<name>video codec code</name>
<parameters>
<parameter name="parameter name" value="parameter value" />
...
</parameters>
</videoCodec>


<audioCodec>
<name>audio codec code</name>
<parameters>
<parameter name="parameter name" value="parameter value" />
...
</parameters>
</audioCodec>


</format>

See the Reference section below for a list of available parameters for containers, video codecs and audio codecs.

Notifications

Notifications can be sent to inform one or more recipients when a job has completed. The notification contains the resulting status of the job as well as describes what was performed during that job. Panvidea supports two types of notifications:

Notification Type Description
XML via HTTP POST XML POST to S/HTTP URIs. Used to notify a CMS when a job is complete, for example.
E-mail Used to notify one or more people when a job is complete.

The methods for this resource are listed below.

Operation Resource Input Output Role
GET /notifications - NotificationList Account Admin, System User, Business User
POST /notifications Notification Status Account Admin, System User
GET /notifications/ID - Notification Account Admin, System User, Business User
PUT /notifications/ID Notification Status Account Admin, System User
DELETE /notifications/ID - Status Account Admin, System User

An individual notification contains the following tags (immediately following the Common Elements):

Property Read Only POST PUT
recipients no Required Required

Delivery Destinations

After transcoding a media object into one or more derivative results, Panvidea can package and deliver the results to one or many delivery destinations.

  • an Aspera® server
  • an FTP server or CDN via FTP
  • a Secure FTP server via SFTP or SCP
  • the Rackspace Cloud, formerly known as “Mosso” (http://www.rackspacecloud.com/)
  • an Amazon S3 storage bucket
Operation Input Output Role
GET /deliveries - DeliveryList Account Admin, System User, Business User
POST /deliveries Delivery Status Account Admin, System User
GET /deliveries/ID - Delivery Account Admin, System User, Business User
PUT /deliveries/ID Delivery Status Account Admin, System User
DELETE /deliveries/ID - Status Account Admin, System User

An individual delivery contains the following tags (immediately following the Common Elements):

Property Read Only POST PUT Comments
type no Required Required ASPERA, FTP, SCP, SFTP, S3, or MOSSO
outputFileNamingScheme no Optional Optional See below for syntax.
outputFileExtension no Optional Optional
generateMd5Hash no Optional Optional See below for syntax.
generateSmilFile no Optional Optionalv See below for syntax.
deliveryFileTypes no Optional Required ALL_FILES, VIDEO_FILES, THUMBNAIL_FILES, METADATA_FILES, or SOURCE_FILES
configuration no Required Required See below for syntax.

The outputFileNamingScheme configures how the output files should be named — excluding the extension. The value can be static or dynamic. A static value implies that all files passing through this profile will be given the same name. In a delivery contained within a profile, this will rarely occur as the results will most likely overwrite the results of the previous job. Dynamic naming is applied as a formula. It can mix both static content along with format parameter values or defined custom variables after the sharing tag (see Resource Sharing). These variables can be accessed in outputFileNamingScheme tags within the delivery, process or thumbnailOperation (see Thumbnail Extraction) tags. The syntax is as follows:


<variables>
<var name="var1" value="value 1"/>
<var name="var2" value="value 2"/>
...
</variables>

The generateMd5Hash tag contains the following syntax:

<generateMd5Hash>
<fileTypes>VIDEO_ONLY|ALL_FILES</fileTypes>
</generateMd5Hash>

The generateSmilFile tag contains the following syntax:

<generateSmilFile>
<baseUrl>http://base.url.com/path</baseUrl>
</generateSmilFile>

The deliveryFileTypes tag contains a list of deliveryFileType tags specifying which types of files will be delivered to this destination. This is a filter of sorts. Configuration in this manner allows multiple delivery destinations to be assigned to profiles so that videos can go to one destination and thumbnails, say, to another. Destinations can even be different folders on the same delivery server.

<deliveryFileTypes>
<deliveryFileType>VIDEO_FILES<deliveryFileType>
<deliveryFileType>THUMBNAIL_FILES<deliveryFileType>
<deliveryFileTypes>

ALL_FILES can be used to specify all files except the source file be sent. SOURCE_FILES tells the profile to send the source file to this destination. THUMBNAIL_FILES and METADATA_FILES are also available.

The configuration tag contains the following elements.

Property Comments
address Example value: ftp.example.com
path Example value:/relative/path/to/myfiles
overwrite Optional. Defaults to false. true|false.
maxConnections Optional.Set if destination server has an explicit or optimal amount of concurrent connections.
asperaEncryption Optional, only for Aspera delivery types. The only value currently supported is aes128.
userPassCredentials|privateKeyCredentials See below for syntax.

Two types of server credentials are available for Delivery Destinations: user/pass and private-key authentication.

The syntax for user/pass authentication is:

<userPassCredentials>
<username>me@example.com</username>
<password>2#$53ddsa</password>
</userPassCredentials>

The syntax for private-key authentication is:


<privateKeyCredentials>
<username>me@mycompany.com</username>
<privateKey>…</privateKey>
</privateKeyCredentials>

Watch Folders (Beta)

Watch folders can be located on external S/FTP servers and S3 buckets. These folders are monitored by Panvidea and work similarly to input folders on the Panvidea landing zone. When a metadata file is dropped into this folder, it will be found by the system and uploaded into the corresponding profile for immediate processing.

Operation Resource Input Output Role
GET /watchFolders - WatchFolderList Account Admin, System User, Business User
POST /watchFolders WatchFolder Status Account Admin, System User
GET /watchFolders/ID - WatchFolder Account Admin, System User, Business User
PUT /watchFolders/ID WatchFolder Status Account Admin, System User
DELETE /watchFolders/ID - Status Account Admin, System User

An individual watch folder contains the following tags (immediately following the Common Elements):

Property Read Only POST PUT
uri no Required Required
userPassCredentials|privateKeyCredentials no Optional Optional

The uri syntax must be one of the following:

Protocol URI Syntax
(S)FTP (s)ftp://<host>:<port>/<filepath>
SCP scp://<host>:<port>/<filepath>
Amazon S3 Bucket s3://s3.amazonaws.com/<bucket>/<filepath>

See Delivery Destinations for userPassCredentials and privateKeyCredentials syntax.

Profiles

A Profile is a grouping of links to watch folders (beta), output formats, notifications and delivery destinations with some related metadata such as the corresponding landing zone directory. That’s it! At least one delivery configuration is required. Watch folders, Formats and Notifications are optional.

Operation Resource Input Output Role
GET /profiles - ProfileList Account Admin, System User, Business User
POST /profiles Profile Status Account Admin, System User
GET /profiles/ID - Profile Account Admin, System User, Business User
PUT /profiles/ID Profile Status Account Admin, System User
DELETE /profiles/ID - Status Account Admin, System User

An individual profile contains the following tags (immediately following the Common Elements):

Property Read Only POST PUT
path no Required N/A
watchFolders no Optional Optional
formats no Optional Optional
deliveries no Required Required
notifications no Optional Optional

Processes

There are cases where jobs contain unique instructions only to be performed on a specific file. Use this resource to define these file-based rules prior to ingesting the file. The fileName element defines which file name to apply the instructions to. As a rule, process-level definitions overwrite those corresponding rules within a profile.

Operation Resource Input Output Role
GET /processes - ProcessList Account Admin, System User, Business User
POST /processes Process Status Account Admin, System User
GET /processes/ID - Process Account Admin, System User, Business User
PUT /processes/ID Process Status Account Admin, System User
DELETE /processes/ID - Status Account Admin, System User, Business User

An individual process contains the following tags (immediately following the Common Elements):

Property Read Only POST PUT
profile no Required Required
files no Required Required

The files tag contains one or more file elements which define the file name and any filters (see Filters) to apply to the specified file.

Property Required Comments
name Y The file name to which, when ingested, the process is applied.
outputFileNamingScheme N See Delivery Destinations for the syntax of this element.
outputFileExtension N
operations Y See Filters.

Pull Ingestion/Remote File (Beta)

This resource is used to trigger Panvidea to pull a source file from an external location into a profile folder. The most commonly-used method of ingestion, however, is push. This resource should not be used for high volumes of files at once.

TODO – methods & properties

Jobs

The jobs resource can be used to track in real time the status and a history of jobs.

Operation Resource Output Role
GET /jobs JobList Account Admin, System User, Business User
GET /processes/ID Job Account Admin, System User, Business User

In order to run a query based on a date range, the following query string parameters are available.

Query String Parameter Description
begin The start date in DateTime XSD format
end The end date in DateTime XSD format

The dateTime is specified in the XSD format “YYYY-MM-DDThh:mm:ss” where:

  • YYYY indicates the year
  • MM indicates the month
  • DD indicates the day
  • T indicates the start of the required time section
  • hh indicates the hour
  • mm indicates the minute
  • ss indicates the second

Reference

Reference

Formats

The order of parameters within containers, video codecs and audio codecs does not matter. Any parameter that has a default value can be omitted if the default value is desired.

A list of valid audio/video format combinations (audio can be disabled for video-only encodes):

Container Video Codec Audio Codec
MPEG-4 (MP4) H.264 AAC
Flash Video 9 (FLV) H.264 MP3
Flash Video 9 (FLV) H.264 AAC
Flash Video 8 (FLV) On2 VP6 MP3
Flash Video 7 (FLV) Sorenson H.263 MP3
Quicktime (MOV) MPEG-4 Layer 2 MP3
Quicktime (MOV) MPEG-4 Layer 2 AAC
Quicktime (MOV) MPEG-4 Layer 2 PCM
Quicktime (MOV) H.264 MP3
Quicktime (MOV) H.264 AAC
Quicktime (MOV) H.264 PCM
Quicktime (MOV) PhotoJPEG MP3
Quicktime (MOV) PhotoJPEG PCM
MPEG-2 (MPG) MPEG-2 MPEG-2 (MP2)
MPEG-2 Transport Stream (TS) MPEG-2 MPEG-2 (MP2)
MPEG-2 Transport Stream (TS) H.264 MP3
MPEG-2 Transport Stream (TS) H.264 AAC
Windows Media Video Windows Media Video 9 Windows Media Audio 9
Apple HTTP Live Streaming H.264 MP3
Apple HTTP Live Streaming H.264 AAC
Advanced Systems Format (ASF) Windows Media Video 9 Windows Media Audio 9
3GPP H.263 AMR-Narrow Band (NB)
3GPP H.263 AAC
3GPP H.264 AAC

A list of valid audio-only format combinations:

Container Audio Codec
MPEG-4 Part 2 MPEG-2
MP3 MP3
MPEG-4 AAC
WAV PCM

Containers

3GPP (.3gp2)
Parameter Key Value Range Default Dependency
Packed bitstream when importing raw ASP formatPacked true/false false
Non-backward compatible AAC-SBR signalling formatNonBackwardSBR true/false false
Keeps all MPEG-4 Systems info formatKeepSystemInfo true/false false
Rewrites the file as an ISMA 1.0 AV file formatIsma true/false false
Do not drop frames formatNoDropFrames true/false false
Hint the file for RTP/RTSP formatHintFile true/false false
Generate iTunes compatible MP4 formatIPod true/false false

Advanced Systems Format (.asf)

No container (muxer) parameters available.

Flash Video (.flv)
Parameter Key Value Range Default Dependency
FLV metadata injection for pseudo streaming flvMetadata true/false false

MPEG-2 PS (.mpg)

No container (muxer) parameters available.

MPEG-2 Transport Stream (.ts)

TODO.

MPEG-4 (.mp4)
Parameter Key Value Range Default Dependency
Chroma sample location videoChromaLocation 0 – 5 0
Packed bitstream when importing raw ASP formatPacked true/false false
Non-backward compatible AAC-SBR signaling formatNonBackwardSBR true/false false
Keep all MPEG-4 Systems info formatKeepSystemInfo true/false false
Rewrite the file as an ISMA 1.0 AV file formatIsma true/false true
Do not drop frames formatNoDropFrames true/false false
Hint the file for RTP/RTSP formatHintFile true/false false
Generate iTunes compatible MP4 formatIPod true/false false

Quicktime (.mov)
Parameter Key Value Range Default Dependency
Author annotation videoAuthor String
Comment annotation videoComment String
Copyright annotation videoCopyright String
Title annotation videoTitle String

Windows Media Video (.wmv)

No container (muxer) parameters available.

Apple HTTP Live Streaming

TODO.

MP3 (.mp3) — Audio Only

No container (muxer) parameters available.

WAV (.wav) — Audio Only

No container (muxer) parameters available.

Video Codecs

Video codecs share a common group of parameters:



Parameter Key Value Range Default Dependency
Frame rate videoFrameRate 10 – 240 fps Disabled Standards Conversion filter = disabled
Standards Conversion videoStandardsConversion “Disabled”

“NTSC to PAL”

“PAL to NTSC”

“24p to 60i”

“24p to 50i”

“Inverse Telecine”

Disabled videoFrameRate = disabled;

Video codecs = MPEG-2, MPEG-4 Part 2, ,H.264, or Photo JPEG

Deinterlace videoDeinterlace “Disabled”

“Linear Blend”

“Linear interpolating”

“Cubic interpolating”

“Median deinterlacing”

“5-tap lowpass filter”

“YADIF mode 0”

“YADIF mode 1”

“YADIF mode 2”

“YADIF mode 3”

“Adaptive”

Disabled
Deinterlace (for VP6) videoDeinterlace “Disabled”

“1:2:1 blur”

“Drop field”

“Adaptive”

Chroma skipping (for Scaling) videoChromaSkipping “Disabled”

“1 field first”

“0 field first”

“Auto”

Disabled
Scale algorithm (for Scaling) videoScaleAlgorithm “Bicubic”

“Fast Bilinear”

“Bilinear”

“Experimental”

“Nearest Neighbor”

“Area”

“Gauss”

“SincR”

“Lanczos”

“Natural Bicubic Spline”

“Low Bicubic / Chroma Bilinear”

Bicubic
Width (for Scaling) videoScaleWidth 0 (disabled) or 50 – 1920 pixels 0 3GPP can only be 128×96, 176×144, or 352×288
Height (for Scaling) videoScaleHeight 0 (disabled) or 50 – 1080 pixels 0 3GPP can only be 128×96, 176×144, or 352×288
Enable upscaling videoScaleEnableUpscaling true/false true Set to false to upscale to the defined width/height only
Enable downscaling videoScaleEnableDownscaling true/false true Set to false to downscale to the defined width/height only

H.263 (code: h263)
Parameter Key Value Range Default Dependency
Encode Mode videoBitRateMode “Bitrate-based”

“Quality-based”

“Two-Pass”

Bitrate-based
Bitrate videoBitRate 0 – 20000 kbps 400
Fullpixel motion estimation algorithm videoMotionEstimation “zero”

“x1”

“epzs”

epzs
Video Quality videoQuality 1 – 97 50
Motion search radius videoMotionSearchRadius 0 – 64 16
Macroblock decision algorithm videoMacroblockAlgorithm “Use mbcmp
“Fewest bits
“Best rate distortion
Fewest bits
Quantizer noise shaping videoQuantizerNoiseShaping “Disabled”

“Mode 1”

“Mode 2”

“Mode 3”

Disabled
Minimum quantizer videoMinQuantizer 0 – 51 0
Maximum quantizer videoMaxQuantizer 0 – 51 0
Minimum bitrate in kbps (0 for unlimited) videoMinBitRate 0 – 20000 kbps 0 videoBitRateMode = “Bitrate-based” or “Two-pass”
Maximum bitrate in kbps (0 for unlimited) VideoMaxBitRate 0 – 20000 kbps 0 videoBitRateMode = “Bitrate-based” or “Two-pass”
Video Buffer Size videoBufferSize 0-20000 kbits 0 videoBitRateMode = “Bitrate-based” or “Two-pass”
Video bitrate tolerance videoBitRateTolerance 0 – 20000 kbits 0 videoBitRateMode = “Bitrate-based” or “Two-pass”
Rate-distortion optimal quantization (trellis) videoTrellis true/false true
Overlapped block motion compensation videoObmc True/false false
AC Prediction videoAic true/false false
Activate high quality settings videoHighQuality true/false true
Group of picture (GOP) size videoGroupPictureSize 0-300 frames 250

H.264 (code: h264)
Parameter Key Value Range Default Dependency
Encode Mode videoBitRateMode “Bitrate-based”

“Quality-based”

“Two-Pass”

Bitrate-based
Video Bitrate videoBitRate 1 – 50000 kbps 400 See H.264 Level Restrictions below
Bitstream Profile videoBitstreamProfile “Auto”

“Baseline”

“Main”

“High”

Main
Video Quality videoQuality 1 – 97 50 videoBitRateMode = “Quality-based”
Bitstream level videoBitstreamLevel 1.0 – 5.1 4.1
P frame Quantitizer videoPFrameQuantitizer 1 – 51 25
Reference Frames videoReferenceFrames 0 – 16 frames 1
Maximum B-Frames videoBFrames 0 – 16 frames 16
Adaptive B-Frames videoAdaptiveBFrames “Disabled”

“Fast”

“Optimal”

Fast
Deblocking strength videoDeblockAlpha -5 – 5 0
Deblocking threshold videoDeblockBeta -5 – 5 0
Use CABAC videoCabac true/false true videoBitstreamProfile = Main or High
Adaptive spatial transform size videoP8x8DCT true/false false videoBitstreamProfile = High
All macroblock type videoAllPartition true/false false videoSubpelQuality is between 5 and 9
Minimum quantizer videoMinQuantizer 1 – 51 10
Maximum quantizer videoMaxQuantizer 1 – 51 51
Quantizer step videoQuantizerStep 1 – 50 4
Quantizer compression percentage videoQuantizerCompression 0 – 100 60
B-Frame Mode videoMacroblockDirectPrediction “None”

“Spatial”

“Temporal”

“Auto”

Auto videoBFrames =>1
Weighted B-Frame Prediction videoBFramesWeightPrediction true/false true videoBFrames =>1
Motion Estimation Algorithm videoMotionEstimation “Diamond”

“Hexagonal”

“Uneven Multi-Hex”

“Exhaustive”

“Hadamard Exhaustive”

Hexagonal
Motion search radius videoMotionSearchRadius 4 – 64 16
Ignore chroma in motion estimation videoNoChromaMe true/false false
Subpel refinement quality videoSubpelQuality 1 – 9 5
Trellis videoTrellis “Disabled”

“Enabled only for the final encode”

Enabled only for the final encode
Adaptive Quantizer videoAQMode “Disabled”

“Variance AQ”

Variance AQ
Adaptive Quantizer Strength videoAQStrength “Weak”

“Normal”

“Strong”

Normal
Deadzone Intra videoDeadzoneIntra 0 – 32 11
Deadzone Inter videoDeadzoneInter 0 – 32 21
Turbo Mode videoTurboMode “Disabled”

“Reduce subq”

“Reduce subq and frameref to 1”

Reduce subq and frameref to 1 videoBitRateMode = “Two-Pass”
Max Keyframe Interval videoMaxKeyInterval 1 – 900 frames 250
Min Keyframe Interval videoMinKeyInterval videoMaxKeyInterval / 2 frames 25
Maximum local bitrate videoMaxBitRate 0 - 0 = Disabled See H.264 Level Restrictions below
Averaging period for maximum local bitrate videoBufferSize 0 - 0 = Disabled See H.264 Level Restrictions below
Initial buffer occupancy videoBufferInitialOccupacy 0.0 – 1.0 0.9
Fast P-Skip videoFastPFramesSkip true/false true
DCT Decimate videoDCTDecimate true/false true
Global Header videoGlobalHeader true/false false
Use access unit delimiters videoAccessUnitDelimiters true/false false
Non-deterministic Processing videoNonDeterministic true/false true
Video format videoSignalFormat “Undefined”

“Component”

“PAL”

“NTSC”

“SECAM”

“MAC”

Undefined
Full range samples videoFullRange true/false false

H.264 has the following level restrictions:

Level Max Bitrate (kbps) VBV buffer size (kbits) Resolution @ frame ratee
10 (1) 64 175 128×96@30 or 176×144@15
11 (1.1) 192 500 176×144@30 or 320×240@10
12 (1.2) 384 1000 176×144@60 or 320×240@20
13 (1.3) 768 2000 352×288@30
20 (2) 2000 2000 352×288@30
21 (2.1) 4000 4000 352×288@50
22 (2.2) 4000 4000 352×288@50 or 640×480@15
30 (3.0) 10000 10000 720×480@30 or 720×576@25
31 (3.1) 14000 14000 1280×720@30
32 (3.2) 20000 20000 1280×720@60
40 20000 25000 1920×1088@30 or 2Kx1K@30
41 50000 62500 1920×1088@30 or 2Kx1K@30
42 50000 62500 1920×1088@60 or or 2Kx1K@60
50 135000 135000 2560×1920@30
51 240000 240000 4Kx2K@30 or 4096×2304@25

MPEG-2 PS (code: mpeg2)
Parameter Key Value Range Default Dependency
Encode Mode videoBitRateMode ”Bitrate-based”

“Quality-based”

“Two-Pass”

0
Bitrate/Average Bitrate videoBitRate 0 – 20000 kbps 400
Bitstream Profile videoBitstreamProfile “High”

“Spatial”

Bitstream Level videoBitstream Level “High”

“High 1440”

“Main”

“Low”

Fullpixel motion estimation algorithm videoMotionEstimation “zero”

“x1”

“epzs”

epzs
Video Quality videoQuality 1 – 97 50
Motion search radius videoMotionSearchRadius 4 – 64 16
Macroblock decision algorithm videoMacroblockAlgorithm “Use mbcmp”

“Fewest bits”

“Best rate distortion”

Fewest bits
Quantizer noise shaping videoQuantizerNoiseShaping “Disabled”

“Mode 1”

“Mode 2”

“Mode 3”

Disabled
Minimum quantizer videoMinQuantizer 0 – 51 0
Maximum quantizer videoMaxQuantizer 0 – 51 0
Minimum bitrate in kbps (0 for unlimited) videoMinBitRate 0 – 20000 kbps 0
Maximum bitrate in kbps (0 for unlimited) videoMaxBitRate 0 – 20000 kbps 0
Video bitrate tolerance videoBitRateTolerance 0 – 20000 kbps 0
Force field order videoFieldOrder “Disabled”

“1 field first”

“0 field first”

Disabled
Maximum B frames between I and P frames videoBFrames 0-4 frames 0
Averaging period for maximum local bitrate videoBufferSize 1 – 20000
Rate-distortion optimal quantization (trellis) videoTrellis true/false true
Keep Interlaced videoInterlacement true/false false
Low delay videoLowDelay true/false true

MPEG-4 Part 2 (code: mpeg4)
Parameter Key Value Range Default Dependency
Encode Mode videoBitRateMode ”Bitrate-based”

“Quality-based”

“Two-Pass”

0
Bitrate videoBitRate 0 – 20000 kbps 400
Fullpixel motion estimation algorithm videoMotionEstimation “zero”

“x1”

“epzs”

epzs
Video Quality videoQuality 1 – 97 50 videoBitRateMode = “Quality-based”
Motion search radius videoMotionSearchRadius 4 – 64 16
Macroblock decision algorithm videoMacroblockAlgorithm “Use mbcmp”

“Fewest bits”

“Best rate distortion”

Fewest bits
Quantizer noise shaping videoQuantizerNoiseShaping “Disabled”

“Mode 1”

“Mode 2”

“Mode 3”

Disabled
Minimum quantizer videoMinQuantizer 0 – 51 0
Maximum quantizer videoMaxQuantizer 0 – 51 0
Minimum bitrate in kbps (0 for unlimited) videoMinBitRate 0 – 20000 kbps 0 videoBitRateMode = “Bitrate-based” or “Two-pass”
Maximum bitrate in kbps (0 for unlimited) videoMaxBitRate 0 – 20000 kbps 0 videoBitRateMode = “Bitrate-based” or “Two-pass”
Video bitrate tolerance videoBitRateTolerance 0 – 20000 kbits 0 videoBitRateMode = “Bitrate-based” or “Two-pass”
Averaging period for maximum local bitrate videoBufferSize 0 – 20000 kbps 0 = disabled
Force field order videoFieldOrder “Disabled”

“1 field first”

“0 field first”

Disabled
Normalize adaptive quantization videoNormalizeAdaptiveQuantization true/false false
Use Quarter Pel videoQuarterPel true/false false
Allow 4 motion vectors per macroblock videoMacroblockMotionVectors true/false false
Use data partitioning videoDataPartition true/false false
Activate high quality settings videoHighQuality true/false true
Maximum B frames between I and P frames videoBFrames 0-4 frames 0
Subpel refinement quality videoSubpelQuality 1 – 8 6
Group of picture (GOP) size videoGroupPictureSize 0-300 frames 250
AC Prediction videoAic true/false false

On2 VP6 (code: vp6)
Parameter Key Value Range Default Dependency
Encode Mode videoBitRate
Mode
“Bitrate-based CBR”

“Two-Pass CBR”

“Two-Pass VBR”

“Bitrate-based VBR”

Bitrate-based
CBR
Bitrate videoBitRate 1 – 5000 kbps 400
FLV Profile videoProfile “VP6_E”

“VP6_S”

VP6_E
Video Keyframe Mode videoKeyFrame
Type
“MAX
_KEYFRAMES”

“FIXED
_KEYFRAMES”

MAX
_KEYFRAMES
Video Keyframe Frequency videoKeyFrame
Frequency
1 – 1000 frames 360
VP6 Compress Mode videoCompression
Mode
“COMPRESSMODE
_GOOD”

“COMPRESSMODE
_BEST”

COMPRESS
MODE_GOOD
Video sharpness videoSharpness 0 – 10 5
Noise Reduction videoNoise
Reduction
0 – 6 0
Undershoot Percentage videoUndershoot
Percentage
0 – 100 90
Minimum Quantizer videoMin
Quantizer
0 – 63 5
Maximum Quantizer videoMax
Quantizer
0 – 63 50
Temporal Resampling videoTemporal
Resampling
0 – 1 1
Temproral Dwonwatermark Percentage videoTemporal
DownWatermark
0 – 100 20
Maximum Allowed Bitrate videoMaxStream
BitRate
0 – 100 100 videoBitRateMode = Bitrate-based CBR or Two-Pass CBR
Pre Buffer Load videoStream
Prebuffer
0 – 30 seconds 6 videoBitRateMode = Bitrate-based CBR or Two-Pass CBR
Optimal Stream Buffer Size videoOptimal
StreamBuffer
0 – 30seconds 5 videoBitRateMode = Bitrate-based CBR or Two-Pass CBR
Max Stream Buffer videoStream
MaxBuffer
0 – 30seconds 10 videoBitRateMode = Bitrate-based CBR or Two-Pass CBR
2 Pass Max Bitrate videoMax
BitRate
0 – 20000 kbps 400 videoBitRateMode = Two-Pass VBR or Two-Pass CBR
2 Pass Min Bitrate videoMin
BitRate
0 – 20000 kbps 40 videoBitRateMode = Two-Pass VBR or Two-Pass CBR

Photo JPEG/Motion JPEG (code: mjpeg)
Parameter Key Value Range Default Dependency
Video Quality videoQuality 1 – 97 50 videoBitRateMode = “Quality-based VBR”
Fullpixel motion estimation algorithm videoMotionEstimation “zero”

“x1”

“epzs”

epzs
Motion search radius videoMotionSearchRadius 4 – 64 16
Macroblock decision algorithm videoMacroblockAlgorithm “Use mbcmp”

“Fewest bits”

“Best rate distortion”

Fewest bits
Quantizer noise shaping videoQuantizerNoiseShaping “Disabled”

“Mode 1”

“Mode 2”

“Mode 3”

Disabled
Rate-distortion optimal quantization (trellis) videoTrellis true/false true
High quality videoHighQuality true/false true

Sorenson H.263 (code: sorenson)
Parameter Key Value Range Default Dependency
Encode Mode videoBitRateMode “Bitrate-based”

“Quality-based”

“Two-Pass”

Bitrate-based
Bitrate videoBitRate 0 – 20000 kbps 400
Video Quality videoQuality 1 – 97 50
Minimum quantizer videoMinQuantizer 0 – 51 0
Maximum quantizer videoMaxQuantizer 0 – 51 0
Minimum bitrate in kbps (0 for unlimited) videoMinBitRate 0 – 20000 kbps 0 videoBitRateMode = “Bitrate-based” or “Two-pass”
Maximum bitrate in kbps (0 for unlimited) videoMaxBitRate 0 – 20000 kbps 0 videoBitRateMode = “Bitrate-based” or “Two-pass”
Video Buffer Size videoBufferSize 0-20000 kbits 0 videoBitRateMode = “Bitrate-based” or “Two-pass”

Windows Media Video 9 (code: wmv9)
Parameter Key Value Range Default Dependency
Encode Mode videoBitRateMode “Bitrate-based”

“Quality-based”

Bitrate-based
Bitrate/Average Bitrate videoBitRate 1 – 20000 kbps 1000
Video Buffer Time videoBufferTime 1000 – 20000 ms 5000
Maximum Keyframe Interval videoKeyFrameFrequency 1 – 100 seconds 6
Video Quality videoQuality 1 – 100 50
Overall Peak Bitrate videoPeakBitRate 0 – 20000 kbps 0

Audio Codecs

AAC (code: aac)
Parameter Key Value Range Default Dependency
Audio Channels audioChannels “Source”

“Stereo”

“Mono (Left)”

“Mono (Right)”

Source
Bitrate (ABR/CBR) audioBitRate 16 – 256 kbps 64
Output Sampling Rate in Hz audioSampleRate “Source”
“48000”

“44100”

“32000”

“24000”

“22050”

“16000”

“11025”

“8000”

48000
MPEG Version audioVersion “MPEG4-4”

“MPEG4-2”

MPEG4-4
AAC Object Type audioObjectType “Main/element”

“Long Term Prediction”

“Low Complexity”

“SSR”

Low Complexity
Block Type audioBlockType “Both”

“No Long”

“No short”

Both
Container Type audioContainer “AAC”

“MP4”

MP4 audioVersion = “MPEG4-4”

AMR-Narrow Band (code: amr_nb)
Parameter Key Value Range Default Dependency
Audio Channels audioChannels “Mono (Left)”

“Mono (Right)”

Mono (Left)
Bitrate (ABR/CBR) audioBitRate “12.2”

“10.2”

“7.95”

“7.4”

“6.7”

“5.9”

“5.15”

“4.75”

MP3 (code: mp3)
Parameter Key Value Range Default Dependency
Audio Channels audioChannels “Source”

“Stereo”

“Mono (Left)”

“Mono (Right)”

Source
Bitrate mode audioBitRateMode “CBR”

“VBR”

“ABR”

CBR
Bitrate (ABR/CBR) audioBitRate 8 – 320 kbps 128 audioBitRateMode = CBR or ABR
Output Sampling Rate in Hz audioSampleRate “Source”

“44100”

“22050”

“11025”

44100
Minimum allowed bit rate (VBR) audioMinBitRate 8 – 320 kbps 32 audioBitRateMode = ABR or VBR; audioMaxBitRate must be set
Maximum allowed bit rate (VBR) audioMaxBitRate 8 – 320 kbps 320 audioBitRateMode = ABR or VBR; audioMaxBitRate must be set

MP3 for VP6 (code: mp3)
Parameter Key Value Range Default Dependency
Audio Channels audioChannels “Stereo”

“Mono”

Stereo
Bitrate mode audioBitRateMode “CBR”

“VBR”

“ABR”

CBR
Bitrate (ABR/CBR) audioBitRate 8 – 320 kbps 128 audioBitRateMode = CBR or ABR
Output Sampling Rate in Hz audioSampleRate “44100”

“22050”

“11025”

44100
Audio Quality audioQuality 1-9 5

MPEG-2 (code: mp2)
Parameter Key Value Range Default Dependency
Bitrate audioBitrate 0 – 1024 512
Channels audioChannels “Stereo”

“Mono (Left)”

“Mono (Right)”

Stereo
Sample Rate audioSampleRate “Source”

“48000”

“44100”

“32000”

Source

Windows Media Audio 9 (code: wma9)
Parameter Key Value Range Default Dependency
Audio Channels audioChannels “Stereo”

“Mono (Left)”

“Mono (Right)”

Stereo

Bit Rate mode audioBitRateMode “CBR”

“Quality-Based VBR”

“Bitrate-Based VBR”

Bitrate (ABR/CBR) audioBitRate 5 – 320 kbps 128
Audio Buffer Time audioBufferTime 1000 – 20000 ms 3000
Output Sampling Rate in Hz audioSampleRate “Source”

“48000”

“44100”

“22000”

“11000”

“8000”

Source

PCM (code: pcm)

TODO.

Filters

Filters are post-production operations that can be added to the Format and/or Process. Filters are processed in order from top down and placed between operations tags. See the Formats or Processes section for the proper placement.

Clipping, inserting and splicing have the ability to create resulting videos of new durations. Adding group tags around multiple clipping or insert operations implies that the multiple operations are being applied to the result of the operation prior to the group tag. The time codes referenced within the grouped operations are absolute time codes of the source video. Splicing does not include time codes in the operation definition and, therefore, does not require group tags to differentiate between relative and absolute time codes.

Audio Downmix

The audio downmixing filter is used to down mix multi-channel (5.1 or 7.1) encoded audio to mono or stereo. This filter assumes that the source audio is encoded into one stream. This stream can be: AES3, DTS, AAC or AC-3.

TAG: audioDownmixOperation

Parameter Value Range Comments
monoChannel Optional. Either monoChannel or (leftChannel AND rightChannel) must be defined. See below for syntax.
leftChannel Optional. Either monoChannel or (leftChannel AND rightChannel) must be defined. See below for syntax.
rightChannel Optional. Either monoChannel or (leftChannel AND rightChannel) must be defined. See below for syntax.

All three tags have the function of defining how to reduce the decibel level in order to downmix. Within all of these tags, the following tags are used:

Parameter Value Range Comments
left [0,)
center [0,)
right [0,)
sideleft [0,) for 7.1
sideright [0,) for 7.1
backleft [0,)
backright [0,)
lfe [0,)

Audio Normalize

Audio normalization is simply defined as the application of constant gain in order to raise or lower the amplitude of an entire track. This filter will analyze the entire audio track, find the highest peak and normalize to that level. The filter accepts the common notation of how intense the normalization process should be applied – percentage.

When applying the normalization filter, be mindful of the order in the chain where it’s applied, especially when performing a splice within the same chain. If a splice is applied prior to normalization, the new piece of content is normalized. If the normalization filter is applied prior to the splice, then the primary piece of content is normalized, but the splice(s) are not.

TAG: audioNormalizeOperation

Parameter Value Range Comments
percentage 0-100

Black Frames

Black frames can be added and removed at the head or tail of the video. The operation contains two variables: headBlackFrames and tailBlackFrames. At least one is required, but both can be specified at the same time. Both contain an integer value indicating the amount of black frames that are supposed to appear in the video.

The filter is intelligent in the fact that if you define ten(10) black frames at the start of the video and the video currently has more than 10 black frames, the remaining black frames will be removed. On the other hand, if the video has less than 10 black frames, the difference will be added. If a value of 0 is defined, that means the corresponding black frames will be removed if any exist.

TAG: blackFramesOperation

Parameter Value Range Comments
headBlackFrames [0,)
tailBlackFrames [0,)

Color Bar Removal

TAG: colorBarsRemovalOperation

Parameter Value Range Comments
colorBarsRemoval true|false

Clip

Clipping can be performed at the Format and Process levels. Clipping implies processing only a sub-section of the entire source video. The start time in specified in milliseconds and, if no duration is specified, the clipping operation will default to the remainder of the video. Instead of duration, the exact millisecond end time point of the clip can be specified.

TAG: clipOperation

Parameter Value Range Comments
startMillis [0,) The start time of the clip in milliseconds.
durationMillis [0,); > startMillis Optional. The duration of the clip in milliseconds.
endMillis [0,); > startMillis Optional.The end time of the clip in milliseconds.

Crop

Cropping can be performed at the format and per-file/process levels. Cropping video is best visualized by drawing a square within a square (or square/rectangle within a rectangle).

TAG: cropOperation

Parameter Value Range Comments
topPixels [0,) The number of pixels down from the top where the top-left crop point is located.
leftPixels [0,) The number of pixels from the left where the top-left and bottom-left crop points are located.
bottomPixels [0,) The number of pixels from the bottom where the bottom-left crop point is located.
rightPixels [0,) The number of pixels from the right where the top-right and bottom-right crop point is located.

Deinterlace

See Deinterlace parameter.

Fade

Apply fade ins and fade outs to video and audio.

TAG: fadeOperation

Parameter Value Range Comments
audioFadeInMilliseconds [0,)
audioFadeOutMilliseconds [0,)
videoFadeInMilliseconds [0,)
videoFadeOutMilliseconds [0,)

Insert

Inserting an interstitial video into the source video can be defined at the Format and/or Process levels. Inserts are more commonly defined at the process level due to the fact that insertion points will differ in each piece of content. The user specifies the millisecond time code in the source file where the video should be inserted.

TAG: insertOperation

Parameter Value Range Comments
uri String The URL where the video to be inserted can be retrieved.
fileName String Process-level only. The name of the file that will be inserted. This file must be ingested prior to the main content.
milliseconds [0,) The time in milliseconds where the video is to be inserted.

Interlace

The interlace filter interlaces a deinterlaced video. The filter will not be applied if the source is already interlaced.

TAG: interlaceOperation

Parameter Value Range Comments
interlaceOperationFieldDominance Top first | Bottom first

Limiter

A limiter sets the luma and chroma minimum and maximums allowed within the video.

TAG: limiterOperation

Parameter Value Range Comments
limiterMinLuma [0, 256)
limiterMaxLuma [0, 256)
limiterMinChroma [0, 256)
limiterMaxChroma [0, 256)

Pad

The padding operation is used to pad the video with lines of a certain color. The optional color element takes as a value a six (6) digit hex color code. The default is 000000, or black.

TAG: paddingOperation

Parameter Value Range Comments
color [000000, FFFFFF) The color of the padding lines.
top [0, ) Pixels from the top to pad.
bottom [0, ) Pixels from the bottom to pad.
left [0, ) Pixels from the left to pad.
right [0, ) Pixels from the right to pad.

Scale

See Chroma skipping, Scale algorithm, Width, Height, Enable Upscaling and Enable downscaling parameters.

Splice

Splicing videos such as pre-rolls, bumpers and post-rolls is performed using the spliceOperation element. The element receives a uri or fileName element referencing the video to be spliced on to the uploaded content and a position element specifying START or END telling the splicer where to append the video.

TAG: spliceOperation

Parameter Value Range Comments
uri String The URL where the video to be spliced can be retrieved.
fileName String Process-level only. The name of the file that will be spliced. This file must be ingested prior to the main content.

Standards Conversion

See Standards Conversion parameter.

Subtitles

Subtitles can be burned into the resulting transcoded video. They can only be defined at a per-file level via the process resource. Subtitle files must be in the Sub Station Alpha (.ssa) format and define all style elements within the file. URUWorks’ free Subtitle Workshop program can be used for creating or transforming existing subtitle files into the SSA format. Subtitle Workshop is available at http://www.urusoft.net.

Multiple subtitle filters can be defined for one video. If this is the case, one versions of the file will be transcoded with each set of subtitles burned in. For example, if you define one file called myfile.mpg and provide three subtitle definitions – one for English, Spanish and French – you will receive 3 versions of the resulting files in the formats defined in the corresponding file, one in English, one in Spanish and one in French.

TAG: subtitlesOperation

Parameter Value Range Comments
uri String The URL where the subtitles file can be retrieved.
fileName String Process-level only. The name of the subtitle file. This file must be ingested prior to the main content.

Temporal Soften

This filter removes noise from video by blending and smoothing pixels within a set radius.

TAG: temporalSoftenOperation

Parameter Value Range Comments
temporalSoftenRadius Integer The radius in pixels.
temporalSoftenLumaThreshold Integer
temporalSoftenChromaThreshold Integer

Thumbnail Extraction

Thumbnail extraction can be defined at the Process levels. Defining thumbs at the format level satisfies the use case of “Always extract a thumbnail at 5 and 10 seconds” while defining thumbs at the profile level can be more file specific: “For this file only, extract a thumbnail at 2 milliseconds”. The creation of thumbnails given a location, or locations, in the video can be in JPG (.jpg, .jpeg) and PNG (.png) formats.

TAG: thumbnailOperation

Parameter Value Range Comments
outputFileNamingScheme Optional. Defaults to the name of the output file corresponding to the thumbnail. See Delivery Destinations for syntax.
maintainAspectRatio Optional. DISABLED (default), AUTO_PADDING or CENTER_CUT. If width and/or height is not specified, the filter will stretch or not stretch the frame to fill the calculated dimensions.
width Positive integer. Optional.>
height Positive integer. Optional.>
milliseconds Positive integer. Optional.The point at which to extract the thumbnail. One of milliseconds, everyMillis or percentage must be selected.
everyMillis Positive integer. Optional.Extract a thumbnail every X milliseconds, where X is the value of this parameter. One of milliseconds, everyMillis or percentage must be selected.
percentage Positive integer. Optional.Extract a thumbnail X percent of the video’s duration, where X is the value of this parameter. One of milliseconds, everyMillis or percentage must be selected.
format JPG|JPEG|PNG

Watermark/Brand

Watermarking, or compositing, can be performed at the Format and/or Process levels. Watermarks can be textual or an image.

TAG: imageWatermarkOperation

Parameter Value Range Comments
uri String The URL where the image to be overlayed can be retrieved.
fileName String Process-level only. The name of the image file that will be overlayed. This file must be ingested prior to the main content.
startMillis Positive integer. The start time of the overlay in milliseconds.
endMillis Positive integer. Optional. One of endMillis or durationMillis is required. The end time of the overlay in milliseconds.
durationMillis Positive integer. Optional. One of endMillis or durationMillis is required. The duration of the overlay in milliseconds.
x Positive integer. The top-left coordinate is (0,0).
y Positive integer. The top-left coordinate is (0,0), so this value is the positive value down from that point.

TAG: textWatermarkOperation

Parameter Value Range Comments
startMillis Positive integer. The start time of the overlay in milliseconds.
endMillis Positive integer. Optional. One of endMillis or durationMillis is required. The end time of the overlay in milliseconds.
durationMillis Positive integer. Optional. One of endMillis or durationMillis is required. The duration of the overlay in milliseconds.
lines See below for syntax.

The lines tag contains a line item for every line desired in the text overlay.

Parameter Value Range Comments
text String The line of text to be displayed in the overlay.
position String Optional. One of position or x and y must be defined. TOPLEFT, TOPMIDDLE, TOPRIGHT, MIDDLELEFT, MIDDLECENTER, MIDDLERIGHT, BOTTOMLEFT, BOTTOMCENTER and BOTTOMRIGHT
x Positive integer. The top-left coordinate is (0,0).
y Positive integer. The top-left coordinate is (0,0), so this value is the positive value down from that point.
fontName String See font names below.

These fonts are available as values for the fontName tag.

ARIAL MS_SANS_SERIF
ARIAL_BLACK MS_SERIF
COMIC_SANS_MS MV_BOLI
COURIER PALATINO_LINOTYPE
COURIER_NEW RAAVI
ESTRANGELO_EDESSA SHRUTI
FRANKLIN_GOTHIC_MEDIUM SMALL_FONTS
GAUTAMI SYLFAEN
GEORGIA SYMBOL
IMPACT TAHOMA
LATHA TIMES_NEW_ROMAN
LUCIDA_CONSOLE TREBUCHET_MS
LUCIDA_SANS_CONSOLE TUNGA
MANGAL VERDANA
MARLETT WEBDINGS
MICROSOFT_SANS_SERIF WINGDINGS

SampleCode

Coming soon…