Panvidea Developers Area
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.
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
- Accounts
- Users
- Formats
- Notifications
- Delivery Destinations
- Watch Folders
- Profiles
- Processes
- Remote Files
- Jobs
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. |
| 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
- Formats
- Containers
- 3GPP (code: 3gp2)
- Advanced Systems Format (code: asf)
- Flash Video (code: flv)
- MPEG-2 (code: mpg)
- MPEG-2 Transport Stream (code: ts)
- MPEG-4 (code: mp4)
- Quicktime (code: mov)
- Windows Media Video (code: wmv)
- Apple HTTP Live Streaming (code: ts-ipad)
- MP3 (code: mp3) — Audio Only
- WAV (code: wav) — Audio Only
- Video Codecs
- Audio Codecs
- Containers
- Filters
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 |
MAX _KEYFRAMES |
|
| Video Keyframe Frequency | videoKeyFrame Frequency |
1 – 1000 frames | 360 | |
| VP6 Compress Mode | videoCompression Mode |
“COMPRESSMODE _GOOD” “COMPRESSMODE |
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…




