Inputs and Outputs
Input
Every composition must contain an input
section. The input lists each media container
required to render the composition.
Each input container has a name
that uniquely identifies it within the composition. When a job is submitted Transform matches each input name with a media file URL provided by the user.
---
input:
container:
- name: input1
{
"input": {
"container": [
{
"name": "input1"
}
]
}
}
Trimming
By default the entire duration of each input container is included in the composition. Set the start
and end
times to trim a container to a shorter duration. Times can be specified in seconds hh:mm:ss.sss
or in frames hh:mm:ss:ff
. For example the following composition includes 30 seconds from the input1
container:
---
input:
container:
- name: input1
start: 00:00:10:00
end: 00:00:40:00
{
"input": {
"container": [
{
"name": "input1",
"start": "00:00:10:00",
"end": "00:00:40:00"
}
]
}
}
Timebase
The Timebase
setting determines the default start time for the container, either zero
or timecode
.
Property | Value | Description |
---|---|---|
Timebase | string | Set to zero (by default) to base timecode on 00:00:00:00, or set to timecode to base trimming values on the input media's start of media timecode. |
Transform offsets the specified container start and end times based on the default start time. The result is then converted to the equivalent offset and duration properties for each media stream.
The following example uses the input media's timecode for the basis of trimming the media.
---
input:
container:
- name: input
properties:
Timebase: timecode
start: 01:00:10;00
end: 01:01:50;00
{
"input": {
"container": [
{
"name": "input",
"properties": {
"Timebase": "timecode"
},
"start": "01:00:10;00",
"end": "01:01:50;00"
}
]
}
}
Output
Every composition must contain an output
section. The output lists each media container
produced by the composition. Each output container has a name that uniquely identifies it within the composition.
Each output container has a path
that determines the media file name for that output. The output path can be provided in the composition or matched (using the container name) to a path submitted with the job.
Each output container has a type
that determines the media file format for that output. For example, the following composition will convert the input1
file (MXF) to QuickTime (MOV) format:
---
input:
container:
- name: input1
path: myfile.mxf
output:
container:
- name: output1
type: 'mov '
path: myfile.mov
{
"input": {
"container": [
{
"name": "input1",
"path": "myfile.mxf"
}
]
},
"output": {
"container": [
{
"name": "output1",
"type": "mov ",
"path": "myfile.mov"
}
]
}
}
Path Templates
The path
for an output container can be specified using a path template. A template contains character and string literals, path separators and replacement tokens. Each token has a $name$
that is replaced with the associated value.
For example the following composition builds the container path using the the job identifier, date and default file extension:
output:
container:
- type: 'm2ps'
path: $job_id$_$date$.$extension$
{
"output": {
"container": [
{
"type": "m2ps",
"path": "$job_id$_$date$.$extension$"
}
]
}
}
When a job is submitted the output file will have a name similar to the following:
a90c1e02f638bef80bf8d23ebf69eed3_2020-11-17.mpg
See the path template reference for a description of each token.
Supported Formats
Transform supports the following types of media containers:
- media files containing video, audio and subtitle streams, for example MP4 and IMF.
- audio only formats such as WAV or AAC.
- video only elementary streams and RAW formats
- still image formats such as PNG, TIFF or JPEG.
- subtitle formats such as SCC, TTML and WebVTT.
- sidecar metadata formats such as Dolby Vision and HDR10+.
See the Containers reference for a complete list of supported formats and associated type
values.
Updated about 1 year ago