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.

PropertyValueDescription
TimebasestringSet 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.